ghost 6.11.0 → 6.12.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 (435) hide show
  1. package/components/tryghost-i18n-6.12.0.tgz +0 -0
  2. package/core/boot.js +4 -2
  3. package/core/built/admin/assets/{_baseAssignValue-BX8EallQ.js → _baseAssignValue-hsL6ItjC.js} +1 -1
  4. package/core/built/admin/assets/{a-large-small-CKZJgscl.js → a-large-small-BPPu_Iy7.js} +1 -1
  5. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  6. package/core/built/admin/assets/admin-x-settings/{code-editor-view-n8DFeXbv.mjs → code-editor-view-Bq6l5arq.mjs} +2 -2
  7. package/core/built/admin/assets/admin-x-settings/{index-v6qQgUXt.mjs → index-CKaxer_o.mjs} +2 -2
  8. package/core/built/admin/assets/admin-x-settings/{index-CXL12uvO.mjs → index-CtYEAgeN.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-D4ye6uvI.mjs → index-D4NstoNQ.mjs} +11 -6
  10. package/core/built/admin/assets/admin-x-settings/{modals-CdsPaTfy.mjs → modals-BzljHVa7.mjs} +2 -2
  11. package/core/built/admin/assets/{at-sign-CqQzllfI.js → at-sign-CYnGzOFc.js} +1 -1
  12. package/core/built/admin/assets/{audience-select-DQD7iDOb.js → audience-select-DYoxiiwy.js} +1 -1
  13. package/core/built/admin/assets/{avatar-flipboard-uq7ptTxT.js → avatar-flipboard-C9-npfmZ.js} +1 -1
  14. package/core/built/admin/assets/{bluesky-sharing-qyIGv6Ny.js → bluesky-sharing-BGcmGcee.js} +1 -1
  15. package/core/built/admin/assets/{chart-DGA1MaFs.js → chart-CqJxisVP.js} +1 -1
  16. package/core/built/admin/assets/{chunk.524.1289543297329587cf8a.js → chunk.524.74a9629dd2ba0d21bbef.js} +7 -7
  17. package/core/built/admin/assets/{chunk.582.344ea0d0a16d671345cd.js → chunk.582.3846471396b3a7c46e66.js} +8 -8
  18. package/core/built/admin/assets/{code-editor-view-Bz6kXDiv.js → code-editor-view-C8l3gNnO.js} +1 -1
  19. package/core/built/admin/assets/{comments-C-lkEDkz.js → comments-CpHDoxov.js} +1 -1
  20. package/core/built/admin/assets/{copy-BFuV16bY.js → copy-DWiB-781.js} +1 -1
  21. package/core/built/admin/assets/{data-list-Bw1CQEZ9.js → data-list-yngXNZDF.js} +1 -1
  22. package/core/built/admin/assets/{deleted-feed-item-CmNbSYiO.js → deleted-feed-item-C0FcyLMN.js} +1 -1
  23. package/core/built/admin/assets/{edit-profile-DlIPB2km.js → edit-profile-BjtDkDAq.js} +1 -1
  24. package/core/built/admin/assets/{empty-indicator-DBrIZcFq.js → empty-indicator-BXWniwsl.js} +1 -1
  25. package/core/built/admin/assets/{en-BBc7b85q.js → en-B8qaJx-T.js} +1 -1
  26. package/core/built/admin/assets/{feed-B3XQzKZl.js → feed-DsCVb1SA.js} +1 -1
  27. package/core/built/admin/assets/{filters-DUFXZZnu.js → filters-jAXQSPq6.js} +1 -1
  28. package/core/built/admin/assets/{gh-chart-BV97-O7c.js → gh-chart-DwTCK8z_.js} +1 -1
  29. package/core/built/admin/assets/{ghost-9aa1e7c5992f122dba6932af78bf8e56.js → ghost-6367d022df9db9dacbcb9bfa30232ec7.js} +2 -2
  30. package/core/built/admin/assets/{growth-njR0GqK2.js → growth-DshcRqda.js} +1 -1
  31. package/core/built/admin/assets/{hash-CdH0ikFp.js → hash-p9dv0yuc.js} +1 -1
  32. package/core/built/admin/assets/{inbox-Bd0uf1Ez.js → inbox-CRoP9sy5.js} +1 -1
  33. package/core/built/admin/assets/{index-Kji6JKl7.js → index-6syrC9X1.js} +1 -1
  34. package/core/built/admin/assets/{index-C7M19LpB.js → index-BKtz3UH0.js} +1 -1
  35. package/core/built/admin/assets/{index-DWk7hKRR.js → index-BwY94Fb4.js} +1 -1
  36. package/core/built/admin/assets/{index-BFhECYgc.js → index-C3DF6aFe.js} +1 -1
  37. package/core/built/admin/assets/index-C6NCNp1B.js +1 -0
  38. package/core/built/admin/assets/{index-BYawr8p9.js → index-CJU9a2PB.js} +3 -3
  39. package/core/built/admin/assets/{index-CIE2_z5J.js → index-CUWE7aD1.js} +1 -1
  40. package/core/built/admin/assets/{index-DgRIbSpg.js → index-CuQ_II0e.js} +1 -1
  41. package/core/built/admin/assets/{index-Birw80cQ.js → index-DG8f-HuU.js} +1 -1
  42. package/core/built/admin/assets/{index-DziHC2du.js → index-DItZTRQ4.js} +1 -1
  43. package/core/built/admin/assets/{index-DG53N3Xt.js → index-eLx96SEn.js} +1 -1
  44. package/core/built/admin/assets/{index-DCw6JaEl.js → index-j2_Q-_8H.js} +1 -1
  45. package/core/built/admin/assets/{index-BZ21H0xH.js → index-qWpHJAMP.js} +1 -1
  46. package/core/built/admin/assets/{index-DXCu9e7c.js → index-sy6xRtoO.js} +1 -1
  47. package/core/built/admin/assets/{koenig-lexical-BDJVCHtm.js → koenig-lexical-DgAlBHHS.js} +1 -1
  48. package/core/built/admin/assets/{kpi-card-cv8roErt.js → kpi-card-CHZSLw4p.js} +1 -1
  49. package/core/built/admin/assets/{kpis-Dt4OFY3L.js → kpis-DzbAHfKK.js} +1 -1
  50. package/core/built/admin/assets/{links-08beB3Ij.js → links-BQHRbn46.js} +1 -1
  51. package/core/built/admin/assets/{lucide-react-DKlmxVQI.js → lucide-react-B7UnD_Dp.js} +1 -1
  52. package/core/built/admin/assets/{main-layout-Cl09wG7F.js → main-layout-9nmU5WlG.js} +1 -1
  53. package/core/built/admin/assets/{message-square-text-CaMVBVPr.js → message-square-text-CS3iRuPc.js} +1 -1
  54. package/core/built/admin/assets/{minus-2XwCoFJV.js → minus-emzwh6hq.js} +1 -1
  55. package/core/built/admin/assets/{modals-CIgzYQgv.js → modals-CumFuZ2d.js} +1 -1
  56. package/core/built/admin/assets/{moderation-FjlsSym6.js → moderation-DyfFc9m4.js} +1 -1
  57. package/core/built/admin/assets/{newsletter-BNOwZNlE.js → newsletter-BWul5IFc.js} +1 -1
  58. package/core/built/admin/assets/{newsletters-DUusEYSg.js → newsletters-N6bwI1OF.js} +1 -1
  59. package/core/built/admin/assets/{note-BpYwIDK6.js → note-CiBzkHzz.js} +1 -1
  60. package/core/built/admin/assets/{overview-Y5QYPClr.js → overview-D9gRvn7X.js} +1 -1
  61. package/core/built/admin/assets/{pagemenu-BMXHDXYy.js → pagemenu-aHubMPwB.js} +1 -1
  62. package/core/built/admin/assets/{post-analytics-UerFnJse.js → post-analytics-Bm9xH8nA.js} +1 -1
  63. package/core/built/admin/assets/{post-analytics-context-geHk7rOj.js → post-analytics-context-C7oW3aBz.js} +1 -1
  64. package/core/built/admin/assets/{post-analytics-header-DXfc4KeX.js → post-analytics-header-BjGFgN6A.js} +1 -1
  65. package/core/built/admin/assets/{post-share-modal-Dql4fYjR.js → post-share-modal-Su923uIc.js} +1 -1
  66. package/core/built/admin/assets/{posts-Bsvw11Zo.js → posts-BwP7BNcB.js} +1 -1
  67. package/core/built/admin/assets/{referrers-B8xJpCcR.js → referrers-n_ln9DqI.js} +1 -1
  68. package/core/built/admin/assets/{repeat-COP-3g8d.js → repeat-ms5ocvE0.js} +1 -1
  69. package/core/built/admin/assets/{reply-JE8tmvOn.js → reply-BvO85IDn.js} +1 -1
  70. package/core/built/admin/assets/{select-BhvNY3I-.js → select-B4QhMW5f.js} +1 -1
  71. package/core/built/admin/assets/{settings-BJwVfuWG.js → settings-D5rGcWJ7.js} +4 -4
  72. package/core/built/admin/assets/{settings-C6ZUZQe4.js → settings-QtZ6a2TL.js} +1 -1
  73. package/core/built/admin/assets/{sort-button-iOtR-vQ1.js → sort-button-84sYUZMN.js} +1 -1
  74. package/core/built/admin/assets/{source-icon-C2iFWMlV.js → source-icon-Bzw-AU8p.js} +1 -1
  75. package/core/built/admin/assets/{sprout-BW9HFVU8.js → sprout-C2R5CbXV.js} +1 -1
  76. package/core/built/admin/assets/{square-BCNGSZhW.js → square-DT1uWkxs.js} +1 -1
  77. package/core/built/admin/assets/stats/{audience-select-DNAWmT7R.mjs → audience-select-fTCiZ9MT.mjs} +3 -3
  78. package/core/built/admin/assets/stats/{index-DbGvSTMe.mjs → index-BKgioyC7.mjs} +5 -5
  79. package/core/built/admin/assets/stats/{index-s19ZmxbX.mjs → index-CR2t5Xd-.mjs} +5 -5
  80. package/core/built/admin/assets/stats/index-DEkYwR7C.mjs +739 -0
  81. package/core/built/admin/assets/stats/{index-BS3KMSy9.mjs → index-Djwey97a.mjs} +5 -5
  82. package/core/built/admin/assets/stats/{index-MOQSSYwT.mjs → index-FiU_XgEe.mjs} +6 -6
  83. package/core/built/admin/assets/stats/{sort-button-D76rcldr.mjs → sort-button-Bvi1wfa7.mjs} +3 -3
  84. package/core/built/admin/assets/stats/{stats-CJ7fhUyT.mjs → stats-Bbm6yWZq.mjs} +2 -2
  85. package/core/built/admin/assets/stats/stats.js +1 -1
  86. package/core/built/admin/assets/stats/{tabs-CkbxYgOE.mjs → tabs-BKwH5k-q.mjs} +3 -3
  87. package/core/built/admin/assets/stats/{url-helpers-DICtqCrE.mjs → url-helpers-DmHnUIGc.mjs} +9 -9
  88. package/core/built/admin/assets/stats/{use-growth-stats-DzO7zEy4.mjs → use-growth-stats-BVj3j1hb.mjs} +3 -3
  89. package/core/built/admin/assets/{stats-r0Bphuvi.js → stats-B1mhlQSp.js} +1 -1
  90. package/core/built/admin/assets/{stats-view-DzZxrBDz.js → stats-view-C6MTCwRW.js} +1 -1
  91. package/core/built/admin/assets/{step-1-CUoUOyMm.js → step-1-CzQmZJ93.js} +1 -1
  92. package/core/built/admin/assets/{step-2-CpAkPD8D.js → step-2-DXGDWSQo.js} +1 -1
  93. package/core/built/admin/assets/{step-3-Ci6oJDmK.js → step-3-CYuxXKac.js} +1 -1
  94. package/core/built/admin/assets/{table-DeBuf80X.js → table-mjAkKNdb.js} +1 -1
  95. package/core/built/admin/assets/{tabs-C2sFfNcp.js → tabs-BwQ-i6MY.js} +1 -1
  96. package/core/built/admin/assets/{tags-Bl6G5rvf.js → tags-BkUqCuvX.js} +1 -1
  97. package/core/built/admin/assets/{tags-BL_N4nn2.js → tags-DXDZbfxp.js} +1 -1
  98. package/core/built/admin/assets/{toggle-group-B2X-8giI.js → toggle-group-CqDO3Kkx.js} +1 -1
  99. package/core/built/admin/assets/{topic-filter-DeqMID_s.js → topic-filter-DnuJJBAE.js} +1 -1
  100. package/core/built/admin/assets/{trash-BglGemAb.js → trash-CZ3EXwTL.js} +1 -1
  101. package/core/built/admin/assets/{url-helpers-84icqAuE.js → url-helpers-BE3VXr__.js} +1 -1
  102. package/core/built/admin/assets/{use-growth-stats-DF-7tL8g.js → use-growth-stats-CiuWWM6O.js} +1 -1
  103. package/core/built/admin/assets/{use-infinite-virtual-scroll-BHH7oscK.js → use-infinite-virtual-scroll-BjATkxBj.js} +1 -1
  104. package/core/built/admin/assets/{use-simple-pagination-BsvYfixw.js → use-simple-pagination-C9cb7dDz.js} +1 -1
  105. package/core/built/admin/assets/{user-round-check-BjHbfXKY.js → user-round-check-D3ihrrKL.js} +1 -1
  106. package/core/built/admin/assets/{wallet-cards-KaTkgqvi.js → wallet-cards-Do7nPf3f.js} +1 -1
  107. package/core/built/admin/assets/{web-CUWbpFil.js → web-BEwI2Gfy.js} +1 -1
  108. package/core/built/admin/index-forward.html +4 -4
  109. package/core/built/admin/index.html +3 -3
  110. package/core/frontend/web/middleware/index.js +1 -0
  111. package/core/frontend/web/middleware/serve-indexnow-key.js +66 -0
  112. package/core/frontend/web/site.js +3 -0
  113. package/core/server/api/endpoints/authentication.js +1 -1
  114. package/core/server/api/endpoints/pages.js +1 -1
  115. package/core/server/api/endpoints/posts-public.js +1 -1
  116. package/core/server/api/endpoints/posts.js +1 -1
  117. package/core/server/api/endpoints/search-index-public.js +1 -1
  118. package/core/server/api/endpoints/search-index.js +1 -1
  119. package/core/server/api/endpoints/users.js +1 -1
  120. package/core/server/api/endpoints/utils/serializers/input/settings.js +2 -1
  121. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
  122. package/core/server/api/endpoints/utils/validators/input/settings.js +1 -1
  123. package/core/server/data/exporter/table-lists.js +2 -1
  124. package/core/server/data/migrations/versions/6.12/2026-01-08-11-48-16-add-indexnow-api-key-setting.js +9 -0
  125. package/core/server/data/schema/default-settings/default-settings.json +6 -0
  126. package/core/server/lib/lexical.js +1 -1
  127. package/core/server/models/settings.js +2 -1
  128. package/core/server/services/activitypub/{ActivityPubServiceWrapper.js → activity-pub-service-wrapper.js} +1 -1
  129. package/core/server/services/activitypub/{ActivityPubService.ts → activity-pub-service.ts} +1 -1
  130. package/core/server/services/activitypub/index.js +1 -1
  131. package/core/server/services/adapter-manager/index.js +1 -1
  132. package/core/server/services/announcement-bar-service/{AnnouncementBarSettings.js → announcement-bar-settings.js} +1 -1
  133. package/core/server/services/announcement-bar-service/index.js +1 -1
  134. package/core/server/services/audience-feedback/{AudienceFeedbackController.js → audience-feedback-controller.js} +3 -3
  135. package/core/server/services/audience-feedback/index.js +4 -4
  136. package/core/server/services/auth/session/express-session.js +1 -1
  137. package/core/server/services/comments/{CommentsController.js → comments-controller.js} +2 -2
  138. package/core/server/services/comments/{CommentsServiceEmails.js → comments-service-emails.js} +1 -1
  139. package/core/server/services/comments/{CommentsService.js → comments-service.js} +1 -1
  140. package/core/server/services/comments/index.js +3 -3
  141. package/core/server/services/custom-redirects/index.js +2 -2
  142. package/core/server/services/donations/{DonationBookshelfRepository.ts → donation-bookshelf-repository.ts} +1 -1
  143. package/core/server/services/donations/{DonationServiceWrapper.js → donation-service-wrapper.js} +1 -1
  144. package/core/server/services/donations/index.js +1 -1
  145. package/core/server/services/email-address/{EmailAddressServiceWrapper.js → email-address-service-wrapper.js} +2 -2
  146. package/core/server/services/email-address/{EmailAddressService.js → email-address-service.js} +4 -4
  147. package/core/server/services/email-address/{EmailAddressService.ts → email-address-service.ts} +1 -1
  148. package/core/server/services/email-address/index.js +1 -1
  149. package/core/server/services/email-analytics/{EmailAnalyticsProviderMailgun.js → email-analytics-provider-mailgun.js} +1 -1
  150. package/core/server/services/email-analytics/{EmailAnalyticsServiceWrapper.js → email-analytics-service-wrapper.js} +5 -5
  151. package/core/server/services/email-analytics/{EmailAnalyticsService.js → email-analytics-service.js} +2 -2
  152. package/core/server/services/email-analytics/index.js +1 -1
  153. package/core/server/services/email-analytics/jobs/fetch-latest/index.js +1 -1
  154. package/core/server/services/email-service/{BatchSendingService.js → batch-sending-service.js} +8 -8
  155. package/core/server/services/email-service/{EmailEventProcessor.js → email-event-processor.js} +6 -6
  156. package/core/server/services/email-service/{EmailEventStorage.js → email-event-storage.js} +1 -1
  157. package/core/server/services/email-service/{EmailRenderer.js → email-renderer.js} +1 -1
  158. package/core/server/services/email-service/{EmailServiceWrapper.js → email-service-wrapper.js} +9 -9
  159. package/core/server/services/email-service/{EmailService.js → email-service.js} +13 -13
  160. package/core/server/services/email-service/index.js +1 -1
  161. package/core/server/services/email-service/{MailgunEmailProvider.js → mailgun-email-provider.js} +1 -1
  162. package/core/server/services/email-service/{SendingService.js → sending-service.js} +6 -6
  163. package/core/server/services/email-suppression-list/{InMemoryEmailSuppressionList.js → in-memory-email-suppression-list.js} +1 -1
  164. package/core/server/services/email-suppression-list/{MailgunEmailSuppressionList.js → mailgun-email-suppression-list.js} +3 -3
  165. package/core/server/services/email-suppression-list/service.js +2 -2
  166. package/core/server/services/explore/index.js +2 -2
  167. package/core/server/services/explore-ping/index.js +2 -2
  168. package/core/server/services/frontend-data-service/index.js +1 -1
  169. package/core/server/services/identity-tokens/{IdentityTokenServiceWrapper.js → identity-token-service-wrapper.js} +1 -1
  170. package/core/server/services/identity-tokens/index.js +1 -1
  171. package/core/server/services/indexnow.js +212 -0
  172. package/core/server/services/invites/index.js +1 -1
  173. package/core/server/services/link-redirection/index.js +2 -2
  174. package/core/server/services/link-redirection/{LinkRedirectRepository.js → link-redirect-repository.js} +1 -1
  175. package/core/server/services/link-redirection/{LinkRedirectsService.js → link-redirects-service.js} +2 -2
  176. package/core/server/services/link-redirection/{RedirectEvent.js → redirect-event.js} +1 -1
  177. package/core/server/services/link-tracking/index.js +3 -3
  178. package/core/server/services/link-tracking/{LinkClickRepository.js → link-click-repository.js} +1 -1
  179. package/core/server/services/link-tracking/{LinkClickTrackingService.js → link-click-tracking-service.js} +4 -4
  180. package/core/server/services/link-tracking/{PostLinkRepository.js → post-link-repository.js} +7 -7
  181. package/core/server/services/mail/{GhostMailer.js → ghost-mailer.js} +1 -1
  182. package/core/server/services/mail/index.js +2 -2
  183. package/core/server/services/media-inliner/service.js +1 -1
  184. package/core/server/services/member-attribution/README.md +6 -6
  185. package/core/server/services/member-attribution/{AttributionBuilder.js → attribution-builder.js} +4 -4
  186. package/core/server/services/member-attribution/index.js +5 -5
  187. package/core/server/services/member-attribution/{MemberAttributionService.js → member-attribution-service.js} +9 -9
  188. package/core/server/services/member-attribution/{ReferrerTranslator.js → referrer-translator.js} +1 -1
  189. package/core/server/services/member-attribution/{UrlTranslator.js → url-translator.js} +1 -1
  190. package/core/server/services/member-welcome-emails/constants.js +22 -1
  191. package/core/server/services/member-welcome-emails/service.js +23 -5
  192. package/core/server/services/members/api.js +1 -1
  193. package/core/server/services/members/importer/index.js +3 -3
  194. package/core/server/services/members/importer/{MembersCSVImporter.js → members-csv-importer.js} +2 -2
  195. package/core/server/services/members/members-api/members-api.js +14 -14
  196. package/core/server/services/members/members-api/repositories/{MemberRepository.js → member-repository.js} +17 -8
  197. package/core/server/services/members/members-api/services/{MemberBREADService.js → member-bread-service.js} +1 -1
  198. package/core/server/services/members/members-api/services/{PaymentsService.js → payments-service.js} +12 -12
  199. package/core/server/services/members/service.js +4 -4
  200. package/core/server/services/members-events/index.js +3 -3
  201. package/core/server/services/members-events/{LastSeenAtUpdater.js → last-seen-at-updater.js} +2 -2
  202. package/core/server/services/mentions/{BookshelfMentionRepository.js → bookshelf-mention-repository.js} +9 -9
  203. package/core/server/services/mentions/{InMemoryMentionRepository.js → in-memory-mention-repository.js} +4 -4
  204. package/core/server/services/mentions/{MentionController.js → mention-controller.js} +5 -5
  205. package/core/server/services/mentions/{MentionCreatedEvent.js → mention-created-event.js} +1 -1
  206. package/core/server/services/mentions/{Mention.js → mention.js} +1 -1
  207. package/core/server/services/mentions/{MentionsAPI.js → mentions-api.js} +1 -1
  208. package/core/server/services/mentions/{ResourceService.js → resource-service.js} +2 -2
  209. package/core/server/services/mentions/{RoutingService.js → routing-service.js} +2 -2
  210. package/core/server/services/mentions/service.js +11 -11
  211. package/core/server/services/mentions/{WebmentionMetadata.js → webmention-metadata.js} +1 -1
  212. package/core/server/services/mentions-email-report/job.js +1 -1
  213. package/core/server/services/mentions-email-report/{MentionEmailReportJob.js → mention-email-report-job.js} +1 -1
  214. package/core/server/services/mentions-email-report/service.js +2 -2
  215. package/core/server/services/milestones/{BookshelfMilestoneRepository.js → bookshelf-milestone-repository.js} +2 -2
  216. package/core/server/services/milestones/{InMemoryMilestoneRepository.js → in-memory-milestone-repository.js} +2 -2
  217. package/core/server/services/milestones/{Milestone.js → milestone.js} +1 -1
  218. package/core/server/services/milestones/{MilestonesService.js → milestones-service.js} +1 -1
  219. package/core/server/services/milestones/service.js +4 -4
  220. package/core/server/services/newsletters/index.js +2 -2
  221. package/core/server/services/newsletters/{NewslettersService.js → newsletters-service.js} +1 -1
  222. package/core/server/services/notifications/index.js +1 -1
  223. package/core/server/services/oembed/service.js +3 -3
  224. package/core/server/services/offers/application/{OfferMapper.js → offer-mapper.js} +1 -1
  225. package/core/server/services/offers/application/{OffersAPI.js → offers-api.js} +9 -9
  226. package/core/server/services/offers/application/{UniqueChecker.js → unique-checker.js} +2 -2
  227. package/core/server/services/offers/domain/events/{OfferCodeChangeEvent.js → offer-code-change-event.js} +1 -1
  228. package/core/server/services/offers/domain/events/{OfferCreatedEvent.js → offer-created-event.js} +1 -1
  229. package/core/server/services/offers/domain/models/{OfferAmount.js → offer-amount.js} +1 -1
  230. package/core/server/services/offers/domain/models/{OfferCadence.js → offer-cadence.js} +1 -1
  231. package/core/server/services/offers/domain/models/{OfferCode.js → offer-code.js} +1 -1
  232. package/core/server/services/offers/domain/models/{OfferCreatedAt.js → offer-created-at.js} +1 -1
  233. package/core/server/services/offers/domain/models/{OfferCurrency.js → offer-currency.js} +1 -1
  234. package/core/server/services/offers/domain/models/{OfferDescription.js → offer-description.js} +1 -1
  235. package/core/server/services/offers/domain/models/{OfferDuration.js → offer-duration.js} +1 -1
  236. package/core/server/services/offers/domain/models/{OfferName.js → offer-name.js} +1 -1
  237. package/core/server/services/offers/domain/models/{OfferStatus.js → offer-status.js} +1 -1
  238. package/core/server/services/offers/domain/models/{OfferTitle.js → offer-title.js} +1 -1
  239. package/core/server/services/offers/domain/models/{OfferType.js → offer-type.js} +1 -1
  240. package/core/server/services/offers/domain/models/{Offer.js → offer.js} +14 -14
  241. package/core/server/services/offers/domain/models/{StripeCoupon.js → stripe-coupon.js} +1 -1
  242. package/core/server/services/offers/{OfferBookshelfRepository.js → offer-bookshelf-repository.js} +6 -6
  243. package/core/server/services/offers/{OffersModule.js → offers-module.js} +4 -4
  244. package/core/server/services/offers/service.js +3 -3
  245. package/core/server/services/outbox/index.js +2 -2
  246. package/core/server/services/outbox/jobs/outbox-job.js +2 -2
  247. package/core/server/services/posts/posts-service-instance.js +47 -0
  248. package/core/server/services/posts/posts-service.js +572 -45
  249. package/core/server/services/recommendations/index.js +1 -1
  250. package/core/server/services/recommendations/{RecommendationEnablerService.js → recommendation-enabler-service.js} +2 -2
  251. package/core/server/services/recommendations/{RecommendationServiceWrapper.js → recommendation-service-wrapper.js} +2 -2
  252. package/core/server/services/recommendations/service/{BookshelfClickEventRepository.js → bookshelf-click-event-repository.js} +4 -4
  253. package/core/server/services/recommendations/service/{BookshelfClickEventRepository.ts → bookshelf-click-event-repository.ts} +2 -2
  254. package/core/server/services/recommendations/service/{BookshelfRecommendationRepository.js → bookshelf-recommendation-repository.js} +4 -4
  255. package/core/server/services/recommendations/service/{BookshelfRecommendationRepository.ts → bookshelf-recommendation-repository.ts} +3 -3
  256. package/core/server/services/recommendations/service/{BookshelfSubscribeEventRepository.js → bookshelf-subscribe-event-repository.js} +4 -4
  257. package/core/server/services/recommendations/service/{BookshelfSubscribeEventRepository.ts → bookshelf-subscribe-event-repository.ts} +2 -2
  258. package/core/server/services/recommendations/service/{InMemoryRecommendationRepository.js → in-memory-recommendation-repository.js} +2 -2
  259. package/core/server/services/recommendations/service/{InMemoryRecommendationRepository.ts → in-memory-recommendation-repository.ts} +3 -3
  260. package/core/server/services/recommendations/service/{IncomingRecommendationController.js → incoming-recommendation-controller.js} +2 -2
  261. package/core/server/services/recommendations/service/{IncomingRecommendationController.ts → incoming-recommendation-controller.ts} +3 -3
  262. package/core/server/services/recommendations/service/{IncomingRecommendationEmailRenderer.ts → incoming-recommendation-email-renderer.ts} +2 -2
  263. package/core/server/services/recommendations/service/{IncomingRecommendationService.ts → incoming-recommendation-service.ts} +2 -2
  264. package/core/server/services/recommendations/service/index.js +15 -15
  265. package/core/server/services/recommendations/service/index.ts +15 -15
  266. package/core/server/services/recommendations/service/{RecommendationController.js → recommendation-controller.js} +13 -13
  267. package/core/server/services/recommendations/service/{RecommendationController.ts → recommendation-controller.ts} +4 -4
  268. package/core/server/services/recommendations/service/{RecommendationRepository.ts → recommendation-repository.ts} +3 -3
  269. package/core/server/services/recommendations/service/{RecommendationService.js → recommendation-service.js} +6 -6
  270. package/core/server/services/recommendations/service/{RecommendationService.ts → recommendation-service.ts} +8 -8
  271. package/core/server/services/recommendations/service/{Recommendation.js → recommendation.js} +4 -4
  272. package/core/server/services/recommendations/service/{Recommendation.ts → recommendation.ts} +1 -1
  273. package/core/server/services/recommendations/service/{WellknownService.ts → well-known-service.ts} +1 -1
  274. package/core/server/services/route-settings/index.js +4 -4
  275. package/core/server/services/settings/{SettingsBREADService.js → settings-bread-service.js} +1 -1
  276. package/core/server/services/settings/settings-service.js +2 -2
  277. package/core/server/services/settings-helpers/index.js +1 -1
  278. package/core/server/services/settings-helpers/{SettingsHelpers.js → settings-helpers.js} +5 -5
  279. package/core/server/services/slack-notifications/service.js +4 -4
  280. package/core/server/services/slack-notifications/{SlackNotificationsService.js → slack-notifications-service.js} +2 -2
  281. package/core/server/services/slack-notifications/{SlackNotifications.js → slack-notifications.js} +2 -2
  282. package/core/server/services/staff/index.js +1 -1
  283. package/core/server/services/staff/{StaffServiceEmails.js → staff-service-emails.js} +2 -2
  284. package/core/server/services/staff/{StaffService.js → staff-service.js} +2 -2
  285. package/core/server/services/stats/{PostsStatsService.js → posts-stats-service.js} +25 -25
  286. package/core/server/services/stats/{ReferrersStatsService.js → referrers-stats-service.js} +3 -3
  287. package/core/server/services/stats/service.js +1 -1
  288. package/core/server/services/stats/{StatsService.js → stats-service.js} +23 -23
  289. package/core/server/services/stripe/events/index.js +2 -2
  290. package/core/server/services/stripe/service.js +1 -1
  291. package/core/server/services/stripe/services/webhook/{CheckoutSessionEventService.js → checkout-session-event-service.js} +2 -2
  292. package/core/server/services/stripe/{StripeMigrations.js → stripe-migrations.js} +1 -1
  293. package/core/server/services/stripe/{StripeService.js → stripe-service.js} +8 -8
  294. package/core/server/services/stripe/{WebhookController.js → webhook-controller.js} +4 -4
  295. package/core/server/services/stripe/{WebhookManager.js → webhook-manager.js} +5 -5
  296. package/core/server/services/themes/storage.js +1 -1
  297. package/core/server/services/tiers/{InMemoryTierRepository.js → in-memory-tier-repository.js} +1 -1
  298. package/core/server/services/tiers/service.js +2 -2
  299. package/core/server/services/tiers/{TierActivatedEvent.js → tier-activated-event.js} +1 -1
  300. package/core/server/services/tiers/{TierArchivedEvent.js → tier-archived-event.js} +1 -1
  301. package/core/server/services/tiers/{TierCreatedEvent.js → tier-created-event.js} +1 -1
  302. package/core/server/services/tiers/{TierNameChangeEvent.js → tier-name-change-event.js} +1 -1
  303. package/core/server/services/tiers/{TierPriceChangeEvent.js → tier-price-change-event.js} +1 -1
  304. package/core/server/services/tiers/{TierRepository.js → tier-repository.js} +7 -7
  305. package/core/server/services/tiers/{Tier.js → tier.js} +5 -5
  306. package/core/server/services/tiers/{TiersAPI.js → tiers-api.js} +1 -1
  307. package/core/server/services/tinybird/index.js +1 -1
  308. package/core/server/services/tinybird/{TinybirdServiceWrapper.js → tinybird-service-wrapper.js} +2 -2
  309. package/core/server/services/update-check/index.js +1 -1
  310. package/core/server/services/url/index.js +2 -2
  311. package/core/server/services/url/{Resources.js → resources.js} +1 -1
  312. package/core/server/services/url/{UrlGenerator.js → url-generator.js} +1 -1
  313. package/core/server/services/url/{UrlService.js → url-service.js} +4 -4
  314. package/core/server/services/url/{Urls.js → urls.js} +1 -1
  315. package/core/server/services/webhooks/listen.js +1 -1
  316. package/core/shared/labs.js +2 -1
  317. package/package.json +3 -3
  318. package/tsconfig.tsbuildinfo +1 -1
  319. package/components/tryghost-i18n-6.11.0.tgz +0 -0
  320. package/core/built/admin/assets/index-Cr_YX9yU.js +0 -1
  321. package/core/built/admin/assets/stats/index-BBCJ2EZo.mjs +0 -733
  322. package/core/server/services/posts/PostsService.js +0 -574
  323. /package/core/server/{GhostServer.js → ghost-server.js} +0 -0
  324. /package/core/server/services/activitypub/{ActivityPubService.js → activity-pub-service.js} +0 -0
  325. /package/core/server/services/adapter-manager/{AdapterManager.js → adapter-manager.js} +0 -0
  326. /package/core/server/services/announcement-bar-service/{AnnouncementVisibilityValues.js → announcement-visibility-values.js} +0 -0
  327. /package/core/server/services/audience-feedback/{AudienceFeedbackService.js → audience-feedback-service.js} +0 -0
  328. /package/core/server/services/audience-feedback/{FeedbackRepository.js → feedback-repository.js} +0 -0
  329. /package/core/server/services/audience-feedback/{Feedback.js → feedback.js} +0 -0
  330. /package/core/server/services/auth/session/{SessionStore.js → session-store.js} +0 -0
  331. /package/core/server/services/comments/{CommentsServiceEmailRenderer.js → comments-service-email-renderer.js} +0 -0
  332. /package/core/server/services/comments/{CommentsStatsService.js → comments-stats-service.js} +0 -0
  333. /package/core/server/services/custom-redirects/{CustomRedirectsAPI.js → custom-redirects-api.js} +0 -0
  334. /package/core/server/services/donations/{DonationBookshelfRepository.js → donation-bookshelf-repository.js} +0 -0
  335. /package/core/server/services/donations/{DonationPaymentEvent.js → donation-payment-event.js} +0 -0
  336. /package/core/server/services/donations/{DonationPaymentEvent.ts → donation-payment-event.ts} +0 -0
  337. /package/core/server/services/email-address/{EmailAddressParser.js → email-address-parser.js} +0 -0
  338. /package/core/server/services/email-address/{EmailAddressParser.js.d.ts → email-address-parser.js.d.ts} +0 -0
  339. /package/core/server/services/email-analytics/{EventProcessingResult.js → event-processing-result.js} +0 -0
  340. /package/core/server/services/email-analytics/events/{StartEmailAnalyticsJobEvent.js → start-email-analytics-job-event.js} +0 -0
  341. /package/core/server/services/email-service/{DomainWarmingService.js → domain-warming-service.js} +0 -0
  342. /package/core/server/services/email-service/{DomainWarmingService.ts → domain-warming-service.ts} +0 -0
  343. /package/core/server/services/email-service/{EmailBodyCache.js → email-body-cache.js} +0 -0
  344. /package/core/server/services/email-service/{EmailController.js → email-controller.js} +0 -0
  345. /package/core/server/services/email-service/{EmailSegmenter.js → email-segmenter.js} +0 -0
  346. /package/core/server/services/email-service/events/{EmailBouncedEvent.js → email-bounced-event.js} +0 -0
  347. /package/core/server/services/email-service/events/{EmailDeliveredEvent.js → email-delivered-event.js} +0 -0
  348. /package/core/server/services/email-service/events/{EmailOpenedEvent.js → email-opened-event.js} +0 -0
  349. /package/core/server/services/email-service/events/{EmailTemporaryBouncedEvent.js → email-temporary-bounced-event.js} +0 -0
  350. /package/core/server/services/email-service/events/{EmailUnsubscribedEvent.js → email-unsubscribed-event.js} +0 -0
  351. /package/core/server/services/email-service/events/{SpamComplaintEvent.js → spam-complaint-event.js} +0 -0
  352. /package/core/server/services/email-suppression-list/{EmailSuppressionList.js → email-suppression-list.js} +0 -0
  353. /package/core/server/services/explore/{ExploreService.js → explore-service.js} +0 -0
  354. /package/core/server/services/explore-ping/{ExplorePingService.js → explore-ping-service.js} +0 -0
  355. /package/core/server/services/frontend-data-service/{FrontendDataService.js → front-end-data-service.js} +0 -0
  356. /package/core/server/services/identity-tokens/{IdentityTokenService.js → identity-token-service.js} +0 -0
  357. /package/core/server/services/identity-tokens/{IdentityTokenService.ts → identity-token-service.ts} +0 -0
  358. /package/core/server/services/invites/{Invites.js → invites.js} +0 -0
  359. /package/core/server/services/lib/{DynamicRedirectManager.js → dynamic-redirect-manager.js} +0 -0
  360. /package/core/server/services/lib/{EmailContentGenerator.js → email-content-generator.js} +0 -0
  361. /package/core/server/services/lib/{InMemoryRepository.js → in-memory-repository.js} +0 -0
  362. /package/core/server/services/lib/{InMemoryRepository.ts → in-memory-repository.ts} +0 -0
  363. /package/core/server/services/lib/magic-link/{MagicLink.js → magic-link.js} +0 -0
  364. /package/core/server/services/lib/{MailgunClient.js → mailgun-client.js} +0 -0
  365. /package/core/server/services/link-redirection/{LinkRedirect.js → link-redirect.js} +0 -0
  366. /package/core/server/services/link-tracking/{ClickEvent.js → click-event.js} +0 -0
  367. /package/core/server/services/link-tracking/{FullPostLink.js → full-post-link.js} +0 -0
  368. /package/core/server/services/link-tracking/{PostLink.js → post-link.js} +0 -0
  369. /package/core/server/services/media-inliner/{ExternalMediaInliner.js → external-media-inliner.js} +0 -0
  370. /package/core/server/services/member-attribution/{OutboundLinkTagger.js → outbound-link-tagger.js} +0 -0
  371. /package/core/server/services/member-attribution/{UrlHistory.js → url-history.js} +0 -0
  372. /package/core/server/services/member-welcome-emails/{MemberWelcomeEmailRenderer.js → member-welcome-email-renderer.js} +0 -0
  373. /package/core/server/services/members/importer/{MembersCSVImporterStripeUtils.js → members-csv-importer-stripe-utils.js} +0 -0
  374. /package/core/server/services/members/members-api/controllers/{MemberController.js → member-controller.js} +0 -0
  375. /package/core/server/services/members/members-api/controllers/{RouterController.js → router-controller.js} +0 -0
  376. /package/core/server/services/members/members-api/controllers/{WellKnownController.js → well-known-controller.js} +0 -0
  377. /package/core/server/services/members/members-api/repositories/{EventRepository.js → event-repository.js} +0 -0
  378. /package/core/server/services/members/members-api/repositories/{ProductRepository.js → product-repository.js} +0 -0
  379. /package/core/server/services/members/members-api/services/{GeolocationService.js → geolocation-service.js} +0 -0
  380. /package/core/server/services/members/members-api/services/{TokenService.js → token-service.js} +0 -0
  381. /package/core/server/services/members/{MembersConfigProvider.js → members-config-provider.js} +0 -0
  382. /package/core/server/services/members/{RequestIntegrityTokenProvider.js → request-integrity-token-provider.js} +0 -0
  383. /package/core/server/services/members/{SingleUseTokenProvider.js → single-use-token-provider.js} +0 -0
  384. /package/core/server/services/members/stats/{MembersStats.js → members-stats.js} +0 -0
  385. /package/core/server/services/members-events/{EventStorage.js → event-storage.js} +0 -0
  386. /package/core/server/services/members-events/{LastSeenAtCache.js → last-seen-at-cache.js} +0 -0
  387. /package/core/server/services/mentions/{MentionDiscoveryService.js → mention-discovery-service.js} +0 -0
  388. /package/core/server/services/mentions/{MentionSendingService.js → mention-sending-service.js} +0 -0
  389. /package/core/server/services/mentions-email-report/{StartMentionEmailReportJob.js → start-mention-email-report-job.js} +0 -0
  390. /package/core/server/services/milestones/{MilestoneCreatedEvent.js → milestone-created-event.js} +0 -0
  391. /package/core/server/services/milestones/{MilestoneQueries.js → milestone-queries.js} +0 -0
  392. /package/core/server/services/notifications/{Notifications.js → notifications.js} +0 -0
  393. /package/core/server/services/oembed/{NFTOEmbedProvider.js → nft-oembed-provider.js} +0 -0
  394. /package/core/server/services/oembed/{OEmbedService.js → oembed-service.js} +0 -0
  395. /package/core/server/services/oembed/{TwitterOEmbedProvider.js → twitter-oembed-provider.js} +0 -0
  396. /package/core/server/services/offers/domain/models/shared/{ValueObject.js → value-object.js} +0 -0
  397. /package/core/server/services/outbox/events/{StartOutboxProcessingEvent.js → start-outbox-processing-event.js} +0 -0
  398. /package/core/server/services/posts/{PostsExporter.js → posts-exporter.js} +0 -0
  399. /package/core/server/services/posts/stats/{PostStats.js → post-stats.js} +0 -0
  400. /package/core/server/services/recommendations/service/{BookshelfRepository.js → bookshelf-repository.js} +0 -0
  401. /package/core/server/services/recommendations/service/{BookshelfRepository.ts → bookshelf-repository.ts} +0 -0
  402. /package/core/server/services/recommendations/service/{ClickEvent.js → click-event.js} +0 -0
  403. /package/core/server/services/recommendations/service/{ClickEvent.ts → click-event.ts} +0 -0
  404. /package/core/server/services/recommendations/service/{IncomingRecommendationEmailRenderer.js → incoming-recommendation-email-renderer.js} +0 -0
  405. /package/core/server/services/recommendations/service/{IncomingRecommendationService.js → incoming-recommendation-service.js} +0 -0
  406. /package/core/server/services/recommendations/service/{RecommendationMetadataService.js → recommendation-metadata-service.js} +0 -0
  407. /package/core/server/services/recommendations/service/{RecommendationMetadataService.ts → recommendation-metadata-service.ts} +0 -0
  408. /package/core/server/services/recommendations/service/{RecommendationRepository.js → recommendation-repository.js} +0 -0
  409. /package/core/server/services/recommendations/service/{SubscribeEvent.js → subscribe-event.js} +0 -0
  410. /package/core/server/services/recommendations/service/{SubscribeEvent.ts → subscribe-event.ts} +0 -0
  411. /package/core/server/services/recommendations/service/{UnsafeData.js → unsafe-data.js} +0 -0
  412. /package/core/server/services/recommendations/service/{UnsafeData.ts → unsafe-data.ts} +0 -0
  413. /package/core/server/services/recommendations/service/{WellknownService.js → well-known-service.js} +0 -0
  414. /package/core/server/services/route-settings/{DefaultSettingsManager.js → default-settings-manager.js} +0 -0
  415. /package/core/server/services/route-settings/{RouteSettings.js → route-settings.js} +0 -0
  416. /package/core/server/services/route-settings/{SettingsLoader.js → settings-loader.js} +0 -0
  417. /package/core/server/services/route-settings/{SettingsPathManager.js → settings-path-manager.js} +0 -0
  418. /package/core/server/services/stats/{ContentStatsService.js → content-stats-service.js} +0 -0
  419. /package/core/server/services/stats/{MembersStatsService.js → members-stats-service.js} +0 -0
  420. /package/core/server/services/stats/{MrrStatsService.js → mrr-stats-service.js} +0 -0
  421. /package/core/server/services/stats/{SubscriptionStatsService.js → subscription-stats-service.js} +0 -0
  422. /package/core/server/services/stripe/events/{StripeLiveDisabledEvent.js → stripe-live-disabled-event.js} +0 -0
  423. /package/core/server/services/stripe/events/{StripeLiveEnabledEvent.js → stripe-live-enabled-event.js} +0 -0
  424. /package/core/server/services/stripe/services/webhook/{InvoiceEventService.js → invoice-event-service.js} +0 -0
  425. /package/core/server/services/stripe/services/webhook/{SubscriptionEventService.js → subscription-event-service.js} +0 -0
  426. /package/core/server/services/stripe/{StripeAPI.js → stripe-api.js} +0 -0
  427. /package/core/server/services/themes/{ThemeStorage.js → theme-storage.js} +0 -0
  428. /package/core/server/services/tinybird/{TinybirdService.js → tinybird-service.js} +0 -0
  429. /package/core/server/services/update-check/{UpdateCheckService.js → update-check-service.js} +0 -0
  430. /package/core/server/services/url/{LocalFileCache.js → local-file-cache.js} +0 -0
  431. /package/core/server/services/url/{Queue.js → queue.js} +0 -0
  432. /package/core/server/services/url/{Resource.js → resource.js} +0 -0
  433. /package/core/server/services/{Users.js → users.js} +0 -0
  434. /package/core/server/services/{VerificationTrigger.js → verification-trigger.js} +0 -0
  435. /package/core/server/services/webhooks/{WebhookTrigger.js → webhook-trigger.js} +0 -0
@@ -17,7 +17,7 @@ const moment = require('moment');
17
17
  */
18
18
 
19
19
  /**
20
- * @typedef {import('./SlackNotificationsService').ISlackNotifications} ISlackNotifications
20
+ * @typedef {import('./slack-notifications-service').ISlackNotifications} ISlackNotifications
21
21
  */
22
22
 
23
23
  /**
@@ -47,7 +47,7 @@ class SlackNotifications {
47
47
 
48
48
  /**
49
49
  * @param {object} eventData
50
- * @param {import('../milestones/Milestone')} eventData.milestone
50
+ * @param {import('../milestones/milestone')} eventData.milestone
51
51
  * @param {object} [eventData.meta]
52
52
  * @param {'import'|'email'|'skipped'|'initial'} [eventData.meta.reason]
53
53
  * @param {number} [eventData.meta.currentValue]
@@ -8,7 +8,7 @@ class StaffServiceWrapper {
8
8
  return;
9
9
  }
10
10
 
11
- const StaffService = require('./StaffService');
11
+ const StaffService = require('./staff-service');
12
12
 
13
13
  const logging = require('@tryghost/logging');
14
14
  const models = require('../../models');
@@ -2,7 +2,7 @@ const {promises: fs, readFileSync} = require('fs');
2
2
  const path = require('path');
3
3
  const moment = require('moment');
4
4
  const glob = require('glob');
5
- const EmailAddressParser = require('../email-address/EmailAddressParser');
5
+ const EmailAddressParser = require('../email-address/email-address-parser');
6
6
 
7
7
  class StaffServiceEmails {
8
8
  constructor({logging, models, mailer, settingsHelpers, settingsCache, blogIcon, urlUtils, labs}) {
@@ -263,7 +263,7 @@ class StaffServiceEmails {
263
263
  /**
264
264
  *
265
265
  * @param {object} eventData
266
- * @param {import('../donations/DonationPaymentEvent').DonationPaymentEvent} eventData.donationPaymentEvent
266
+ * @param {import('../donations/donation-payment-event').DonationPaymentEvent} eventData.donationPaymentEvent
267
267
  *
268
268
  * @returns {Promise<void>}
269
269
  */
@@ -1,5 +1,5 @@
1
1
  const {MemberCreatedEvent, SubscriptionCancelledEvent, SubscriptionActivatedEvent} = require('../../../shared/events');
2
- const MilestoneCreatedEvent = require('../milestones/MilestoneCreatedEvent');
2
+ const MilestoneCreatedEvent = require('../milestones/milestone-created-event');
3
3
 
4
4
  // @NOTE: 'StaffService' is a vague name that does not describe what it's actually doing.
5
5
  // Possibly, "StaffNotificationService" or "StaffEventNotificationService" would be a more accurate name
@@ -13,7 +13,7 @@ class StaffService {
13
13
  this.DomainEvents = DomainEvents;
14
14
  this.memberAttributionService = memberAttributionService;
15
15
 
16
- const Emails = require('./StaffServiceEmails');
16
+ const Emails = require('./staff-service-emails');
17
17
 
18
18
  this.emails = new Emails({
19
19
  logging,
@@ -3,7 +3,7 @@ const errors = require('@tryghost/errors');
3
3
  const urlUtils = require('../../../shared/url-utils');
4
4
 
5
5
  // Import source normalization from ReferrersStatsService
6
- const {normalizeSource} = require('./ReferrersStatsService');
6
+ const {normalizeSource} = require('./referrers-stats-service');
7
7
  // Import centralized date utilities
8
8
  const {getDateBoundaries, applyDateFilter} = require('./utils/date-utils');
9
9
 
@@ -147,7 +147,7 @@ class PostsStatsService {
147
147
  .from('members_created_events')
148
148
  .whereNotNull('attribution_url');
149
149
  applyDateFilter(subquery1, dateFrom, dateTo, 'created_at');
150
-
150
+
151
151
  subquery1.union(function () {
152
152
  const subquery2 = this.select('attribution_url', 'attribution_type', 'attribution_id')
153
153
  .from('members_subscription_created_events')
@@ -215,10 +215,10 @@ class PostsStatsService {
215
215
  // Transform results and enrich with titles and URL existence validation
216
216
  return results.map((row) => {
217
217
  const title = row.title || this._generateTitleFromPath(row.attribution_url);
218
-
218
+
219
219
  // Check if URL exists using the URL service
220
220
  let urlExists = true; // Default to true for backward compatibility
221
-
221
+
222
222
  if (this.urlService && row.attribution_url) {
223
223
  try {
224
224
  // Check if URL service is ready
@@ -253,7 +253,7 @@ class PostsStatsService {
253
253
  if (!path) {
254
254
  return 'Unknown';
255
255
  }
256
-
256
+
257
257
  // Handle common Ghost paths
258
258
  if (path === '/') {
259
259
  return 'Homepage';
@@ -269,12 +269,12 @@ class PostsStatsService {
269
269
  if (path.startsWith('/author/')) {
270
270
  const segments = path.split('/');
271
271
  return segments.length > 2 && segments[2] ? `author/${segments[2]}` : 'author/unknown';
272
- }
272
+ }
273
273
  if (path.startsWith('/authors/')) {
274
274
  const segments = path.split('/');
275
275
  return segments.length > 2 && segments[2] ? `author/${segments[2]}` : 'author/unknown';
276
276
  }
277
-
277
+
278
278
  // For other paths, just return the path itself
279
279
  return path;
280
280
  }
@@ -362,7 +362,7 @@ class PostsStatsService {
362
362
 
363
363
  // Apply source normalization and group by normalized source
364
364
  const normalizedResults = new Map();
365
-
365
+
366
366
  results.forEach((row) => {
367
367
  const normalizedSource = normalizeSource(row.source);
368
368
  const existing = normalizedResults.get(normalizedSource) || {
@@ -372,11 +372,11 @@ class PostsStatsService {
372
372
  paid_members: 0,
373
373
  mrr: 0
374
374
  };
375
-
375
+
376
376
  existing.free_members += row.free_members;
377
377
  existing.paid_members += row.paid_members;
378
378
  existing.mrr += row.mrr;
379
-
379
+
380
380
  normalizedResults.set(normalizedSource, existing);
381
381
  });
382
382
 
@@ -453,7 +453,7 @@ class PostsStatsService {
453
453
  const groupByField = groupByUrl ? 'mce.attribution_url' : 'mce.attribution_id';
454
454
  const joinCondition = groupByUrl ? 'mce.attribution_url' : 'mce.attribution_id';
455
455
  const {dateFrom, dateTo} = getDateBoundaries(options);
456
-
456
+
457
457
  let subquery = knex('members_created_events as mce')
458
458
  .select(selectField)
459
459
  .countDistinct('mce.member_id as free_members')
@@ -515,7 +515,7 @@ class PostsStatsService {
515
515
  const selectField = groupByUrl ? 'msce.attribution_url' : 'msce.attribution_id as post_id';
516
516
  const groupByField = groupByUrl ? 'msce.attribution_url' : 'msce.attribution_id';
517
517
  const {dateFrom, dateTo} = getDateBoundaries(options);
518
-
518
+
519
519
  let subquery = knex('members_subscription_created_events as msce')
520
520
  .select(selectField)
521
521
  .countDistinct('msce.member_id as paid_members')
@@ -559,7 +559,7 @@ class PostsStatsService {
559
559
  const selectField = groupByUrl ? 'msce.attribution_url' : 'msce.attribution_id as post_id';
560
560
  const groupByField = groupByUrl ? 'msce.attribution_url' : 'msce.attribution_id';
561
561
  const {dateFrom, dateTo} = getDateBoundaries(options);
562
-
562
+
563
563
  let subquery = this.knex('members_subscription_created_events as msce')
564
564
  .select(selectField)
565
565
  .sum('mpse.mrr_delta as mrr')
@@ -841,7 +841,7 @@ class PostsStatsService {
841
841
  .whereIn('p.status', ['sent', 'published'])
842
842
  .orderBy(orderFieldMap[orderField], orderDirection)
843
843
  .limit(limit);
844
-
844
+
845
845
  // Apply centralized date filtering
846
846
  applyDateFilter(query, dateFrom, dateTo, 'p.published_at');
847
847
  } else {
@@ -861,7 +861,7 @@ class PostsStatsService {
861
861
  .whereIn('p.status', ['sent', 'published'])
862
862
  .orderBy(orderFieldMap[orderField], orderDirection)
863
863
  .limit(limit);
864
-
864
+
865
865
  // Apply centralized date filtering
866
866
  applyDateFilter(query, dateFrom, dateTo, 'p.published_at');
867
867
  }
@@ -1119,7 +1119,7 @@ class PostsStatsService {
1119
1119
  if (!postId || postId.trim() === '') {
1120
1120
  return {data: []};
1121
1121
  }
1122
-
1122
+
1123
1123
  // Get basic post info for stats calculations
1124
1124
  const postData = await this.knex('posts')
1125
1125
  .select('posts.id', 'posts.uuid', 'posts.published_at', 'e.email_count', 'e.opened_count')
@@ -1127,7 +1127,7 @@ class PostsStatsService {
1127
1127
  .where('posts.id', postId)
1128
1128
  .where('posts.status', 'published')
1129
1129
  .first();
1130
-
1130
+
1131
1131
  if (!postData) {
1132
1132
  return {data: []};
1133
1133
  }
@@ -1135,14 +1135,14 @@ class PostsStatsService {
1135
1135
  // Get member attribution counts
1136
1136
  const memberAttributionCounts = await this._getMemberAttributionCounts([postData.id]);
1137
1137
  const attributionCount = memberAttributionCounts.find(ac => ac.post_id === postData.id);
1138
-
1138
+
1139
1139
  const freeMembers = attributionCount ? attributionCount.free_members : 0;
1140
1140
  const paidMembers = attributionCount ? attributionCount.paid_members : 0;
1141
1141
  const totalMembers = freeMembers + paidMembers;
1142
1142
 
1143
1143
  // Calculate open rate
1144
- const openRate = postData.email_count ?
1145
- (postData.opened_count / postData.email_count) * 100 :
1144
+ const openRate = postData.email_count ?
1145
+ (postData.opened_count / postData.email_count) * 100 :
1146
1146
  null;
1147
1147
 
1148
1148
  // Get visitor count from Tinybird
@@ -1208,7 +1208,7 @@ class PostsStatsService {
1208
1208
 
1209
1209
  // Filter out any rows without post_uuid and get unique UUIDs
1210
1210
  const postUuids = [...new Set(viewsData.filter(row => row.post_uuid).map(row => row.post_uuid))];
1211
-
1211
+
1212
1212
  // Get posts data from Ghost DB - prioritize posts that were sent as newsletters
1213
1213
  const posts = await this.knex('posts as p')
1214
1214
  .select(
@@ -1300,7 +1300,7 @@ class PostsStatsService {
1300
1300
  if (remainingCount > 0) {
1301
1301
  // Get post IDs that we already have to exclude them
1302
1302
  const existingPostIds = postsWithViews.map(p => p.post_id);
1303
-
1303
+
1304
1304
  additionalPosts = await this.knex('posts as p')
1305
1305
  .select(
1306
1306
  'p.id as post_id',
@@ -1474,7 +1474,7 @@ class PostsStatsService {
1474
1474
  async getPostsMemberCounts(postIds, options = {}) {
1475
1475
  try {
1476
1476
  const attributionCounts = await this._getMemberAttributionCounts(postIds, options);
1477
-
1477
+
1478
1478
  // Convert array to object mapping post_id -> counts
1479
1479
  const memberCounts = {};
1480
1480
  attributionCounts.forEach((count) => {
@@ -1483,7 +1483,7 @@ class PostsStatsService {
1483
1483
  paid_members: count.paid_members
1484
1484
  };
1485
1485
  });
1486
-
1486
+
1487
1487
  return memberCounts;
1488
1488
  } catch (error) {
1489
1489
  logging.error('Error fetching member counts:', error);
@@ -1568,4 +1568,4 @@ class PostsStatsService {
1568
1568
  }
1569
1569
  }
1570
1570
 
1571
- module.exports = PostsStatsService;
1571
+ module.exports = PostsStatsService;
@@ -362,12 +362,12 @@ class ReferrersStatsService {
362
362
  * @param {string} [options.date_from] - Start date in YYYY-MM-DD format
363
363
  * @param {string} [options.date_to] - End date in YYYY-MM-DD format
364
364
  * @param {string} [options.timezone] - Timezone to use for date interpretation
365
- * @param {string} [options.orderBy='signups desc'] - Sort order: 'signups desc', 'paid_conversions desc', 'mrr desc', 'source desc'
365
+ * @param {string} [options.order='signups desc'] - Sort order: 'signups desc', 'paid_conversions desc', 'mrr desc', 'source desc'
366
366
  * @param {number} [options.limit=50] - Maximum number of sources to return
367
367
  * @returns {Promise<{data: AttributionCountStatWithMrr[], meta: {}}>}
368
368
  */
369
369
  async getTopSourcesWithRange(options = {}) {
370
- const {orderBy = 'signups desc', limit = 50} = options;
370
+ const {order = 'signups desc', limit = 50} = options;
371
371
 
372
372
  // Get deduplicated member counts and MRR data in parallel
373
373
  const [memberCounts, mrrEntries] = await Promise.all([
@@ -416,7 +416,7 @@ class ReferrersStatsService {
416
416
  let results = Array.from(sourceMap.values());
417
417
 
418
418
  // Apply sorting - only allow descending sorts for sources
419
- const [field] = orderBy.split(' ');
419
+ const [field] = order.split(' ');
420
420
 
421
421
  results.sort((a, b) => {
422
422
  let valueA; let valueB;
@@ -10,7 +10,7 @@ class StatsServiceWrapper {
10
10
  return;
11
11
  }
12
12
 
13
- const StatsService = require('./StatsService');
13
+ const StatsService = require('./stats-service');
14
14
  const db = require('../../data/db');
15
15
  const models = require('../../models');
16
16
  const urlService = require('../url');
@@ -1,9 +1,9 @@
1
- const MRRService = require('./MrrStatsService');
2
- const MembersService = require('./MembersStatsService');
3
- const SubscriptionStatsService = require('./SubscriptionStatsService');
4
- const ReferrersStatsService = require('./ReferrersStatsService');
5
- const PostsStatsService = require('./PostsStatsService');
6
- const ContentStatsService = require('./ContentStatsService');
1
+ const MRRService = require('./mrr-stats-service');
2
+ const MembersService = require('./members-stats-service');
3
+ const SubscriptionStatsService = require('./subscription-stats-service');
4
+ const ReferrersStatsService = require('./referrers-stats-service');
5
+ const PostsStatsService = require('./posts-stats-service');
6
+ const ContentStatsService = require('./content-stats-service');
7
7
  class StatsService {
8
8
  /**
9
9
  * @param {object} deps
@@ -78,8 +78,8 @@ class StatsService {
78
78
 
79
79
  /**
80
80
  * Get top posts by attribution metrics (includes all content that drove conversions)
81
- * @param {import('./PostsStatsService').TopPostsOptions} options
82
- * @returns {Promise<{data: import('./PostsStatsService').AttributionResult[]}>}
81
+ * @param {import('./posts-stats-service').TopPostsOptions} options
82
+ * @returns {Promise<{data: import('./posts-stats-service').AttributionResult[]}>}
83
83
  */
84
84
  async getTopPosts(options = {}) {
85
85
  // Return the original { data: results } structure
@@ -94,7 +94,7 @@ class StatsService {
94
94
  * @param {string} options.date_to - End date in YYYY-MM-DD format
95
95
  * @param {string} options.timezone - Timezone to use for date interpretation
96
96
  * @param {number} [options.limit=5] - Maximum number of posts to return
97
- * @returns {Promise<{data: import('./PostsStatsService').TopPostResult[]}>}
97
+ * @returns {Promise<{data: import('./posts-stats-service').TopPostResult[]}>}
98
98
  */
99
99
  async getTopPostsViews(options) {
100
100
  const result = await this.posts.getTopPostsViews(options);
@@ -124,17 +124,17 @@ class StatsService {
124
124
  * @param {string} [options.date_from] - Start date filter in YYYY-MM-DD format
125
125
  * @param {string} [options.date_to] - End date filter in YYYY-MM-DD format
126
126
  * @param {string} [options.timezone] - Timezone to use for date interpretation
127
- * @returns {Promise<{data: import('./PostsStatsService').NewsletterStatResult[]}>}
127
+ * @returns {Promise<{data: import('./posts-stats-service').NewsletterStatResult[]}>}
128
128
  */
129
129
  async getNewsletterStats(options = {}) {
130
130
  // Extract newsletter_id from options
131
131
  const {newsletter_id: newsletterId, ...otherOptions} = options;
132
-
132
+
133
133
  // If no newsletterId is provided, we can't get specific stats
134
134
  if (!newsletterId) {
135
135
  return {data: []};
136
136
  }
137
-
137
+
138
138
  // Return newsletter stats for the specific newsletter
139
139
  const result = await this.posts.getNewsletterStats(newsletterId, otherOptions);
140
140
  return result;
@@ -142,23 +142,23 @@ class StatsService {
142
142
 
143
143
  /**
144
144
  * Get newsletter subscriber statistics including total count and daily deltas
145
- *
145
+ *
146
146
  * @param {Object} options
147
147
  * @param {string} [options.newsletter_id] - ID of the specific newsletter to get stats for
148
148
  * @param {string} [options.date_from] - Start date filter in YYYY-MM-DD format
149
149
  * @param {string} [options.date_to] - End date filter in YYYY-MM-DD format
150
150
  * @param {string} [options.timezone] - Timezone to use for date interpretation
151
- * @returns {Promise<{data: import('./PostsStatsService').NewsletterSubscriberStats[]}>}
151
+ * @returns {Promise<{data: import('./posts-stats-service').NewsletterSubscriberStats[]}>}
152
152
  */
153
153
  async getNewsletterSubscriberStats(options = {}) {
154
154
  // Extract newsletter_id from options
155
155
  const {newsletter_id: newsletterId, ...otherOptions} = options;
156
-
156
+
157
157
  // If no newsletterId is provided, we can't get specific stats
158
158
  if (!newsletterId) {
159
159
  return {data: [{total: 0, values: []}]};
160
160
  }
161
-
161
+
162
162
  const result = await this.posts.getNewsletterSubscriberStats(newsletterId, otherOptions);
163
163
  return result;
164
164
  }
@@ -195,17 +195,17 @@ class StatsService {
195
195
  * @param {string} [options.timezone] - Timezone to use for date interpretation
196
196
  * @param {string} [options.date_from] - Start date filter in YYYY-MM-DD format
197
197
  * @param {string} [options.date_to] - End date filter in YYYY-MM-DD format
198
- * @returns {Promise<{data: import('./PostsStatsService').NewsletterStatResult[]}>}
198
+ * @returns {Promise<{data: import('./posts-stats-service').NewsletterStatResult[]}>}
199
199
  */
200
200
  async getNewsletterBasicStats(options = {}) {
201
201
  // Extract newsletter_id from options
202
202
  const {newsletter_id: newsletterId, ...otherOptions} = options;
203
-
203
+
204
204
  // If no newsletterId is provided, we can't get specific stats
205
205
  if (!newsletterId) {
206
206
  return {data: []};
207
207
  }
208
-
208
+
209
209
  // Return newsletter basic stats for the specific newsletter
210
210
  const result = await this.posts.getNewsletterBasicStats(newsletterId, otherOptions);
211
211
  return result;
@@ -221,12 +221,12 @@ class StatsService {
221
221
  async getNewsletterClickStats(options = {}) {
222
222
  // Extract newsletter_id and post_ids from options
223
223
  const {newsletter_id: newsletterId, post_ids: postIds} = options;
224
-
224
+
225
225
  // If no newsletterId is provided, we can't get specific stats
226
226
  if (!newsletterId) {
227
227
  return {data: []};
228
228
  }
229
-
229
+
230
230
  // Return newsletter click stats for the specific newsletter and posts
231
231
  const result = await this.posts.getNewsletterClickStats(newsletterId, postIds);
232
232
  return result;
@@ -237,7 +237,7 @@ class StatsService {
237
237
  * @param {string} [options.date_from] - Start date in YYYY-MM-DD format
238
238
  * @param {string} [options.date_to] - End date in YYYY-MM-DD format
239
239
  * @param {string} [options.timezone] - Timezone to use for date interpretation
240
- * @param {string} [options.orderBy='signups desc'] - Sort order: 'signups desc', 'paid_conversions desc', 'mrr desc', 'source desc'
240
+ * @param {string} [options.order='signups desc'] - Sort order: 'signups desc', 'paid_conversions desc', 'mrr desc', 'source desc'
241
241
  * @param {number} [options.limit=50] - Maximum number of sources to return
242
242
  */
243
243
  async getTopSourcesWithRange(options = {}) {
@@ -255,7 +255,7 @@ class StatsService {
255
255
  * @param {string} [options.date_to] - End date in YYYY-MM-DD format
256
256
  * @param {string} [options.timezone] - Timezone to use for date interpretation
257
257
  * @param {string} [options.post_id] - Optional filter by post ID
258
- * @returns {Promise<{data: import('./ReferrersStatsService').UtmGrowthStat[], meta: {}}>}
258
+ * @returns {Promise<{data: import('./referrers-stats-service').UtmGrowthStat[], meta: {}}>}
259
259
  */
260
260
  async getUtmGrowthStats(options = {}) {
261
261
  return this.referrers.getUtmGrowthStats(options);
@@ -1,4 +1,4 @@
1
1
  module.exports = {
2
- StripeLiveEnabledEvent: require('./StripeLiveEnabledEvent'),
3
- StripeLiveDisabledEvent: require('./StripeLiveDisabledEvent')
2
+ StripeLiveEnabledEvent: require('./stripe-live-enabled-event'),
3
+ StripeLiveDisabledEvent: require('./stripe-live-disabled-event')
4
4
  };
@@ -1,5 +1,5 @@
1
1
  const _ = require('lodash');
2
- const StripeService = require('./StripeService');
2
+ const StripeService = require('./stripe-service');
3
3
  const logging = require('@tryghost/logging');
4
4
  const membersService = require('../members');
5
5
  const config = require('../../../shared/config');
@@ -19,7 +19,7 @@ const logging = require('@tryghost/logging');
19
19
  module.exports = class CheckoutSessionEventService {
20
20
  /**
21
21
  * @param {object} deps
22
- * @param {import('../../StripeAPI')} deps.api
22
+ * @param {import('../../stripe-api')} deps.api
23
23
  * @param {object} deps.memberRepository
24
24
  * @param {object} deps.donationRepository
25
25
  * @param {object} deps.staffServiceEmails
@@ -62,7 +62,7 @@ module.exports = class CheckoutSessionEventService {
62
62
  const memberRepository = this.deps.memberRepository;
63
63
  const member = session.customer ? (await memberRepository.get({customer_id: session.customer})) : null;
64
64
 
65
- const {DonationPaymentEvent} = require('../../../donations/DonationPaymentEvent');
65
+ const {DonationPaymentEvent} = require('../../../donations/donation-payment-event');
66
66
  const data = DonationPaymentEvent.create({
67
67
  name: member?.get('name') ?? session.customer_details.name,
68
68
  email: member?.get('email') ?? session.customer_details.email,
@@ -8,7 +8,7 @@ module.exports = class StripeMigrations {
8
8
  * @param {object} params
9
9
  *
10
10
  * @param {any} params.models
11
- * @param {import('./StripeAPI')} params.api
11
+ * @param {import('./stripe-api')} params.api
12
12
  */
13
13
  constructor({
14
14
  models,
@@ -1,12 +1,12 @@
1
- const WebhookManager = require('./WebhookManager');
2
- const StripeAPI = require('./StripeAPI');
3
- const StripeMigrations = require('./StripeMigrations');
4
- const WebhookController = require('./WebhookController');
1
+ const WebhookManager = require('./webhook-manager');
2
+ const StripeAPI = require('./stripe-api');
3
+ const StripeMigrations = require('./stripe-migrations');
4
+ const WebhookController = require('./webhook-controller');
5
5
  const DomainEvents = require('@tryghost/domain-events');
6
6
  const {StripeLiveEnabledEvent, StripeLiveDisabledEvent} = require('./events');
7
- const SubscriptionEventService = require('./services/webhook/SubscriptionEventService');
8
- const InvoiceEventService = require('./services/webhook/InvoiceEventService');
9
- const CheckoutSessionEventService = require('./services/webhook/CheckoutSessionEventService');
7
+ const SubscriptionEventService = require('./services/webhook/subscription-event-service');
8
+ const InvoiceEventService = require('./services/webhook/invoice-event-service');
9
+ const CheckoutSessionEventService = require('./services/webhook/checkout-session-event-service');
10
10
 
11
11
  /**
12
12
  * @typedef {object} IStripeServiceConfig
@@ -34,7 +34,7 @@ module.exports = class StripeService {
34
34
  * @param {*} deps.membersService
35
35
  * @param {*} deps.donationService
36
36
  * @param {*} deps.staffService
37
- * @param {import('./WebhookManager').StripeWebhook} deps.StripeWebhook
37
+ * @param {import('./webhook-manager').StripeWebhook} deps.StripeWebhook
38
38
  * @param {object} deps.models
39
39
  * @param {object} deps.models.Product
40
40
  * @param {object} deps.models.StripePrice
@@ -3,10 +3,10 @@ const logging = require('@tryghost/logging');
3
3
  module.exports = class WebhookController {
4
4
  /**
5
5
  * @param {object} deps
6
- * @param {import('./WebhookManager')} deps.webhookManager
7
- * @param {import('./services/webhook/CheckoutSessionEventService')} deps.checkoutSessionEventService
8
- * @param {import('./services/webhook/SubscriptionEventService')} deps.subscriptionEventService
9
- * @param {import('./services/webhook/InvoiceEventService')} deps.invoiceEventService
6
+ * @param {import('./webhook-manager')} deps.webhookManager
7
+ * @param {import('./services/webhook/checkout-session-event-service')} deps.checkoutSessionEventService
8
+ * @param {import('./services/webhook/subscription-event-service')} deps.subscriptionEventService
9
+ * @param {import('./services/webhook/invoice-event-service')} deps.invoiceEventService
10
10
  */
11
11
  constructor(deps) {
12
12
  this.checkoutSessionEventService = deps.checkoutSessionEventService;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {import('stripe').Stripe.WebhookEndpointCreateParams.EnabledEvent} WebhookEvent
3
- * @typedef {import('./StripeAPI')} StripeAPI
3
+ * @typedef {import('./stripe-api')} StripeAPI
4
4
  */
5
5
 
6
6
  /**
@@ -51,7 +51,7 @@ module.exports = class WebhookManager {
51
51
 
52
52
  /**
53
53
  * Deletes the Stripe Webhook Endpoint and saves null values for the webhook ID and secret.
54
- *
54
+ *
55
55
  * @returns {Promise<boolean>}
56
56
  */
57
57
  async stop() {
@@ -76,7 +76,7 @@ module.exports = class WebhookManager {
76
76
 
77
77
  /**
78
78
  * Starts the Stripe Webhook Endpoint and saves the webhook ID and secret.
79
- *
79
+ *
80
80
  * @returns {Promise<void>}
81
81
  */
82
82
  async start() {
@@ -115,7 +115,7 @@ module.exports = class WebhookManager {
115
115
  * Setup a new Stripe Webhook Endpoint.
116
116
  * - If the webhook exists, delete it and create a new one
117
117
  * - If the webhook does not exist, create a new one
118
- *
118
+ *
119
119
  * @param {string} [id]
120
120
  * @param {string} [secret]
121
121
  * @param {object} [opts]
@@ -164,7 +164,7 @@ module.exports = class WebhookManager {
164
164
 
165
165
  /**
166
166
  * Parse a Stripe Webhook event.
167
- *
167
+ *
168
168
  * @param {string} body
169
169
  * @param {string} signature
170
170
  * @returns {import('stripe').Stripe.Event}
@@ -8,7 +8,7 @@ const errors = require('@tryghost/errors');
8
8
 
9
9
  const validate = require('./validate');
10
10
  const list = require('./list');
11
- const ThemeStorage = require('./ThemeStorage');
11
+ const ThemeStorage = require('./theme-storage');
12
12
  const themeLoader = require('./loader');
13
13
  const activator = require('./activation-bridge');
14
14
  const toJSON = require('./to-json');
@@ -1,7 +1,7 @@
1
1
  const nql = require('@tryghost/nql');
2
2
 
3
3
  /**
4
- * @typedef {import('./Tier')} Tier
4
+ * @typedef {import('./tier')} Tier
5
5
  */
6
6
 
7
7
  class InMemoryTierRepository {
@@ -5,11 +5,11 @@ class TiersServiceWrapper {
5
5
  return;
6
6
  }
7
7
 
8
- const TiersAPI = require('./TiersAPI');
8
+ const TiersAPI = require('./tiers-api');
9
9
  const DomainEvents = require('@tryghost/domain-events');
10
10
 
11
11
  const models = require('../../models');
12
- const TierRepository = require('./TierRepository');
12
+ const TierRepository = require('./tier-repository');
13
13
 
14
14
  const repository = new TierRepository({
15
15
  ProductModel: models.Product,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {object} TierActivatedEventData
3
- * @prop {import('./Tier')} tier
3
+ * @prop {import('./tier')} tier
4
4
  */
5
5
 
6
6
  class TierActivatedEvent {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {object} TierArchivedEventData
3
- * @prop {import('./Tier')} tier
3
+ * @prop {import('./tier')} tier
4
4
  */
5
5
 
6
6
  class TierArchivedEvent {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {object} TierCreatedEventData
3
- * @prop {import('./Tier')} tier
3
+ * @prop {import('./tier')} tier
4
4
  */
5
5
 
6
6
  class TierCreatedEvent {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {object} TierNameChangeEventData
3
- * @prop {import('./Tier')} tier
3
+ * @prop {import('./tier')} tier
4
4
  */
5
5
 
6
6
  class TierNameChangeEvent {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @typedef {object} TierPriceChangeEventData
3
- * @prop {import('./Tier')} tier
3
+ * @prop {import('./tier')} tier
4
4
  */
5
5
 
6
6
  class TierPriceChangeEvent {