ghost 6.63.0 → 6.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/bin/create-migration.js +15 -0
  2. package/bin/lib/duplicate-deps.js +204 -0
  3. package/bin/validate-adapters.js +50 -6
  4. package/components/tryghost-adapter-base-scheduling-0.2.4.tgz +0 -0
  5. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  6. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  7. package/components/tryghost-api-framework-0.0.0.tgz +0 -0
  8. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  9. package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
  10. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  11. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  12. package/components/{tryghost-kg-lexical-html-renderer-1.5.0.tgz → tryghost-kg-lexical-html-renderer-1.5.1.tgz} +0 -0
  13. package/components/tryghost-limit-service-0.0.0.tgz +0 -0
  14. package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
  15. package/content/themes/casper/assets/built/casper.js +1 -1
  16. package/content/themes/casper/assets/built/screen.css +1 -1
  17. package/content/themes/casper/assets/css/screen.css +15 -2
  18. package/content/themes/casper/assets/js/init.js +37 -9
  19. package/content/themes/casper/package.json +8 -8
  20. package/content/themes/source/assets/built/screen.css +1 -1
  21. package/content/themes/source/assets/built/source.js +1 -1
  22. package/content/themes/source/assets/css/screen.css +15 -2
  23. package/content/themes/source/assets/js/main.js +24 -4
  24. package/content/themes/source/package.json +8 -8
  25. package/core/boot.js +27 -15
  26. package/core/bridge.js +1 -1
  27. package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
  28. package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-BBaU7PRV.js} +2 -2
  29. package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
  30. package/core/built/admin/assets/about-Dp43j18M.js +1 -0
  31. package/core/built/admin/assets/accordion-h62UzFhj.js +1 -0
  32. package/core/built/admin/assets/account-migration-CBTbtX6Q.js +1 -0
  33. package/core/built/admin/assets/action-list-DC9QpX-l.js +1 -0
  34. package/core/built/admin/assets/activitypub/{account-migration-KA6Jjf9L.js → account-migration-B1DUZS4Q.js} +8 -8
  35. package/core/built/admin/assets/activitypub/activitypub.js +24 -11
  36. package/core/built/admin/assets/activitypub/avatar-CRGud8yf.js +153 -0
  37. package/core/built/admin/assets/activitypub/{avatar-flipboard-csQaNeYK.js → avatar-flipboard-BZNFAXfm.js} +3 -3
  38. package/core/built/admin/assets/activitypub/{bluesky-sharing-C7nTDMvw.js → bluesky-sharing-Cg_v-LwS.js} +30 -31
  39. package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-Ck3O4oo2.js → chunk-KS7C4IRE-CTUL98Lc.js} +2498 -1885
  40. package/core/built/admin/assets/activitypub/{content-formatters-CLcjaBwV.js → content-formatters-D7GWP7nH.js} +23 -24
  41. package/core/built/admin/assets/activitypub/{copy-DcOh8kXw.js → copy-CgzTvoeR.js} +2 -2
  42. package/core/built/admin/assets/activitypub/{domain-fZ-X8i4-.js → domain-C3G_nkHU.js} +46 -46
  43. package/core/built/admin/assets/activitypub/{edit-profile-BqMLQV88.js → edit-profile-C8cCY-AK.js} +927 -928
  44. package/core/built/admin/assets/activitypub/{explore-B4yPoP8E.js → explore-NlDT4inq.js} +11 -11
  45. package/core/built/admin/assets/activitypub/{feed-BRC_mvAe.js → feed-DF22jCTV.js} +10 -10
  46. package/core/built/admin/assets/activitypub/{field-COacNgOt.js → field-95-iuTte.js} +4 -4
  47. package/core/built/admin/assets/activitypub/{hash-C7u-irQQ.js → hash-R7LMLnhY.js} +2 -2
  48. package/core/built/admin/assets/activitypub/{inbox-CbTTdDQ3.js → inbox-DUJUiV6x.js} +2 -2
  49. package/core/built/admin/assets/activitypub/{inbox-BW-yvUoN.js → inbox-DerExBzA.js} +416 -414
  50. package/core/built/admin/assets/activitypub/{label-kPMmYI7l.js → label-EwCn1QYc.js} +4 -4
  51. package/core/built/admin/assets/activitypub/layout-Dy6NnW1G.js +1 -0
  52. package/core/built/admin/assets/activitypub/{moderation-CuidJzc0.js → moderation-BSkfiVYo.js} +73 -75
  53. package/core/built/admin/assets/activitypub/{note-CAMRRSqD.js → note-DOnAJTXK.js} +9 -9
  54. package/core/built/admin/assets/activitypub/{notifications-BmNlXGgp.js → notifications-DZc6XTjG.js} +27 -27
  55. package/core/built/admin/assets/activitypub/{onboarding-Dmun9jr_.js → onboarding-8vEIwYTH.js} +3 -3
  56. package/core/built/admin/assets/activitypub/{onboarding-Bqg7fh_L.js → onboarding-DYVqbNmp.js} +2 -2
  57. package/core/built/admin/assets/activitypub/{preferences--oH19wf9.js → preferences-DDok6F2N.js} +1418 -1390
  58. package/core/built/admin/assets/activitypub/{profile-DH_tQx2D.js → profile-DjVa2hUk.js} +254 -255
  59. package/core/built/admin/assets/activitypub/{reply-Cap9PxSH.js → reply-DtXBpHxu.js} +2 -2
  60. package/core/built/admin/assets/activitypub/routes-Cw302e1c.js +4946 -0
  61. package/core/built/admin/assets/activitypub/{separator-CAxxu8VV.js → separator-FpRpVDd3.js} +8 -9
  62. package/core/built/admin/assets/activitypub/settings-yK-puALn.js +314 -0
  63. package/core/built/admin/assets/activitypub/{site-BYps63oh.js → site-CHw0R2PA.js} +2 -2
  64. package/core/built/admin/assets/activitypub/{step-1-CKjR2KAm.js → step-1-737bnvxk.js} +7 -7
  65. package/core/built/admin/assets/activitypub/{step-2-B6PKfOUQ.js → step-2-DBaIsAsM.js} +7 -7
  66. package/core/built/admin/assets/activitypub/{step-3-C-qBbcUo.js → step-3-BBmy9m9V.js} +23 -23
  67. package/core/built/admin/assets/activitypub/tabs-LQ2xirdm.js +1101 -0
  68. package/core/built/admin/assets/activitypub/{topic-filter-DsUOuu0k.js → topic-filter-75Nu0CKj.js} +4 -4
  69. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CX9snsLs.js → use-activity-pub-queries-CYI2QJMs.js} +58 -58
  70. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-DsJTGDSS.js → use-navigate-with-base-path-B4jZ8hyg.js} +3924 -1403
  71. package/core/built/admin/assets/activitypub/{use-reply-chain-data-AJi9zkzm.js → use-reply-chain-data-BHmFxc3U.js} +6 -6
  72. package/core/built/admin/assets/activitypub/users-CSjOwpT9.js +886 -0
  73. package/core/built/admin/assets/activitypub/{x-DR8AT3-4.js → x-B9ptWCds.js} +2 -2
  74. package/core/built/admin/assets/add-integration-modal-BwePhq95.js +1 -0
  75. package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
  76. package/core/built/admin/assets/add-recommendation-modal-cdLv0wHy.js +1 -0
  77. package/core/built/admin/assets/analytics-DY8_SaP7.js +1 -0
  78. package/core/built/admin/assets/announcement-bar-modal-C-2yWwag.js +1 -0
  79. package/core/built/admin/assets/api-keys-BHKATUqQ.js +1 -0
  80. package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
  81. package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-wRcSN0jV.js} +1 -1
  82. package/core/built/admin/assets/automated-emails-CzUa3v4d.js +1 -0
  83. package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
  84. package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
  85. package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
  86. package/core/built/admin/assets/badge-CI1Z0xyG.js +1 -0
  87. package/core/built/admin/assets/bluesky-sharing-B8PC1SBj.js +1 -0
  88. package/core/built/admin/assets/box-LUuYRT-1.js +1 -0
  89. package/core/built/admin/assets/brand-icon-CrmbX86T.js +1 -0
  90. package/core/built/admin/assets/breadcrumb-DDDpzLyo.js +1 -0
  91. package/core/built/admin/assets/button-D414TI3B.js +1 -0
  92. package/core/built/admin/assets/calendar-Cp_opo3i.js +1 -0
  93. package/core/built/admin/assets/card-C2dfd5u0.js +1 -0
  94. package/core/built/admin/assets/chart-B_UNLXse.js +63 -0
  95. package/core/built/admin/assets/chart-helpers-Czu_9QpJ.js +1 -0
  96. package/core/built/admin/assets/checkbox-CFFqf0Nh.js +1 -0
  97. package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
  98. package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.201.6961b57ed7a281ac193e.js} +165 -122
  99. package/core/built/admin/assets/chunk.524.0b850e72ec49a0fa3882.js +25 -0
  100. package/core/built/admin/assets/chunk.582.db2ae9e968256e8d58ac.js +27 -0
  101. package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
  102. package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
  103. package/core/built/admin/assets/code-editor-view-Bd_nnHKk.js +1 -0
  104. package/core/built/admin/assets/code-editor-view-BeU3Yf9M.js +1 -0
  105. package/core/built/admin/assets/color-picker-Bzm1V7qg.js +3 -0
  106. package/core/built/admin/assets/color-picker-field-DP0moHz9.js +1 -0
  107. package/core/built/admin/assets/combobox-6_ruuTuj.js +1 -0
  108. package/core/built/admin/assets/command-B5wfm6pd.js +1 -0
  109. package/core/built/admin/assets/comments-BB26dUSl.js +1 -0
  110. package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
  111. package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
  112. package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
  113. package/core/built/admin/assets/container-CHHif8km.js +1 -0
  114. package/core/built/admin/assets/content-api-modal-DOHwl0yZ.js +1 -0
  115. package/core/built/admin/assets/context-menu-BpY46Dlb.js +1 -0
  116. package/core/built/admin/assets/copy-field-DRBx6Ady.js +1 -0
  117. package/core/built/admin/assets/create-ghost-browse-value-source-eIXo5Qws.js +1 -0
  118. package/core/built/admin/assets/{custom-field-type-option-BAuW0F-E.js → custom-field-type-option-DrSlETOI.js} +1 -1
  119. package/core/built/admin/assets/custom-integration-modal-Dgo425Ec.js +1 -0
  120. package/core/built/admin/assets/data-list-DM8yqpXi.js +1 -0
  121. package/core/built/admin/assets/date-range-select-DdC23c13.js +1 -0
  122. package/core/built/admin/assets/design-and-theme-modal-CbSu9IT4.js +2 -0
  123. package/core/built/admin/assets/detail-page-CN4NdhpV.js +1 -0
  124. package/core/built/admin/assets/dirty-confirm-dialog-BT_Vq9TD.js +1 -0
  125. package/core/built/admin/assets/disabled-sources-indicator-C5xtW0Q2.js +1 -0
  126. package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
  127. package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
  128. package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
  129. package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
  130. package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
  131. package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
  132. package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
  133. package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
  134. package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
  135. package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
  136. package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
  137. package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
  138. package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
  139. package/core/built/admin/assets/domain-BPReCZa8.js +1 -0
  140. package/core/built/admin/assets/dropzone-B2auMkf2.js +5 -0
  141. package/core/built/admin/assets/edit-profile-B7XTBzKe.js +1 -0
  142. package/core/built/admin/assets/editor-BcaC9dqm.js +8 -0
  143. package/core/built/admin/assets/editor-screen-FuMpItC8.js +27 -0
  144. package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
  145. package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
  146. package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
  147. package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
  148. package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
  149. package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
  150. package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
  151. package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
  152. package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
  153. package/core/built/admin/assets/feature-image-placeholder-DFXA4vfJ.js +1 -0
  154. package/core/built/admin/assets/feed-W7RlF-Gp.js +1 -0
  155. package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
  156. package/core/built/admin/assets/field-BXEh3ptU.js +1 -0
  157. package/core/built/admin/assets/filter-sources-DHK2IoCk.js +1 -0
  158. package/core/built/admin/assets/filters-0SYNTqyQ.js +1 -0
  159. package/core/built/admin/assets/filters-DTtZKQyq.js +1 -0
  160. package/core/built/admin/assets/first-promoter-modal-DcoN_OXu.js +1 -0
  161. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
  162. package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
  163. package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-25495154132af7305cb7b646fd83f48f.js} +580 -523
  164. package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
  165. package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
  166. package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
  167. package/core/built/admin/assets/grid-BEUIDQX7.js +1 -0
  168. package/core/built/admin/assets/growth-G6PLO4aF.js +1 -0
  169. package/core/built/admin/assets/growth-tkD-fBOY.js +3 -0
  170. package/core/built/admin/assets/heading-ih-fOVqF.js +1 -0
  171. package/core/built/admin/assets/history-modal-Ca-gStoq.js +1 -0
  172. package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
  173. package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
  174. package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
  175. package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
  176. package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DBbDVMPz.js} +35 -35
  177. package/core/built/admin/assets/index-DOF2jDq0.js +4 -0
  178. package/core/built/admin/assets/index-JrrNchW1.css +2 -0
  179. package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
  180. package/core/built/admin/assets/input-group-CvH-3d3F.js +1 -0
  181. package/core/built/admin/assets/input-surface-CL23Mlh8.js +1 -0
  182. package/core/built/admin/assets/integration-header-C7GXGis_.js +1 -0
  183. package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
  184. package/core/built/admin/assets/invite-user-modal-EJ2_6RpV.js +1 -0
  185. package/core/built/admin/assets/isPlainObject-BzzgUf1E.js +1 -0
  186. package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
  187. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
  188. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
  189. package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-Dkwee5FG.js} +1 -1
  190. package/core/built/admin/assets/koenig-loader-BzXCXHoA.js +2 -0
  191. package/core/built/admin/assets/kpi-card-iCDUTgOR.js +1 -0
  192. package/core/built/admin/assets/kpi-card-jTnpLKGr.js +1 -0
  193. package/core/built/admin/assets/kpi-helpers-Criu0YAf.js +1 -0
  194. package/core/built/admin/assets/kpi-tabs-DbOmmyOo.js +1 -0
  195. package/core/built/admin/assets/label-Du0yqMqL.js +1 -0
  196. package/core/built/admin/assets/label-picker-Bq1XXr1D.js +1 -0
  197. package/core/built/admin/assets/labels-0x2NfLtC.js +1 -0
  198. package/core/built/admin/assets/layout-Ckwzsnsu.js +1 -0
  199. package/core/built/admin/assets/lib-CCz2mjm8.js +2 -0
  200. package/core/built/admin/assets/link-helpers-o9GgBTni.js +1 -0
  201. package/core/built/admin/assets/links-Ctujreuh.js +1 -0
  202. package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
  203. package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
  204. package/core/built/admin/assets/member-activity-CsAh6MxK.js +1 -0
  205. package/core/built/admin/assets/member-activity-feed-0ytsQbtY.js +1 -0
  206. package/core/built/admin/assets/member-custom-fields-CTFGnnYv.js +1 -0
  207. package/core/built/admin/assets/member-detail-QU3vB1ML.js +1 -0
  208. package/core/built/admin/assets/members-CtMVO_AB.js +4 -0
  209. package/core/built/admin/assets/modal-page-8Ipfl51B.js +1 -0
  210. package/core/built/admin/assets/moderation-B8VtA-W0.js +1 -0
  211. package/core/built/admin/assets/multi-select-combobox-_9wEYmGv.js +1 -0
  212. package/core/built/admin/assets/navigation-modal-CGcjJvkc.js +1 -0
  213. package/core/built/admin/assets/newsletter-BpHjjqmq.js +1 -0
  214. package/core/built/admin/assets/newsletter-detail-modal-DzTbGOyo.js +1 -0
  215. package/core/built/admin/assets/newsletter-emails-BMKH4Osp.js +1 -0
  216. package/core/built/admin/assets/newsletters-BxC84_cL.js +1 -0
  217. package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
  218. package/core/built/admin/assets/note-BPtEzzZS.js +1 -0
  219. package/core/built/admin/assets/notifications-ng3ulEdp.js +1 -0
  220. package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
  221. package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
  222. package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
  223. package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
  224. package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
  225. package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
  226. package/core/built/admin/assets/onboarding-route-CplZzd7F.js +1 -0
  227. package/core/built/admin/assets/overview-B0yD9OoX.js +1 -0
  228. package/core/built/admin/assets/overview-C4eJzQqi.js +1 -0
  229. package/core/built/admin/assets/page-header-CdCpekG9.js +1 -0
  230. package/core/built/admin/assets/pagemenu-CKQD9hoP.js +1 -0
  231. package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
  232. package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
  233. package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
  234. package/core/built/admin/assets/pintura-modal-C5jzeyGk.js +1 -0
  235. package/core/built/admin/assets/portal-frame-DYo0bh0E.js +1 -0
  236. package/core/built/admin/assets/portal-modal-C0d8xjKa.js +1 -0
  237. package/core/built/admin/assets/post-analytics-C5C7IyAm.js +1 -0
  238. package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
  239. package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
  240. package/core/built/admin/assets/post-analytics-provider-BqCPPxmW.js +1 -0
  241. package/core/built/admin/assets/post-share-modal-wxmqbAv_.js +1 -0
  242. package/core/built/admin/assets/posts-list-screen-B978ZO0R.js +2 -0
  243. package/core/built/admin/assets/posts-route-CDqxKazl.js +1 -0
  244. package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
  245. package/core/built/admin/assets/preferences-CnejTRc4.js +5 -0
  246. package/core/built/admin/assets/preview-chrome-C7yZWVLZ.js +1 -0
  247. package/core/built/admin/assets/preview-modal-CFUxUGHp.js +1 -0
  248. package/core/built/admin/assets/profile-ClRGiOqA.js +1 -0
  249. package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
  250. package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
  251. package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
  252. package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
  253. package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
  254. package/core/built/admin/assets/router-provider-DDZvgS3V.js +1 -0
  255. package/core/built/admin/assets/select-D_4xWFYv.js +1 -0
  256. package/core/built/admin/assets/settings-BRl7-7a9.js +1 -0
  257. package/core/built/admin/assets/settings-BoQcPa-y.js +4 -0
  258. package/core/built/admin/assets/settings-breadcrumbs-C9Yxl81q.js +1 -0
  259. package/core/built/admin/assets/{dist-B3keLvjj.js → shade-scope-Cccj-c7I-D0XwkdKQ.js} +5 -3
  260. package/core/built/admin/assets/share-modal-DBqZobuR.js +1 -0
  261. package/core/built/admin/assets/simple-pagination-D5t_ox6x.js +1 -0
  262. package/core/built/admin/assets/skeleton-CPcTiTSX.js +1 -0
  263. package/core/built/admin/assets/slack-modal-BF9ex8cd.js +1 -0
  264. package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
  265. package/core/built/admin/assets/source-icon-BzzftCQ2.js +1 -0
  266. package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
  267. package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
  268. package/core/built/admin/assets/step-1-CBUYUPPF.js +1 -0
  269. package/core/built/admin/assets/step-2-CEIXUwQa.js +1 -0
  270. package/core/built/admin/assets/step-3-C1HA5i1N.js +2 -0
  271. package/core/built/admin/assets/stripe-button-DMFsLs80.js +1 -0
  272. package/core/built/admin/assets/stripe-connect-modal-CEvxCUTv.js +1 -0
  273. package/core/built/admin/assets/switch-DoOJF2yg.js +1 -0
  274. package/core/built/admin/assets/table-BDYbUHJz.js +1 -0
  275. package/core/built/admin/assets/tabs-BZyz4ZCH.js +1 -0
  276. package/core/built/admin/assets/tag-detail-CFzaz_9E.js +2 -0
  277. package/core/built/admin/assets/tag-picker-BKUCZuRc.js +1 -0
  278. package/core/built/admin/assets/tags-Bs1FiD7m.js +1 -0
  279. package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
  280. package/core/built/admin/assets/testimonials-modal-CVm0_7E-.js +1 -0
  281. package/core/built/admin/assets/text-BLI0C8Mc.js +1 -0
  282. package/core/built/admin/assets/textarea-C5qolByg.js +1 -0
  283. package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
  284. package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
  285. package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
  286. package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
  287. package/core/built/admin/assets/topic-filter-BMjhquv7.js +1 -0
  288. package/core/built/admin/assets/transistor-modal-hMv53jF8.js +1 -0
  289. package/core/built/admin/assets/trend-badge-1w_HEzkG.js +1 -0
  290. package/core/built/admin/assets/unsplash-modal-jzC8lEB2.js +1 -0
  291. package/core/built/admin/assets/use-analytics-data-B3lGOxsC.js +1 -0
  292. package/core/built/admin/assets/use-availability-DnKqOyqd.js +1 -0
  293. package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
  294. package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
  295. package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
  296. package/core/built/admin/assets/use-filterable-api-CxCrnPxG.js +1 -0
  297. package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
  298. package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
  299. package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
  300. package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
  301. package/core/built/admin/assets/use-navigate-with-base-path-BzgNwMAx.js +1 -0
  302. package/core/built/admin/assets/use-pintura-config-CtEV1JQY.js +1 -0
  303. package/core/built/admin/assets/use-pintura-editor-CaxE64kD.js +1 -0
  304. package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
  305. package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
  306. package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
  307. package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
  308. package/core/built/admin/assets/use-sending-eta-DR9ueMH8.js +1 -0
  309. package/core/built/admin/assets/use-setting-group-ldtX1Vsk.js +1 -0
  310. package/core/built/admin/assets/use-settings-navigation-CzGU4sus.js +1 -0
  311. package/core/built/admin/assets/use-staff-users-DoeXaPsb.js +1 -0
  312. package/core/built/admin/assets/use-tinybird-query-BaBNCaj0.js +1 -0
  313. package/core/built/admin/assets/use-tinybird-token-CnZ19NDf.js +1 -0
  314. package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
  315. package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
  316. package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-C5KHJw79.js} +1 -1
  317. package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
  318. package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
  319. package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
  320. package/core/built/admin/assets/{vendor-2dd263291938d407802568d3357ec69e.js → vendor-97e91ff8dd1457c668f9ef103ee1a77b.js} +2748 -2977
  321. package/core/built/admin/assets/virtual-list-tAuPUICw.js +1 -0
  322. package/core/built/admin/assets/web-BQlKcW2x.js +2 -0
  323. package/core/built/admin/assets/web-NTT5DkEz.js +1 -0
  324. package/core/built/admin/assets/zapier-modal-DsHG9Oev.js +1 -0
  325. package/core/built/admin/index.html +35 -34
  326. package/core/cli/command.js +17 -2
  327. package/core/frontend/apps/private-blogging/index.js +2 -2
  328. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  329. package/core/frontend/apps/private-blogging/lib/router.js +1 -1
  330. package/core/frontend/helpers/cancel_link.js +3 -3
  331. package/core/frontend/helpers/content.js +2 -2
  332. package/core/frontend/helpers/content_api_url.js +1 -1
  333. package/core/frontend/helpers/date.js +1 -1
  334. package/core/frontend/helpers/foreach.js +5 -5
  335. package/core/frontend/helpers/get.js +7 -4
  336. package/core/frontend/helpers/ghost_head.js +2 -2
  337. package/core/frontend/helpers/has.js +1 -3
  338. package/core/frontend/helpers/link.js +7 -7
  339. package/core/frontend/helpers/link_class.js +2 -2
  340. package/core/frontend/helpers/navigation.js +1 -2
  341. package/core/frontend/helpers/recommendations.js +5 -6
  342. package/core/frontend/helpers/tiers.js +1 -1
  343. package/core/frontend/helpers/total_members.js +1 -1
  344. package/core/frontend/helpers/total_paid_members.js +1 -1
  345. package/core/frontend/meta/asset-url.js +1 -16
  346. package/core/frontend/meta/author-url.js +1 -1
  347. package/core/frontend/meta/modified-date.js +1 -1
  348. package/core/frontend/meta/published-date.js +1 -1
  349. package/core/frontend/meta/schema.js +3 -8
  350. package/core/frontend/meta/structured-data.js +1 -2
  351. package/core/frontend/services/asset-hash/index.js +32 -2
  352. package/core/frontend/services/assets-minification/minifier.js +1 -1
  353. package/core/frontend/services/data/entry-lookup.js +1 -1
  354. package/core/frontend/services/data/fetch-data.js +2 -2
  355. package/core/frontend/services/rendering/format-response.js +1 -1
  356. package/core/frontend/services/rendering/renderer.js +3 -0
  357. package/core/frontend/services/rendering/templates.js +1 -1
  358. package/core/frontend/services/routing/controllers/static.js +1 -1
  359. package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
  360. package/core/frontend/services/routing/parent-router.js +1 -1
  361. package/core/frontend/services/routing/registry.js +1 -1
  362. package/core/frontend/services/rss/generate-feed.js +1 -1
  363. package/core/frontend/services/sitemap/base-site-map-generator.js +68 -97
  364. package/core/frontend/services/sitemap/site-map-index-generator.js +16 -21
  365. package/core/frontend/services/sitemap/site-map-manager.js +82 -43
  366. package/core/frontend/services/sitemap/sitemap-xml.js +72 -0
  367. package/core/frontend/services/theme-engine/active.js +2 -4
  368. package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
  369. package/core/frontend/services/theme-engine/i18n/i18n.js +15 -6
  370. package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
  371. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
  372. package/core/frontend/services/theme-engine/preview.js +1 -1
  373. package/core/frontend/utils/member-count.js +2 -2
  374. package/core/frontend/web/middleware/llms-discovery.js +34 -43
  375. package/core/frontend/web/routers/serve-public-file.js +1 -1
  376. package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
  377. package/core/server/adapters/scheduling/README.md +4 -0
  378. package/core/server/adapters/scheduling/get-scheduler-idempotency-key.js +21 -0
  379. package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
  380. package/core/server/adapters/storage/LocalStorageBase.js +15 -1
  381. package/core/server/api/endpoints/actions.js +2 -1
  382. package/core/server/api/endpoints/automated-emails.js +11 -4
  383. package/core/server/api/endpoints/automations.js +77 -49
  384. package/core/server/api/endpoints/db.js +1 -1
  385. package/core/server/api/endpoints/emails.js +11 -6
  386. package/core/server/api/endpoints/index.js +1 -1
  387. package/core/server/api/endpoints/invites.js +2 -1
  388. package/core/server/api/endpoints/labels.js +6 -2
  389. package/core/server/api/endpoints/mail.js +1 -1
  390. package/core/server/api/endpoints/member-metafields.js +2 -2
  391. package/core/server/api/endpoints/member-signin-urls.js +1 -1
  392. package/core/server/api/endpoints/members.js +23 -7
  393. package/core/server/api/endpoints/oembed.js +1 -1
  394. package/core/server/api/endpoints/pages.js +2 -6
  395. package/core/server/api/endpoints/posts.js +4 -12
  396. package/core/server/api/endpoints/settings.js +2 -2
  397. package/core/server/api/endpoints/snippets.js +2 -1
  398. package/core/server/api/endpoints/tags.js +6 -2
  399. package/core/server/api/endpoints/themes.js +5 -5
  400. package/core/server/api/endpoints/users.js +2 -6
  401. package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
  402. package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -2
  403. package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -2
  404. package/core/server/api/endpoints/utils/serializers/input/tags.js +1 -1
  405. package/core/server/api/endpoints/utils/serializers/input/utils/slug-filter-order.js +4 -4
  406. package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +8 -5
  407. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
  408. package/core/server/api/endpoints/utils/serializers/output/pages.js +4 -4
  409. package/core/server/api/endpoints/utils/serializers/output/posts.js +4 -4
  410. package/core/server/api/endpoints/utils/serializers/output/search-index.js +11 -11
  411. package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
  412. package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
  413. package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +6 -3
  414. package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
  415. package/core/server/api/endpoints/utils/validators/input/settings.js +18 -4
  416. package/core/server/data/exporter/exporter.js +3 -3
  417. package/core/server/data/exporter/table-lists.js +4 -5
  418. package/core/server/data/importer/handlers/image.js +1 -2
  419. package/core/server/data/importer/handlers/json.js +1 -3
  420. package/core/server/data/importer/handlers/markdown.js +4 -8
  421. package/core/server/data/importer/import-manager.js +1 -1
  422. package/core/server/data/importer/importers/content-file-importer.js +4 -8
  423. package/core/server/data/importer/importers/data/base.js +10 -10
  424. package/core/server/data/importer/importers/data/custom-theme-settings-importer.js +1 -1
  425. package/core/server/data/importer/importers/data/data-importer.js +3 -4
  426. package/core/server/data/importer/importers/data/posts-importer.js +10 -10
  427. package/core/server/data/importer/importers/data/products-importer.js +3 -3
  428. package/core/server/data/importer/importers/data/settings-importer.js +10 -4
  429. package/core/server/data/importer/importers/data/stripe-prices-importer.js +1 -1
  430. package/core/server/data/importer/importers/data/stripe-products-importer.js +1 -1
  431. package/core/server/data/importer/importers/data/tags-importer.js +1 -1
  432. package/core/server/data/importer/importers/data/users-importer.js +2 -2
  433. package/core/server/data/importer/importers/json-to-html.js +12 -9
  434. package/core/server/data/migrations/versions/5.0/2022-05-11-13-12-rename-settings.js +1 -1
  435. package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
  436. package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
  437. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
  438. package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
  439. package/core/server/data/migrations/versions/6.65/2026-09-16-15-35-26-add-members-metafield-change-events.js +17 -0
  440. package/core/server/data/schema/fixtures/fixture-manager.js +3 -3
  441. package/core/server/data/schema/index.js +1 -1
  442. package/core/server/data/schema/schema.js +54 -2
  443. package/core/server/data/schema/validator.js +96 -123
  444. package/core/server/data/seeders/importers/automations-importer.js +0 -1
  445. package/core/server/data/seeders/importers/comments-importer.js +1 -1
  446. package/core/server/data/seeders/importers/email-recipients-importer.js +3 -3
  447. package/core/server/data/seeders/importers/emails-importer.js +1 -1
  448. package/core/server/data/seeders/importers/members-importer.js +1 -1
  449. package/core/server/data/seeders/importers/members-login-events-importer.js +2 -2
  450. package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
  451. package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
  452. package/core/server/data/seeders/importers/members-status-events-importer.js +1 -1
  453. package/core/server/data/seeders/importers/members-stripe-customers-importer.js +1 -1
  454. package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +2 -2
  455. package/core/server/data/seeders/importers/members-subscribe-events-importer.js +2 -2
  456. package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +1 -1
  457. package/core/server/data/seeders/utils/blog-info.js +4 -3
  458. package/core/server/data/seeders/utils/event-generator.js +72 -46
  459. package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
  460. package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
  461. package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
  462. package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
  463. package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
  464. package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
  465. package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
  466. package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
  467. package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
  468. package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
  469. package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
  470. package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
  471. package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
  472. package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
  473. package/core/server/ghost-server.js +4 -22
  474. package/core/server/lib/generate-password.js +54 -0
  475. package/core/server/lib/image/image-size.js +1 -3
  476. package/core/server/lib/public-jwk.js +77 -0
  477. package/core/server/lib/request-external.js +53 -117
  478. package/core/server/models/base/plugins/actions.js +2 -3
  479. package/core/server/models/base/plugins/crud.js +1 -2
  480. package/core/server/models/base/plugins/events.js +4 -4
  481. package/core/server/models/base/plugins/raw-knex.js +3 -3
  482. package/core/server/models/base/plugins/sanitize.js +1 -1
  483. package/core/server/models/benefit.js +1 -1
  484. package/core/server/models/collection.js +1 -1
  485. package/core/server/models/comment.js +3 -3
  486. package/core/server/models/invite.js +2 -5
  487. package/core/server/models/label.js +3 -6
  488. package/core/server/models/member.js +7 -10
  489. package/core/server/models/newsletter.js +1 -1
  490. package/core/server/models/permission.js +3 -6
  491. package/core/server/models/post.js +20 -23
  492. package/core/server/models/product.js +4 -1
  493. package/core/server/models/relations/authors.js +9 -12
  494. package/core/server/models/role.js +2 -5
  495. package/core/server/models/settings.js +3 -3
  496. package/core/server/models/tag.js +2 -5
  497. package/core/server/models/user.js +19 -19
  498. package/core/server/models/webhook.js +2 -4
  499. package/core/server/notify.js +2 -2
  500. package/core/server/services/adapter-manager/base-classes.js +21 -3
  501. package/core/server/services/adapter-manager/utils.js +6 -1
  502. package/core/server/services/api-version-compatibility/legacy-api-path-match.js +2 -2
  503. package/core/server/services/auth/api-key/admin.js +2 -2
  504. package/core/server/services/auth/api-key/content.js +1 -1
  505. package/core/server/services/auth/passwordreset.js +1 -1
  506. package/core/server/services/auth/setup.js +1 -3
  507. package/core/server/services/automations/README.md +19 -0
  508. package/core/server/services/automations/automations-api.js +46 -1
  509. package/core/server/services/automations/poll.js +3 -1
  510. package/core/server/services/automations/service.js +2 -2
  511. package/core/server/services/automations/tinybird-automation-stats.js +56 -0
  512. package/core/server/services/automations/welcome-email-automation-poll.js +199 -293
  513. package/core/server/services/comments/comments-controller.js +9 -30
  514. package/core/server/services/comments/comments-service-email-renderer.js +1 -1
  515. package/core/server/services/comments/comments-service-emails.js +1 -1
  516. package/core/server/services/comments/comments-service.js +27 -58
  517. package/core/server/services/comments/comments-stats-service.js +1 -1
  518. package/core/server/services/content-import/import/media.js +1 -1
  519. package/core/server/services/content-import/import/staged-file.js +9 -9
  520. package/core/server/services/content-import/index.js +1 -1
  521. package/core/server/services/custom-redirects/validation.js +1 -1
  522. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +38 -84
  523. package/core/server/services/email-analytics/email-analytics-service.js +19 -3
  524. package/core/server/services/email-analytics/index.js +44 -23
  525. package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
  526. package/core/server/services/email-rendering/finalize.js +7 -2
  527. package/core/server/services/email-service/README.md +38 -0
  528. package/core/server/services/email-service/batch-sending-service.js +13 -14
  529. package/core/server/services/email-service/email-renderer.js +57 -16
  530. package/core/server/services/email-service/email-service-wrapper.js +4 -3
  531. package/core/server/services/email-service/email-service.js +76 -42
  532. package/core/server/services/email-service/email-templates/partials/feedback-button.hbs +2 -1
  533. package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -6
  534. package/core/server/services/email-service/email-templates/template.hbs +1 -1
  535. package/core/server/services/email-service/jobs/send-email-job.js +12 -0
  536. package/core/server/services/email-service/mailgun-email-provider.js +7 -2
  537. package/core/server/services/email-service/sending-service.js +1 -1
  538. package/core/server/services/email-service/sending-status.js +10 -4
  539. package/core/server/services/gifts/gift-email-service.js +10 -3
  540. package/core/server/services/gifts/gift-service.js +12 -3
  541. package/core/server/services/gifts/index.js +1 -2
  542. package/core/server/services/gifts/jobs/index.js +12 -24
  543. package/core/server/services/gifts/jobs/send-gift-reminders-job.js +6 -46
  544. package/core/server/services/i18n.js +1 -1
  545. package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
  546. package/core/server/services/invitations/accept.js +2 -2
  547. package/core/server/services/jobs/job-service.js +0 -28
  548. package/core/server/services/jobs-service/jobs-service.js +5 -0
  549. package/core/server/services/jobs-service/register-job-handlers.js +17 -1
  550. package/core/server/services/lib/mailgun-client.js +16 -1
  551. package/core/server/services/lib/mailgun-recipient-message-id.js +49 -0
  552. package/core/server/services/limits.js +18 -2
  553. package/core/server/services/mail/ghost-mailer.js +1 -1
  554. package/core/server/services/member-attribution/member-attribution-service.js +1 -1
  555. package/core/server/services/member-attribution/referrer-translator.js +1 -1
  556. package/core/server/services/member-welcome-emails/service.js +1 -1
  557. package/core/server/services/members/account-service.js +3 -3
  558. package/core/server/services/members/api.js +1 -1
  559. package/core/server/services/members/import-export/import/importer.js +25 -16
  560. package/core/server/services/members/import-export/import/spool.js +11 -15
  561. package/core/server/services/members/import-export/index.js +11 -8
  562. package/core/server/services/members/jobs/index.js +1 -1
  563. package/core/server/services/members/jobs/members-import-job.js +18 -0
  564. package/core/server/services/members/member-avatar.js +18 -0
  565. package/core/server/services/members/members-api/controllers/member-controller.js +2 -2
  566. package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
  567. package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
  568. package/core/server/services/members/members-api/members-api.js +4 -4
  569. package/core/server/services/members/members-api/repositories/event-repository.js +40 -1
  570. package/core/server/services/members/members-api/repositories/member-repository.js +55 -17
  571. package/core/server/services/members/members-api/repositories/product-repository.js +1 -1
  572. package/core/server/services/members/members-api/services/member-bread-service.js +19 -19
  573. package/core/server/services/members/members-api/services/token-service.js +11 -12
  574. package/core/server/services/members/middleware.js +9 -2
  575. package/core/server/services/members/request-integrity-token-provider.js +2 -1
  576. package/core/server/services/members/service.js +7 -2
  577. package/core/server/services/members/stats/members-stats.js +2 -2
  578. package/core/server/services/members-events/event-storage.js +2 -2
  579. package/core/server/services/members-metafields/access.js +31 -20
  580. package/core/server/services/members-metafields/actions.js +24 -2
  581. package/core/server/services/members-metafields/bindings-service.js +5 -5
  582. package/core/server/services/members-metafields/codec.js +9 -2
  583. package/core/server/services/members-metafields/definitions-service.js +57 -52
  584. package/core/server/services/members-metafields/index.js +3 -2
  585. package/core/server/services/members-metafields/models.js +2 -0
  586. package/core/server/services/members-metafields/queries.js +45 -11
  587. package/core/server/services/members-metafields/schema.js +51 -1
  588. package/core/server/services/members-metafields/serializers.js +1 -0
  589. package/core/server/services/members-metafields/values-service.js +132 -21
  590. package/core/server/services/mentions/mention-discovery-service.js +1 -1
  591. package/core/server/services/mentions/mention-sending-service.js +3 -3
  592. package/core/server/services/mentions/mention.js +4 -5
  593. package/core/server/services/mentions/mentions-api.js +4 -1
  594. package/core/server/services/mentions-jobs/job-service.js +0 -28
  595. package/core/server/services/milestones/milestones-service.js +1 -1
  596. package/core/server/services/newsletters/newsletters-service.js +1 -1
  597. package/core/server/services/notifications/notifications.js +3 -3
  598. package/core/server/services/oembed/oembed-service.js +115 -14
  599. package/core/server/services/permissions/can-this.js +1 -2
  600. package/core/server/services/post-scheduling/post-scheduling.js +8 -1
  601. package/core/server/services/posts/post-scheduling.js +27 -0
  602. package/core/server/services/settings/settings-bread-service.js +3 -3
  603. package/core/server/services/settings/settings-utils.js +1 -1
  604. package/core/server/services/settings-helpers/settings-helpers.js +1 -1
  605. package/core/server/services/staff/staff-service-emails.js +14 -10
  606. package/core/server/services/stats/posts-stats-service.js +10 -10
  607. package/core/server/services/stats/referrers-stats-service.js +1 -1
  608. package/core/server/services/stats/stats-service.js +12 -3
  609. package/core/server/services/stats/subscription-stats-service.js +3 -3
  610. package/core/server/services/stats/utils/tinybird.js +8 -1
  611. package/core/server/services/stripe/stripe-api.js +3 -3
  612. package/core/server/services/stripe/stripe-migrations.js +6 -6
  613. package/core/server/services/themes/storage.js +21 -26
  614. package/core/server/services/themes/theme-storage.js +2 -2
  615. package/core/server/services/tier-checkout-config/service.js +17 -1
  616. package/core/server/services/tiers/tier.js +15 -15
  617. package/core/server/services/tinybird/tinybird-service.js +1 -0
  618. package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
  619. package/core/server/services/tinybird-sync/index.js +31 -0
  620. package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
  621. package/core/server/services/tinybird-sync/tinybird-sync-service.js +67 -0
  622. package/core/server/services/update-check/update-check-service.js +3 -3
  623. package/core/server/services/webhooks/serialize.js +1 -1
  624. package/core/server/web/api/app.js +0 -5
  625. package/core/server/web/api/endpoints/admin/routes.js +33 -34
  626. package/core/server/web/api/middleware/upload.js +29 -2
  627. package/core/server/web/parent/middleware/index.js +1 -1
  628. package/core/server/web/parent/middleware/log-request.js +5 -0
  629. package/core/server/web/parent/middleware/queue-request.js +104 -59
  630. package/core/server/web/shared/middleware/api/spam-prevention.js +2 -2
  631. package/core/server/web/well-known.js +12 -16
  632. package/core/shared/config/defaults.json +7 -3
  633. package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
  634. package/core/shared/{flush-logs.js → flush.js} +7 -3
  635. package/core/shared/labs.js +5 -2
  636. package/core/shared/settings-cache/cache-manager.js +1 -1
  637. package/core/shared/timing-safe-string-equal.js +26 -0
  638. package/nodemon.json +1 -1
  639. package/package.json +47 -48
  640. package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
  641. package/patches/juice@11.1.1.patch +46 -0
  642. package/pnpm-lock.yaml +571 -2107
  643. package/pnpm-workspace.yaml +38 -28
  644. package/scripts/prune.mts +70 -3
  645. package/tsconfig.json +1 -1
  646. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  647. package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
  648. package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
  649. package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
  650. package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
  651. package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
  652. package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
  653. package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
  654. package/core/built/admin/assets/activitypub/avatar-DVJF5bxP.js +0 -261
  655. package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +0 -1
  656. package/core/built/admin/assets/activitypub/routes-DdyY9uFF.js +0 -7181
  657. package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +0 -315
  658. package/core/built/admin/assets/activitypub/tabs-DLhZtVde.js +0 -1083
  659. package/core/built/admin/assets/activitypub/users-inweyKL5.js +0 -1499
  660. package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
  661. package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
  662. package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
  663. package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
  664. package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
  665. package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
  666. package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
  667. package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
  668. package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
  669. package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
  670. package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
  671. package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
  672. package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
  673. package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
  674. package/core/built/admin/assets/build-CsiH26uS.js +0 -1
  675. package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
  676. package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
  677. package/core/built/admin/assets/card--VNbfgo3.js +0 -1
  678. package/core/built/admin/assets/chart-BrhA41Zi.js +0 -63
  679. package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
  680. package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
  681. package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
  682. package/core/built/admin/assets/chunk.582.98b485f9b2802f540897.js +0 -34
  683. package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
  684. package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
  685. package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
  686. package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
  687. package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
  688. package/core/built/admin/assets/command-C_vyTikI.js +0 -1
  689. package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
  690. package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
  691. package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
  692. package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
  693. package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
  694. package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
  695. package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
  696. package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
  697. package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
  698. package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
  699. package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
  700. package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
  701. package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
  702. package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
  703. package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
  704. package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
  705. package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
  706. package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
  707. package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
  708. package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
  709. package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
  710. package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
  711. package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
  712. package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
  713. package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
  714. package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
  715. package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
  716. package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
  717. package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
  718. package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
  719. package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
  720. package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
  721. package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
  722. package/core/built/admin/assets/embed-signup-form-modal-DGqsORxS.js +0 -8
  723. package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
  724. package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
  725. package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
  726. package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
  727. package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
  728. package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
  729. package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
  730. package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
  731. package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
  732. package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
  733. package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
  734. package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
  735. package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
  736. package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
  737. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
  738. package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
  739. package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
  740. package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
  741. package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
  742. package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
  743. package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
  744. package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
  745. package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
  746. package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
  747. package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
  748. package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
  749. package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
  750. package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
  751. package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
  752. package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
  753. package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
  754. package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
  755. package/core/built/admin/assets/input-surface-BsrIZeSF.js +0 -1
  756. package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
  757. package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
  758. package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
  759. package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
  760. package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
  761. package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
  762. package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
  763. package/core/built/admin/assets/label-OLCzze8N.js +0 -1
  764. package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
  765. package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
  766. package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
  767. package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
  768. package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
  769. package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
  770. package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
  771. package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
  772. package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
  773. package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
  774. package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
  775. package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
  776. package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
  777. package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
  778. package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
  779. package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
  780. package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
  781. package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
  782. package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
  783. package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
  784. package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
  785. package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
  786. package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
  787. package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
  788. package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
  789. package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
  790. package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
  791. package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
  792. package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
  793. package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
  794. package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
  795. package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
  796. package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
  797. package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
  798. package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
  799. package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
  800. package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
  801. package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
  802. package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
  803. package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
  804. package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
  805. package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
  806. package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
  807. package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
  808. package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
  809. package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
  810. package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
  811. package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
  812. package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
  813. package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
  814. package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
  815. package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
  816. package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
  817. package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
  818. package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
  819. package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
  820. package/core/built/admin/assets/shade-app-CcS3f8MZ-vwURazk8.js +0 -3
  821. package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
  822. package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
  823. package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
  824. package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
  825. package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
  826. package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
  827. package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
  828. package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
  829. package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
  830. package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
  831. package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
  832. package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
  833. package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
  834. package/core/built/admin/assets/table-BenqVupI.js +0 -1
  835. package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
  836. package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
  837. package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
  838. package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
  839. package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
  840. package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
  841. package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
  842. package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
  843. package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
  844. package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
  845. package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
  846. package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
  847. package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
  848. package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
  849. package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
  850. package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
  851. package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
  852. package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
  853. package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
  854. package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
  855. package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
  856. package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
  857. package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
  858. package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
  859. package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
  860. package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
  861. package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
  862. package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
  863. package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
  864. package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
  865. package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
  866. package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
  867. package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +0 -1
  868. package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
  869. package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
  870. package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
  871. package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
  872. package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
  873. package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
  874. package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
  875. package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
  876. package/core/frontend/services/sitemap/utils.js +0 -17
  877. package/core/server/services/automations/get-scheduler-idempotency-key.js +0 -13
  878. package/core/server/web/api/testmode/index.js +0 -1
  879. package/core/server/web/api/testmode/jobs/cpu-hog.js +0 -15
  880. package/core/server/web/api/testmode/jobs/graceful-job.js +0 -50
  881. package/core/server/web/api/testmode/jobs/say-hello.js +0 -17
  882. package/core/server/web/api/testmode/routes.js +0 -120
  883. /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
@@ -1,1499 +0,0 @@
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 E, j as D, k as O, p as ee, v as k, w as A, x as j, y as te, z as M } from "./chunk-KS7C4IRE-Ck3O4oo2.js";
3
- //#region ../../node_modules/.pnpm/@tanstack+query-core@5.101.4/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 && ne(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 re(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 (O.isServer() || this.#r.isStale || !D(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, !(O.isServer() || b(this.options.enabled, this.#t) === !1 || !D(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 && ne(e, n, t, r);
118
- (a || o) && (l = {
119
- ...l,
120
- ...A(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: L(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 && L(e, t);
229
- }
230
- return !1;
231
- }
232
- function ne(e, t, n, r) {
233
- return (e !== t || b(r.enabled, e) === !1) && (!n.suspense || e.state.status !== "error") && L(e, n);
234
- }
235
- function L(e, t) {
236
- return b(t.enabled, e) !== !1 && e.isStaleByTime(m(t.staleTime, e));
237
- }
238
- function re(e, t) {
239
- return !h(e.getCurrentResult(), t);
240
- }
241
- //#endregion
242
- //#region ../../node_modules/.pnpm/@tanstack+query-core@5.101.4/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js
243
- var ie = 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
- }, ae = 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 oe = a(!1), R = () => r(oe);
370
- //#endregion
371
- //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js
372
- oe.Provider, o();
373
- function se() {
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 z = a(se()), ce = () => r(z);
386
- //#endregion
387
- //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js
388
- o();
389
- var le = (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
- }, B = (e) => {
393
- c(() => {
394
- e.clearReset();
395
- }, [e]);
396
- }, V = ({ 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])), ue = (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
- }, de = (e, t) => e.isLoading && e.isFetching && !t, H = (e, t) => e?.suspense && t.isPending, fe = (e, t, n) => t.fetchOptimistic(e).catch(() => {
402
- n.clearReset();
403
- });
404
- //#endregion
405
- //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js
406
- o();
407
- function U(t, r, i) {
408
- let a = R(), o = ce(), l = j(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, ue(u), le(u, o, d), B(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]), H(u, g)) throw fe(u, h, o);
419
- if (V({
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 && !O.isServer() && de(g, a) && (m ? fe(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.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js
432
- function W(e, t) {
433
- return U(e, N, t);
434
- }
435
- //#endregion
436
- //#region ../../node_modules/.pnpm/@tanstack+react-query@5.101.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js
437
- o();
438
- function G(t, r) {
439
- let i = j(r), [a] = n(() => new ae(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.4_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js
455
- function pe(e, t) {
456
- return U(e, ie, 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
- errorDetails;
505
- constructor(e, t, n) {
506
- e instanceof Response ? super(e, t, "A hosting plan limit was reached or exceeded.", n) : (super(void 0, void 0, e.message || "A hosting plan limit was reached or exceeded."), this.errorDetails = e.errorDetails);
507
- }
508
- }, xe = class extends q {
509
- constructor(e, t, n) {
510
- super(e, t, "Please verify your email settings", n);
511
- }
512
- }, Se = class extends q {
513
- constructor(e, t, n) {
514
- super(e, t, t.errors[0].message, n);
515
- }
516
- };
517
- function Ce(e, t) {
518
- let n = e instanceof q ? e.data?.errors?.[0] : void 0;
519
- return n?.context || n?.message || t;
520
- }
521
- //#endregion
522
- //#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
523
- o();
524
- function we(e) {
525
- if (!e || typeof document > "u") return;
526
- let t = document.head || document.getElementsByTagName("head")[0], n = document.createElement("style");
527
- n.type = "text/css", t.appendChild(n), n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e));
528
- }
529
- var Te = (e) => {
530
- switch (e) {
531
- case "success": return Oe;
532
- case "info": return Ae;
533
- case "warning": return ke;
534
- case "error": return je;
535
- default: return null;
536
- }
537
- }, Ee = Array(12).fill(0), De = ({ visible: e, className: t }) => /*#__PURE__*/ i.createElement("div", {
538
- className: ["sonner-loading-wrapper", t].filter(Boolean).join(" "),
539
- "data-visible": e
540
- }, /*#__PURE__*/ i.createElement("div", { className: "sonner-spinner" }, Ee.map((e, t) => /*#__PURE__*/ i.createElement("div", {
541
- className: "sonner-loading-bar",
542
- key: `spinner-bar-${t}`
543
- })))), Oe = /*#__PURE__*/ i.createElement("svg", {
544
- xmlns: "http://www.w3.org/2000/svg",
545
- viewBox: "0 0 20 20",
546
- fill: "currentColor",
547
- height: "20",
548
- width: "20"
549
- }, /*#__PURE__*/ i.createElement("path", {
550
- fillRule: "evenodd",
551
- 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",
552
- clipRule: "evenodd"
553
- })), ke = /*#__PURE__*/ i.createElement("svg", {
554
- xmlns: "http://www.w3.org/2000/svg",
555
- viewBox: "0 0 24 24",
556
- fill: "currentColor",
557
- height: "20",
558
- width: "20"
559
- }, /*#__PURE__*/ i.createElement("path", {
560
- fillRule: "evenodd",
561
- 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",
562
- clipRule: "evenodd"
563
- })), Ae = /*#__PURE__*/ i.createElement("svg", {
564
- xmlns: "http://www.w3.org/2000/svg",
565
- viewBox: "0 0 20 20",
566
- fill: "currentColor",
567
- height: "20",
568
- width: "20"
569
- }, /*#__PURE__*/ i.createElement("path", {
570
- fillRule: "evenodd",
571
- 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",
572
- clipRule: "evenodd"
573
- })), je = /*#__PURE__*/ i.createElement("svg", {
574
- xmlns: "http://www.w3.org/2000/svg",
575
- viewBox: "0 0 20 20",
576
- fill: "currentColor",
577
- height: "20",
578
- width: "20"
579
- }, /*#__PURE__*/ i.createElement("path", {
580
- fillRule: "evenodd",
581
- 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",
582
- clipRule: "evenodd"
583
- })), Me = /*#__PURE__*/ i.createElement("svg", {
584
- xmlns: "http://www.w3.org/2000/svg",
585
- width: "12",
586
- height: "12",
587
- viewBox: "0 0 24 24",
588
- fill: "none",
589
- stroke: "currentColor",
590
- strokeWidth: "1.5",
591
- strokeLinecap: "round",
592
- strokeLinejoin: "round"
593
- }, /*#__PURE__*/ i.createElement("line", {
594
- x1: "18",
595
- y1: "6",
596
- x2: "6",
597
- y2: "18"
598
- }), /*#__PURE__*/ i.createElement("line", {
599
- x1: "6",
600
- y1: "6",
601
- x2: "18",
602
- y2: "18"
603
- })), Ne = () => {
604
- let [e, t] = i.useState(document.hidden);
605
- return i.useEffect(() => {
606
- let e = () => {
607
- t(document.hidden);
608
- };
609
- return document.addEventListener("visibilitychange", e), () => window.removeEventListener("visibilitychange", e);
610
- }, []), e;
611
- }, Pe = 1, Z = new class {
612
- constructor() {
613
- this.subscribe = (e) => (this.subscribers.push(e), () => {
614
- let t = this.subscribers.indexOf(e);
615
- this.subscribers.splice(t, 1);
616
- }), this.publish = (e) => {
617
- this.subscribers.forEach((t) => t(e));
618
- }, this.addToast = (e) => {
619
- this.publish(e), this.toasts = [...this.toasts, e];
620
- }, this.create = (e) => {
621
- 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;
622
- return this.dismissedToasts.has(r) && this.dismissedToasts.delete(r), i ? this.toasts = this.toasts.map((n) => n.id === r ? (this.publish({
623
- ...n,
624
- ...e,
625
- id: r,
626
- title: t
627
- }), {
628
- ...n,
629
- ...e,
630
- id: r,
631
- dismissible: a,
632
- title: t
633
- }) : n) : this.addToast({
634
- title: t,
635
- ...n,
636
- dismissible: a,
637
- id: r
638
- }), r;
639
- }, this.dismiss = (e) => (e ? (this.dismissedToasts.add(e), requestAnimationFrame(() => this.subscribers.forEach((t) => t({
640
- id: e,
641
- dismiss: !0
642
- })))) : this.toasts.forEach((e) => {
643
- this.subscribers.forEach((t) => t({
644
- id: e.id,
645
- dismiss: !0
646
- }));
647
- }), e), this.message = (e, t) => this.create({
648
- ...t,
649
- message: e
650
- }), this.error = (e, t) => this.create({
651
- ...t,
652
- message: e,
653
- type: "error"
654
- }), this.success = (e, t) => this.create({
655
- ...t,
656
- type: "success",
657
- message: e
658
- }), this.info = (e, t) => this.create({
659
- ...t,
660
- type: "info",
661
- message: e
662
- }), this.warning = (e, t) => this.create({
663
- ...t,
664
- type: "warning",
665
- message: e
666
- }), this.loading = (e, t) => this.create({
667
- ...t,
668
- type: "loading",
669
- message: e
670
- }), this.promise = (e, t) => {
671
- if (!t) return;
672
- let n;
673
- t.loading !== void 0 && (n = this.create({
674
- ...t,
675
- promise: e,
676
- type: "loading",
677
- message: t.loading,
678
- description: typeof t.description == "function" ? void 0 : t.description
679
- }));
680
- let r = Promise.resolve(e instanceof Function ? e() : e), a = n !== void 0, o, s = r.then(async (e) => {
681
- if (o = ["resolve", e], i.isValidElement(e)) a = !1, this.create({
682
- id: n,
683
- type: "default",
684
- message: e
685
- });
686
- else if (Ie(e) && !e.ok) {
687
- a = !1;
688
- 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 };
689
- this.create({
690
- id: n,
691
- type: "error",
692
- description: o,
693
- ...s
694
- });
695
- } else if (e instanceof Error) {
696
- a = !1;
697
- 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 };
698
- this.create({
699
- id: n,
700
- type: "error",
701
- description: o,
702
- ...s
703
- });
704
- } else if (t.success !== void 0) {
705
- a = !1;
706
- 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 };
707
- this.create({
708
- id: n,
709
- type: "success",
710
- description: o,
711
- ...s
712
- });
713
- }
714
- }).catch(async (e) => {
715
- if (o = ["reject", e], t.error !== void 0) {
716
- a = !1;
717
- 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 };
718
- this.create({
719
- id: n,
720
- type: "error",
721
- description: o,
722
- ...s
723
- });
724
- }
725
- }).finally(() => {
726
- a && (this.dismiss(n), n = void 0), t.finally == null || t.finally.call(t);
727
- }), c = () => new Promise((e, t) => s.then(() => o[0] === "reject" ? t(o[1]) : e(o[1])).catch(t));
728
- return typeof n != "string" && typeof n != "number" ? { unwrap: c } : Object.assign(n, { unwrap: c });
729
- }, this.custom = (e, t) => {
730
- let n = t?.id || Pe++;
731
- return this.create({
732
- jsx: e(n),
733
- id: n,
734
- ...t
735
- }), n;
736
- }, this.getActiveToasts = () => this.toasts.filter((e) => !this.dismissedToasts.has(e.id)), this.subscribers = [], this.toasts = [], this.dismissedToasts = /* @__PURE__ */ new Set();
737
- }
738
- }(), Fe = (e, t) => {
739
- let n = t?.id || Pe++;
740
- return Z.addToast({
741
- title: e,
742
- ...t,
743
- id: n
744
- }), n;
745
- }, Ie = (e) => e && typeof e == "object" && "ok" in e && typeof e.ok == "boolean" && "status" in e && typeof e.status == "number", Le = Object.assign(Fe, {
746
- success: Z.success,
747
- info: Z.info,
748
- warning: Z.warning,
749
- error: Z.error,
750
- custom: Z.custom,
751
- message: Z.message,
752
- promise: Z.promise,
753
- dismiss: Z.dismiss,
754
- loading: Z.loading
755
- }, {
756
- getHistory: () => Z.toasts,
757
- getToasts: () => Z.getActiveToasts()
758
- });
759
- 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%)}");
760
- function Re(e) {
761
- return e.label !== void 0;
762
- }
763
- var ze = 3, Be = "24px", Ve = "16px", He = 4e3, Ue = 356, We = 14, Ge = 45, Ke = 200;
764
- function Q(...e) {
765
- return e.filter(Boolean).join(" ");
766
- }
767
- function qe(e) {
768
- let [t, n] = e.split("-"), r = [];
769
- return t && r.push(t), n && r.push(n), r;
770
- }
771
- var Je = (e) => {
772
- 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: E = "Close toast" } = e, [D, O] = i.useState(null), [ee, k] = i.useState(null), [A, j] = i.useState(!1), [te, M] = i.useState(!1), [N, P] = i.useState(!1), [F, I] = i.useState(!1), [ne, L] = i.useState(!1), [re, ie] = i.useState(0), [ae, oe] = i.useState(0), R = i.useRef(n.duration || b || He), se = i.useRef(null), z = i.useRef(null), ce = l === 0, le = l + 1 <= s, B = n.type, V = n.dismissible !== !1, ue = n.className || "", de = n.descriptionClassName || "", H = i.useMemo(() => c.findIndex((e) => e.toastId === n.id) || 0, [c, n.id]), fe = i.useMemo(() => n.closeButton ?? m, [n.closeButton, m]), U = 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 >= H ? e : e + t.height, 0), [c, H]), he = Ne(), ge = n.invert || t, _e = B === "loading";
773
- G.current = i.useMemo(() => H * S + J, [H, J]), i.useEffect(() => {
774
- R.current = U;
775
- }, [U]), i.useEffect(() => {
776
- j(!0);
777
- }, []), i.useEffect(() => {
778
- let e = z.current;
779
- if (e) {
780
- let t = e.getBoundingClientRect().height;
781
- return oe(t), o((e) => [{
782
- toastId: n.id,
783
- height: t,
784
- position: n.position
785
- }, ...e]), () => o((e) => e.filter((e) => e.toastId !== n.id));
786
- }
787
- }, [o, n.id]), i.useLayoutEffect(() => {
788
- if (!A) return;
789
- let e = z.current, t = e.style.height;
790
- e.style.height = "auto";
791
- let r = e.getBoundingClientRect().height;
792
- e.style.height = t, oe(r), o((e) => e.find((e) => e.toastId === n.id) ? e.map((e) => e.toastId === n.id ? {
793
- ...e,
794
- height: r
795
- } : e) : [{
796
- toastId: n.id,
797
- height: r,
798
- position: n.position
799
- }, ...e]);
800
- }, [
801
- A,
802
- n.title,
803
- n.description,
804
- o,
805
- n.id,
806
- n.jsx,
807
- n.action,
808
- n.cancel
809
- ]);
810
- let Y = i.useCallback(() => {
811
- M(!0), ie(G.current), o((e) => e.filter((e) => e.toastId !== n.id)), setTimeout(() => {
812
- f(n);
813
- }, Ke);
814
- }, [
815
- n,
816
- f,
817
- o,
818
- G
819
- ]);
820
- i.useEffect(() => {
821
- if (n.promise && B === "loading" || n.duration === Infinity || n.type === "loading") return;
822
- let e;
823
- return d || a || he ? (() => {
824
- if (pe.current < W.current) {
825
- let e = (/* @__PURE__ */ new Date()).getTime() - W.current;
826
- R.current -= e;
827
- }
828
- pe.current = (/* @__PURE__ */ new Date()).getTime();
829
- })() : R.current !== Infinity && (W.current = (/* @__PURE__ */ new Date()).getTime(), e = setTimeout(() => {
830
- n.onAutoClose == null || n.onAutoClose.call(n, n), Y();
831
- }, R.current)), () => clearTimeout(e);
832
- }, [
833
- d,
834
- a,
835
- n,
836
- B,
837
- he,
838
- Y
839
- ]), i.useEffect(() => {
840
- n.delete && (Y(), n.onDismiss == null || n.onDismiss.call(n, n));
841
- }, [Y, n.delete]);
842
- function X() {
843
- return T?.loading ? /*#__PURE__*/ i.createElement("div", {
844
- className: Q(w?.loader, n?.classNames?.loader, "sonner-loader"),
845
- "data-visible": B === "loading"
846
- }, T.loading) : /*#__PURE__*/ i.createElement(De, {
847
- className: Q(w?.loader, n?.classNames?.loader),
848
- visible: B === "loading"
849
- });
850
- }
851
- let ve = n.icon || T?.[B] || Te(B);
852
- return /*#__PURE__*/ i.createElement("li", {
853
- tabIndex: 0,
854
- ref: z,
855
- className: Q(v, ue, w?.toast, n?.classNames?.toast, w?.default, w?.[B], n?.classNames?.[B]),
856
- "data-sonner-toast": "",
857
- "data-rich-colors": n.richColors ?? p,
858
- "data-styled": !(n.jsx || n.unstyled || r),
859
- "data-mounted": A,
860
- "data-promise": !!n.promise,
861
- "data-swiped": ne,
862
- "data-removed": te,
863
- "data-visible": le,
864
- "data-y-position": q,
865
- "data-x-position": me,
866
- "data-index": l,
867
- "data-front": ce,
868
- "data-swiping": N,
869
- "data-dismissible": V,
870
- "data-type": B,
871
- "data-invert": ge,
872
- "data-swipe-out": F,
873
- "data-swipe-direction": ee,
874
- "data-expanded": !!(d || C && A),
875
- "data-testid": n.testId,
876
- style: {
877
- "--index": l,
878
- "--toasts-before": l,
879
- "--z-index": u.length - l,
880
- "--offset": `${te ? re : G.current}px`,
881
- "--initial-height": C ? "auto" : `${ae}px`,
882
- ...h,
883
- ...n.style
884
- },
885
- onDragEnd: () => {
886
- P(!1), O(null), K.current = null;
887
- },
888
- onPointerDown: (e) => {
889
- e.button !== 2 && (_e || !V || (se.current = /* @__PURE__ */ new Date(), ie(G.current), e.target.setPointerCapture(e.pointerId), e.target.tagName !== "BUTTON" && (P(!0), K.current = {
890
- x: e.clientX,
891
- y: e.clientY
892
- })));
893
- },
894
- onPointerUp: () => {
895
- if (F || !V) return;
896
- K.current = null;
897
- let e = Number(z.current?.style.getPropertyValue("--swipe-amount-x").replace("px", "") || 0), t = Number(z.current?.style.getPropertyValue("--swipe-amount-y").replace("px", "") || 0), r = (/* @__PURE__ */ new Date()).getTime() - se.current?.getTime(), i = D === "x" ? e : t, a = Math.abs(i) / r;
898
- if (Math.abs(i) >= Ge || a > .11) {
899
- ie(G.current), n.onDismiss == null || n.onDismiss.call(n, n), k(D === "x" ? e > 0 ? "right" : "left" : t > 0 ? "down" : "up"), Y(), I(!0);
900
- return;
901
- } else {
902
- var o, s;
903
- (o = z.current) == null || o.style.setProperty("--swipe-amount-x", "0px"), (s = z.current) == null || s.style.setProperty("--swipe-amount-y", "0px");
904
- }
905
- L(!1), P(!1), O(null);
906
- },
907
- onPointerMove: (t) => {
908
- var n, r;
909
- if (!K.current || !V || window.getSelection()?.toString().length > 0) return;
910
- let i = t.clientY - K.current.y, a = t.clientX - K.current.x, o = e.swipeDirections ?? qe(x);
911
- !D && (Math.abs(a) > 1 || Math.abs(i) > 1) && O(Math.abs(a) > Math.abs(i) ? "x" : "y");
912
- let s = {
913
- x: 0,
914
- y: 0
915
- }, c = (e) => 1 / (1.5 + Math.abs(e) / 20);
916
- if (D === "y") {
917
- if (o.includes("top") || o.includes("bottom")) if (o.includes("top") && i < 0 || o.includes("bottom") && i > 0) s.y = i;
918
- else {
919
- let e = i * c(i);
920
- s.y = Math.abs(e) < Math.abs(i) ? e : i;
921
- }
922
- } else if (D === "x" && (o.includes("left") || o.includes("right"))) if (o.includes("left") && a < 0 || o.includes("right") && a > 0) s.x = a;
923
- else {
924
- let e = a * c(a);
925
- s.x = Math.abs(e) < Math.abs(a) ? e : a;
926
- }
927
- (Math.abs(s.x) > 0 || Math.abs(s.y) > 0) && L(!0), (n = z.current) == null || n.style.setProperty("--swipe-amount-x", `${s.x}px`), (r = z.current) == null || r.style.setProperty("--swipe-amount-y", `${s.y}px`);
928
- }
929
- }, fe && !n.jsx && B !== "loading" ? /*#__PURE__*/ i.createElement("button", {
930
- "aria-label": E,
931
- "data-disabled": _e,
932
- "data-close-button": !0,
933
- onClick: _e || !V ? () => {} : () => {
934
- Y(), n.onDismiss == null || n.onDismiss.call(n, n);
935
- },
936
- className: Q(w?.closeButton, n?.classNames?.closeButton)
937
- }, T?.close ?? Me) : null, (B || n.icon || n.promise) && n.icon !== null && (T?.[B] !== null || n.icon) ? /*#__PURE__*/ i.createElement("div", {
938
- "data-icon": "",
939
- className: Q(w?.icon, n?.classNames?.icon)
940
- }, n.promise || n.type === "loading" && !n.icon ? n.icon || X() : null, n.type === "loading" ? null : ve) : null, /*#__PURE__*/ i.createElement("div", {
941
- "data-content": "",
942
- className: Q(w?.content, n?.classNames?.content)
943
- }, /*#__PURE__*/ i.createElement("div", {
944
- "data-title": "",
945
- className: Q(w?.title, n?.classNames?.title)
946
- }, n.jsx ? n.jsx : typeof n.title == "function" ? n.title() : n.title), n.description ? /*#__PURE__*/ i.createElement("div", {
947
- "data-description": "",
948
- className: Q(y, de, w?.description, n?.classNames?.description)
949
- }, 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", {
950
- "data-button": !0,
951
- "data-cancel": !0,
952
- style: n.cancelButtonStyle || g,
953
- onClick: (e) => {
954
- Re(n.cancel) && V && (n.cancel.onClick == null || n.cancel.onClick.call(n.cancel, e), Y());
955
- },
956
- className: Q(w?.cancelButton, n?.classNames?.cancelButton)
957
- }, n.cancel.label) : null, /*#__PURE__*/ i.isValidElement(n.action) ? n.action : n.action && Re(n.action) ? /*#__PURE__*/ i.createElement("button", {
958
- "data-button": !0,
959
- "data-action": !0,
960
- style: n.actionButtonStyle || _,
961
- onClick: (e) => {
962
- Re(n.action) && (n.action.onClick == null || n.action.onClick.call(n.action, e), !e.defaultPrevented && Y());
963
- },
964
- className: Q(w?.actionButton, n?.classNames?.actionButton)
965
- }, n.action.label) : null);
966
- };
967
- function Ye() {
968
- if (typeof window > "u" || typeof document > "u") return "ltr";
969
- let e = document.documentElement.getAttribute("dir");
970
- return e === "auto" || !e ? window.getComputedStyle(document.documentElement).direction : e;
971
- }
972
- function Xe(e, t) {
973
- let n = {};
974
- return [e, t].forEach((e, t) => {
975
- let r = t === 1, i = r ? "--mobile-offset" : "--offset", a = r ? Ve : Be;
976
- function o(e) {
977
- [
978
- "top",
979
- "right",
980
- "bottom",
981
- "left"
982
- ].forEach((t) => {
983
- n[`${i}-${t}`] = typeof e == "number" ? `${e}px` : e;
984
- });
985
- }
986
- typeof e == "number" || typeof e == "string" ? o(e) : typeof e == "object" ? [
987
- "top",
988
- "right",
989
- "bottom",
990
- "left"
991
- ].forEach((t) => {
992
- e[t] === void 0 ? n[`${i}-${t}`] = a : n[`${i}-${t}`] = typeof e[t] == "number" ? `${e[t]}px` : e[t];
993
- }) : o(a);
994
- }), n;
995
- }
996
- var Ze = /*#__PURE__*/ i.forwardRef(function(e, t) {
997
- 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]), [E, D] = i.useState([]), [O, k] = i.useState(!1), [A, j] = i.useState(!1), [te, 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), ne = i.useCallback((e) => {
998
- C((t) => (t.find((t) => t.id === e.id)?.delete || Z.dismiss(e.id), t.filter(({ id: t }) => t !== e.id)));
999
- }, []);
1000
- return i.useEffect(() => Z.subscribe((e) => {
1001
- if (e.dismiss) {
1002
- requestAnimationFrame(() => {
1003
- C((t) => t.map((t) => t.id === e.id ? {
1004
- ...t,
1005
- delete: !0
1006
- } : t));
1007
- });
1008
- return;
1009
- }
1010
- setTimeout(() => {
1011
- ee.flushSync(() => {
1012
- C((t) => {
1013
- let n = t.findIndex((t) => t.id === e.id);
1014
- return n === -1 ? [e, ...t] : [
1015
- ...t.slice(0, n),
1016
- {
1017
- ...t[n],
1018
- ...e
1019
- },
1020
- ...t.slice(n + 1)
1021
- ];
1022
- });
1023
- });
1024
- });
1025
- }), [S]), i.useEffect(() => {
1026
- if (f !== "system") {
1027
- M(f);
1028
- return;
1029
- }
1030
- if (f === "system" && (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? M("dark") : M("light")), typeof window > "u") return;
1031
- let e = window.matchMedia("(prefers-color-scheme: dark)");
1032
- try {
1033
- e.addEventListener("change", ({ matches: e }) => {
1034
- M(e ? "dark" : "light");
1035
- });
1036
- } catch {
1037
- e.addListener(({ matches: e }) => {
1038
- try {
1039
- M(e ? "dark" : "light");
1040
- } catch (e) {
1041
- console.error(e);
1042
- }
1043
- });
1044
- }
1045
- }, [f]), i.useEffect(() => {
1046
- S.length <= 1 && k(!1);
1047
- }, [S]), i.useEffect(() => {
1048
- let e = (e) => {
1049
- if (o.every((t) => e[t] || e.code === t)) {
1050
- var t;
1051
- k(!0), (t = N.current) == null || t.focus();
1052
- }
1053
- e.code === "Escape" && (document.activeElement === N.current || N.current?.contains(document.activeElement)) && k(!1);
1054
- };
1055
- return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
1056
- }, [o]), i.useEffect(() => {
1057
- if (N.current) return () => {
1058
- F.current && (F.current.focus({ preventScroll: !0 }), F.current = null, I.current = !1);
1059
- };
1060
- }, [N.current]), /*#__PURE__*/ i.createElement("section", {
1061
- ref: t,
1062
- "aria-label": `${x} ${P}`,
1063
- tabIndex: -1,
1064
- "aria-live": "polite",
1065
- "aria-relevant": "additions text",
1066
- "aria-atomic": "false",
1067
- suppressHydrationWarning: !0
1068
- }, T.map((t, n) => {
1069
- let [a, o] = t.split("-");
1070
- return w.length ? /*#__PURE__*/ i.createElement("ol", {
1071
- key: t,
1072
- dir: v === "auto" ? Ye() : v,
1073
- tabIndex: -1,
1074
- ref: N,
1075
- className: l,
1076
- "data-sonner-toaster": !0,
1077
- "data-sonner-theme": te,
1078
- "data-y-position": a,
1079
- "data-x-position": o,
1080
- style: {
1081
- "--front-toast-height": `${E[0]?.height || 0}px`,
1082
- "--width": `${Ue}px`,
1083
- "--gap": `${y}px`,
1084
- ...h,
1085
- ...Xe(u, d)
1086
- },
1087
- onBlur: (e) => {
1088
- I.current && !e.currentTarget.contains(e.relatedTarget) && (I.current = !1, F.current &&= (F.current.focus({ preventScroll: !0 }), null));
1089
- },
1090
- onFocus: (e) => {
1091
- e.target instanceof HTMLElement && e.target.dataset.dismissible === "false" || I.current || (I.current = !0, F.current = e.relatedTarget);
1092
- },
1093
- onMouseEnter: () => k(!0),
1094
- onMouseMove: () => k(!0),
1095
- onMouseLeave: () => {
1096
- A || k(!1);
1097
- },
1098
- onDragEnd: () => k(!1),
1099
- onPointerDown: (e) => {
1100
- e.target instanceof HTMLElement && e.target.dataset.dismissible === "false" || j(!0);
1101
- },
1102
- onPointerUp: () => j(!1)
1103
- }, w.filter((e) => !e.position && n === 0 || e.position === t).map((n, a) => /*#__PURE__*/ i.createElement(Je, {
1104
- key: n.id,
1105
- icons: b,
1106
- index: a,
1107
- toast: n,
1108
- defaultRichColors: p,
1109
- duration: _?.duration ?? m,
1110
- className: _?.className,
1111
- descriptionClassName: _?.descriptionClassName,
1112
- invert: r,
1113
- visibleToasts: g,
1114
- closeButton: _?.closeButton ?? c,
1115
- interacting: A,
1116
- position: t,
1117
- style: _?.style,
1118
- unstyled: _?.unstyled,
1119
- classNames: _?.classNames,
1120
- cancelButtonStyle: _?.cancelButtonStyle,
1121
- actionButtonStyle: _?.actionButtonStyle,
1122
- closeButtonAriaLabel: _?.closeButtonAriaLabel,
1123
- removeToast: ne,
1124
- toasts: w.filter((e) => e.position == n.position),
1125
- heights: E.filter((e) => e.position == n.position),
1126
- setHeights: D,
1127
- expandByDefault: s,
1128
- gap: y,
1129
- expanded: O,
1130
- swipeDirections: e.swipeDirections
1131
- }))) : null;
1132
- }));
1133
- });
1134
- //#endregion
1135
- //#region ../admin-x-framework/dist/hooks/use-handle-error.js
1136
- o();
1137
- function Qe(e) {
1138
- Le.dismiss(), Le.error(e);
1139
- }
1140
- var $e = () => {
1141
- let { sentryDSN: e } = T();
1142
- return s((t, { withToast: n = !0 } = {}) => {
1143
- console.error(t), e && !(t instanceof ve) && E((e) => {
1144
- t instanceof K && t.response && (e.setTag("api_url", t.response.url), e.setTag("api_response_status", t.response.status)), k(t);
1145
- }), 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."));
1146
- }, [e]);
1147
- };
1148
- //#endregion
1149
- //#region ../admin-x-framework/dist/utils/helpers.js
1150
- function et() {
1151
- let e = window.location.pathname, t = e.substr(0, e.search("/ghost/"));
1152
- return {
1153
- subdir: t,
1154
- adminRoot: `${t}/ghost/`,
1155
- assetRoot: `${t}/ghost/assets/`,
1156
- apiRoot: `${t}/ghost/api/admin`
1157
- };
1158
- }
1159
- //#endregion
1160
- //#region ../admin-x-framework/dist/utils/api/handle-response.js
1161
- var tt = (e) => !!e && (e.startsWith("text/") || e.includes("application/yaml")), nt = async (e, { responseType: t } = {}) => {
1162
- if (e.status === 0) throw new J();
1163
- if (e.status === 503) throw new Y(e, await e.text());
1164
- if (e.status === 415) throw new _e(e, await e.text());
1165
- if (e.status === 413) throw new ge(e, await e.text());
1166
- if (e.status === 401) throw e.headers.get("content-type")?.includes("json") ? new X(e, await e.json()) : new X(e, await e.text());
1167
- if (!e.ok) {
1168
- if (!e.headers.get("content-type")?.includes("json")) throw new K(e, await e.text());
1169
- let t = await e.json();
1170
- 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);
1171
- } else if (e.status === 204) return;
1172
- else if (t === "blob") return await e.blob();
1173
- else if (t === "arraybuffer") return await e.arrayBuffer();
1174
- else if (tt(e.headers.get("content-type"))) return await e.text();
1175
- else return await e.json();
1176
- };
1177
- //#endregion
1178
- //#region ../admin-x-framework/dist/utils/api/fetch-api.js
1179
- o();
1180
- var rt = (e) => {
1181
- let t = new Headers(), n = e.getAllResponseHeaders()?.split("\r\n") || [];
1182
- for (let e of n) {
1183
- let n = e.indexOf(":");
1184
- if (n === -1) continue;
1185
- let r = e.slice(0, n), i = e.slice(n + 1).trim();
1186
- t.append(r, i);
1187
- }
1188
- return t;
1189
- }, it = (e) => new Response(e.response, {
1190
- status: e.status,
1191
- statusText: e.statusText,
1192
- headers: rt(e)
1193
- }), at = /\/ghost\/api\//, ot = /\/ghost\/api\/admin\/session([/?#]|$)/, st = /^#\/(?:reset|setup|signin|signup)(?:[/?]|$)/, ct = !1, lt = (e) => window.location.pathname === e && (!window.location.hash || window.location.hash === "#/" || st.test(window.location.hash)), ut = (e) => {
1194
- let t = e.toString();
1195
- return at.test(t) && !ot.test(t);
1196
- }, dt = () => {
1197
- let { adminRoot: e } = et();
1198
- !ct && !lt(e) && (ct = !0, window.location.replace(e));
1199
- }, ft = (e, t, { method: n, headers: r, credentials: i, body: a, signal: o }) => new Promise((s, c) => {
1200
- let l = () => {
1201
- c(new DOMException("Aborted", "AbortError"));
1202
- };
1203
- if (o.aborted) {
1204
- l();
1205
- return;
1206
- }
1207
- let u = new XMLHttpRequest();
1208
- switch (u.open(n, t.toString(), !0), i) {
1209
- case "omit": throw Error("\"omit\" credentials cannot be represented with legacy XMLHttpRequest. Consider \"same-origin\".");
1210
- case "same-origin":
1211
- u.withCredentials = !1;
1212
- break;
1213
- case "include":
1214
- u.withCredentials = !0;
1215
- break;
1216
- default: throw Error(i);
1217
- }
1218
- u.responseType = "arraybuffer";
1219
- for (let [e, t] of Object.entries(r)) u.setRequestHeader(e, t);
1220
- u.upload.onprogress = (t) => {
1221
- t.lengthComputable && e(t.loaded / t.total * 100);
1222
- }, u.onload = () => {
1223
- s(it(u));
1224
- }, u.onerror = () => {
1225
- c(/* @__PURE__ */ TypeError("Network request failed"));
1226
- }, u.onabort = l;
1227
- let d = () => u.abort();
1228
- o.addEventListener("abort", d), u.onloadend = () => {
1229
- o.removeEventListener("abort", d);
1230
- }, u.send(a);
1231
- }), pt = () => {
1232
- let { ghostVersion: e, sentryDSN: t } = T();
1233
- return s(async (n, { method: r = "GET", headers: i = {}, body: a, credentials: o = "include", timeout: s, retry: c = !0, responseType: l, sessionExpiryRedirect: u = !0, onUploadProgress: d } = {}) => {
1234
- let f = new AbortController(), p = {
1235
- method: r,
1236
- headers: {
1237
- "app-pragma": "no-cache",
1238
- ...e ? { "x-ghost-version": e } : {},
1239
- ...typeof a == "string" ? { "content-type": "application/json" } : {},
1240
- ...i
1241
- },
1242
- credentials: o,
1243
- mode: "cors",
1244
- body: a,
1245
- signal: f.signal
1246
- }, m = 0, h = 0, g = Date.now(), _ = [500, 1e3], v = [
1247
- J,
1248
- Y,
1249
- TypeError
1250
- ], y = (e, t) => {
1251
- let r = {
1252
- errorName: e?.name,
1253
- attempts: m,
1254
- totalSeconds: h / 1e3,
1255
- endpoint: n.toString()
1256
- };
1257
- return n.toString().includes("/ghost/api/") && (r.server = t?.headers.get("server")), r;
1258
- }, b = d ? ft.bind(null, d) : fetch, x = s ? setTimeout(() => f.abort(), s) : void 0;
1259
- try {
1260
- for (; m === 0 || c;) try {
1261
- return await nt(await b(n, p), { responseType: l });
1262
- } catch (e) {
1263
- if (h = Date.now() - g, c && v.some((t) => e instanceof t) && h <= 15e3) {
1264
- await new Promise((e) => {
1265
- setTimeout(e, _[m] || _[_.length - 1]);
1266
- }), m += 1;
1267
- continue;
1268
- }
1269
- if (m !== 0 && t && te("Request failed after multiple attempts", { extra: y() }), e && typeof e == "object" && "name" in e && e.name === "AbortError") throw new he();
1270
- if (e instanceof X && ut(n)) throw u && dt(), new ve(e.response, e.data, { cause: e });
1271
- let r = e;
1272
- throw e instanceof K || (r = new J({ cause: e })), r;
1273
- }
1274
- } finally {
1275
- clearTimeout(x);
1276
- }
1277
- }, [e, t]);
1278
- }, { apiRoot: mt } = et(), $ = (e, t = {}) => {
1279
- let n = new URL(`${mt}${e}`, window.location.origin);
1280
- return n.search = new URLSearchParams(t).toString(), n.toString();
1281
- };
1282
- //#endregion
1283
- //#region ../admin-x-framework/dist/api/current-user.js
1284
- o();
1285
- var ht = "UsersResponseType", gt = $("/users/me/", { include: "roles" }), _t = [ht, gt], vt = ({ requestOptions: e } = {}) => {
1286
- let t = pt(), n = $e(), r = W({
1287
- queryKey: _t,
1288
- queryFn: () => t(gt, e),
1289
- select: (e) => e.users[0]
1290
- });
1291
- return c(() => {
1292
- r.error && n(r.error);
1293
- }, [n, r.error]), r;
1294
- }, yt = (e, t) => {
1295
- let { data: n } = vt(t);
1296
- if (!e || e.length === 0) return !0;
1297
- let r = n?.roles.map((e) => e.name);
1298
- return r ? e.some((e) => r.includes(e)) : !1;
1299
- };
1300
- //#endregion
1301
- //#region ../admin-x-framework/dist/utils/api/hooks.js
1302
- o();
1303
- var bt = (e) => ({ searchParams: n, requestOptions: r, ...i } = {}) => {
1304
- let a = $(e.path, n || e.defaultSearchParams), o = pt(), s = $e(), l = yt(e.permissions, { requestOptions: r }), u = W({
1305
- ...i,
1306
- enabled: l && (i.enabled ?? !0),
1307
- queryKey: [e.dataType, a],
1308
- queryFn: async () => {
1309
- if (e.parseResponse) {
1310
- let t = await o(a, {
1311
- headers: e.headers,
1312
- ...r
1313
- });
1314
- return e.parseResponse(t);
1315
- }
1316
- return o(a, {
1317
- headers: e.headers,
1318
- ...r
1319
- });
1320
- }
1321
- }), d = t(() => u.data && e.returnData ? e.returnData(u.data) : u.data, [u.data]);
1322
- return c(() => {
1323
- u.error && i.defaultErrorHandler !== !1 && s(u.error);
1324
- }, [
1325
- s,
1326
- u.error,
1327
- i.defaultErrorHandler
1328
- ]), {
1329
- ...u,
1330
- data: d
1331
- };
1332
- }, xt = (e) => ({ searchParams: n, requestOptions: r, getNextPageParams: i, ...a } = {}) => {
1333
- let o = pt(), s = $e(), l = yt(e.permissions, { requestOptions: r }), u = i || e.defaultNextPageParams || (() => ({})), d = pe({
1334
- ...a,
1335
- enabled: l && (a.enabled ?? !0),
1336
- queryKey: [e.dataType, $(e.path, n || e.defaultSearchParams)],
1337
- queryFn: async ({ pageParam: t }) => {
1338
- let i = $(e.path, t || n || e.defaultSearchParams);
1339
- if (e.parseResponse) {
1340
- let t = await o(i, {
1341
- headers: e.headers,
1342
- ...r
1343
- });
1344
- return e.parseResponse(t);
1345
- }
1346
- return o(i, {
1347
- headers: e.headers,
1348
- ...r
1349
- });
1350
- },
1351
- initialPageParam: void 0,
1352
- getNextPageParam: (t) => u(t, n || e.defaultSearchParams || {})
1353
- }), f = t(() => d.data && e.returnData(d.data), [d.data]);
1354
- return c(() => {
1355
- d.error && a.defaultErrorHandler !== !1 && s(d.error);
1356
- }, [
1357
- s,
1358
- d.error,
1359
- a.defaultErrorHandler
1360
- ]), {
1361
- ...d,
1362
- data: f
1363
- };
1364
- }, St = ({ fetchApi: e, path: t, payload: n, searchParams: r, options: i }) => {
1365
- let { defaultSearchParams: a, body: o, requestOptions: s, ...c } = i, l = $(t, r || a), u = n && o?.(n), d;
1366
- return u instanceof FormData ? d = u : u && (d = JSON.stringify(u)), e(l, {
1367
- body: d,
1368
- ...c,
1369
- ...n === void 0 ? {} : s?.(n)
1370
- });
1371
- }, Ct = ({ path: e, searchParams: t, defaultSearchParams: n, updateQueries: r, invalidateQueries: i, ...a }) => () => {
1372
- let o = pt(), c = j(), { onUpdate: l, onInvalidate: u, onDelete: d } = T();
1373
- return G({
1374
- mutationFn: (r) => St({
1375
- fetchApi: o,
1376
- path: e(r),
1377
- payload: r,
1378
- searchParams: t?.(r) || n,
1379
- options: a
1380
- }),
1381
- onSuccess: s((e, t) => {
1382
- if (i && "dataType" in i) {
1383
- let e = Array.isArray(i.dataType) ? i.dataType : [i.dataType];
1384
- for (let t of e) c.invalidateQueries({ queryKey: [t] }), u(t);
1385
- } else i && c.invalidateQueries(i.filters, i.options);
1386
- if (r) {
1387
- if (c.setQueriesData({ queryKey: [r.dataType] }, (n) => r.update(e, n, t)), r.emberUpdateType === "createOrUpdate") l(r.dataType, e);
1388
- else if (r.emberUpdateType === "delete") {
1389
- if (typeof t != "string") throw Error("Expected delete mutation to have a string (ID) payload. Either change the payload or update the createMutation hook");
1390
- d(r.dataType, t);
1391
- }
1392
- }
1393
- }, [
1394
- u,
1395
- l,
1396
- d,
1397
- c
1398
- ])
1399
- });
1400
- }, wt = (e, t) => (n, r) => {
1401
- if (!r) return r;
1402
- let i = (t || ((t) => t[e].reduce((e, t) => ({
1403
- ...e,
1404
- [t.id]: t
1405
- }), {})))(n);
1406
- if (typeof r == "object" && "pages" in r) {
1407
- let { pages: t } = r;
1408
- return {
1409
- ...r,
1410
- pages: t.map((t) => ({
1411
- ...t,
1412
- [e]: t[e].map((e) => i[e.id] || e)
1413
- }))
1414
- };
1415
- }
1416
- return {
1417
- ...r,
1418
- [e]: r[e].map((e) => i[e.id] || e)
1419
- };
1420
- }, Tt = (e, t) => (n, r, i) => {
1421
- if (!r) return r;
1422
- let a = t?.(i) || [i];
1423
- if (typeof r == "object" && "pages" in r) {
1424
- let { pages: t } = r;
1425
- return {
1426
- ...r,
1427
- pages: t.map((t) => ({
1428
- ...t,
1429
- [e]: t[e].filter((e) => !a.includes(e.id))
1430
- }))
1431
- };
1432
- }
1433
- return {
1434
- ...r,
1435
- [e]: r[e].filter((e) => !a.includes(e.id))
1436
- };
1437
- }, Et = ht, Dt = xt({
1438
- dataType: Et,
1439
- path: "/users/",
1440
- defaultSearchParams: {
1441
- limit: "100",
1442
- include: "roles"
1443
- },
1444
- defaultNextPageParams: (e, t) => {
1445
- if (e.meta?.pagination.next) return {
1446
- ...t,
1447
- page: e.meta.pagination.next.toString()
1448
- };
1449
- },
1450
- returnData: (e) => {
1451
- let { pages: t } = e, n = t.flatMap((e) => e.users), r = t[t.length - 1].meta;
1452
- return {
1453
- users: n,
1454
- meta: r,
1455
- isEnd: r ? r.pagination.pages === r.pagination.page : !0
1456
- };
1457
- }
1458
- }), Ot = Ct({
1459
- method: "PUT",
1460
- path: (e) => `/users/${e.id}/`,
1461
- body: (e) => ({ users: [e] }),
1462
- searchParams: () => ({ include: "roles" }),
1463
- updateQueries: {
1464
- dataType: Et,
1465
- emberUpdateType: "createOrUpdate",
1466
- update: wt("users")
1467
- }
1468
- });
1469
- Ct({
1470
- method: "DELETE",
1471
- path: (e) => `/users/${e}/`,
1472
- updateQueries: {
1473
- dataType: Et,
1474
- emberUpdateType: "delete",
1475
- update: Tt("users")
1476
- }
1477
- }), Ct({
1478
- method: "PUT",
1479
- path: () => "/users/password/",
1480
- body: ({ newPassword: e, confirmNewPassword: t, userId: n, oldPassword: r }) => ({ password: [{
1481
- user_id: n,
1482
- oldPassword: r || "",
1483
- newPassword: e,
1484
- ne2Password: t
1485
- }] })
1486
- }), Ct({
1487
- method: "PUT",
1488
- path: () => "/users/owner/",
1489
- body: (e) => ({ owner: [{ id: e }] }),
1490
- updateQueries: {
1491
- dataType: Et,
1492
- emberUpdateType: "createOrUpdate",
1493
- update: wt("users")
1494
- }
1495
- });
1496
- //#endregion
1497
- 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 };
1498
-
1499
- //# sourceMappingURL=users-inweyKL5.js.map