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
@@ -1,5 +1,5 @@
1
1
  const DomainEvents = require('@tryghost/domain-events');
2
- const MentionCreatedEvent = require('../mentions/MentionCreatedEvent');
2
+ const MentionCreatedEvent = require('../mentions/mention-created-event');
3
3
  const logging = require('@tryghost/logging');
4
4
 
5
5
  class RecommendationServiceWrapper {
@@ -53,7 +53,7 @@ class RecommendationServiceWrapper {
53
53
  const models = require('../../models');
54
54
  const sentry = require('../../../shared/sentry');
55
55
  const settings = require('../settings');
56
- const RecommendationEnablerService = require('./RecommendationEnablerService');
56
+ const RecommendationEnablerService = require('./recommendation-enabler-service');
57
57
 
58
58
  const {
59
59
  BookshelfRecommendationRepository,
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BookshelfClickEventRepository = void 0;
7
- const BookshelfRepository_1 = require("./BookshelfRepository");
7
+ const bookshelf_repository_1 = require("./bookshelf-repository");
8
8
  const logging_1 = __importDefault(require("@tryghost/logging"));
9
- const ClickEvent_1 = require("./ClickEvent");
10
- class BookshelfClickEventRepository extends BookshelfRepository_1.BookshelfRepository {
9
+ const click_event_1 = require("./click-event");
10
+ class BookshelfClickEventRepository extends bookshelf_repository_1.BookshelfRepository {
11
11
  sentry;
12
12
  constructor(Model, deps = {}) {
13
13
  super(Model);
@@ -23,7 +23,7 @@ class BookshelfClickEventRepository extends BookshelfRepository_1.BookshelfRepos
23
23
  }
24
24
  modelToEntity(model) {
25
25
  try {
26
- return ClickEvent_1.ClickEvent.create({
26
+ return click_event_1.ClickEvent.create({
27
27
  id: model.id,
28
28
  recommendationId: model.get('recommendation_id'),
29
29
  memberId: model.get('member_id'),
@@ -1,6 +1,6 @@
1
- import {BookshelfRepository, ModelClass, ModelInstance} from './BookshelfRepository';
1
+ import {BookshelfRepository, ModelClass, ModelInstance} from './bookshelf-repository';
2
2
  import logger from '@tryghost/logging';
3
- import {ClickEvent} from './ClickEvent';
3
+ import {ClickEvent} from './click-event';
4
4
 
5
5
  type Sentry = {
6
6
  captureException(err: unknown): void;
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BookshelfRecommendationRepository = void 0;
7
- const BookshelfRepository_1 = require("./BookshelfRepository");
7
+ const bookshelf_repository_1 = require("./bookshelf-repository");
8
8
  const logging_1 = __importDefault(require("@tryghost/logging"));
9
- const Recommendation_1 = require("./Recommendation");
10
- class BookshelfRecommendationRepository extends BookshelfRepository_1.BookshelfRepository {
9
+ const recommendation_1 = require("./recommendation");
10
+ class BookshelfRecommendationRepository extends bookshelf_repository_1.BookshelfRepository {
11
11
  sentry;
12
12
  constructor(Model, deps = {}) {
13
13
  super(Model);
@@ -43,7 +43,7 @@ class BookshelfRecommendationRepository extends BookshelfRepository_1.BookshelfR
43
43
  }
44
44
  modelToEntity(model) {
45
45
  try {
46
- return Recommendation_1.Recommendation.create({
46
+ return recommendation_1.Recommendation.create({
47
47
  id: model.id,
48
48
  title: model.get('title'),
49
49
  description: model.get('description'),
@@ -1,8 +1,8 @@
1
- import {AllOptions, BookshelfRepository, ModelClass, ModelInstance} from './BookshelfRepository';
1
+ import {AllOptions, BookshelfRepository, ModelClass, ModelInstance} from './bookshelf-repository';
2
2
  import logger from '@tryghost/logging';
3
3
  import {Knex} from 'knex';
4
- import {Recommendation} from './Recommendation';
5
- import {RecommendationRepository} from './RecommendationRepository';
4
+ import {Recommendation} from './recommendation';
5
+ import {RecommendationRepository} from './recommendation-repository';
6
6
 
7
7
  type Sentry = {
8
8
  captureException(err: unknown): void;
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BookshelfSubscribeEventRepository = void 0;
7
- const BookshelfRepository_1 = require("./BookshelfRepository");
7
+ const bookshelf_repository_1 = require("./bookshelf-repository");
8
8
  const logging_1 = __importDefault(require("@tryghost/logging"));
9
- const SubscribeEvent_1 = require("./SubscribeEvent");
10
- class BookshelfSubscribeEventRepository extends BookshelfRepository_1.BookshelfRepository {
9
+ const subscribe_event_1 = require("./subscribe-event");
10
+ class BookshelfSubscribeEventRepository extends bookshelf_repository_1.BookshelfRepository {
11
11
  sentry;
12
12
  constructor(Model, deps = {}) {
13
13
  super(Model);
@@ -23,7 +23,7 @@ class BookshelfSubscribeEventRepository extends BookshelfRepository_1.BookshelfR
23
23
  }
24
24
  modelToEntity(model) {
25
25
  try {
26
- return SubscribeEvent_1.SubscribeEvent.create({
26
+ return subscribe_event_1.SubscribeEvent.create({
27
27
  id: model.id,
28
28
  recommendationId: model.get('recommendation_id'),
29
29
  memberId: model.get('member_id'),
@@ -1,6 +1,6 @@
1
- import {BookshelfRepository, ModelClass, ModelInstance} from './BookshelfRepository';
1
+ import {BookshelfRepository, ModelClass, ModelInstance} from './bookshelf-repository';
2
2
  import logger from '@tryghost/logging';
3
- import {SubscribeEvent} from './SubscribeEvent';
3
+ import {SubscribeEvent} from './subscribe-event';
4
4
 
5
5
  type Sentry = {
6
6
  captureException(err: unknown): void;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryRecommendationRepository = void 0;
4
- const InMemoryRepository_1 = require("../../lib/InMemoryRepository");
5
- class InMemoryRecommendationRepository extends InMemoryRepository_1.InMemoryRepository {
4
+ const in_memory_repository_1 = require("../../lib/in-memory-repository");
5
+ class InMemoryRecommendationRepository extends in_memory_repository_1.InMemoryRepository {
6
6
  toPrimitive(entity) {
7
7
  return entity;
8
8
  }
@@ -1,6 +1,6 @@
1
- import {Recommendation} from './Recommendation';
2
- import {RecommendationRepository} from './RecommendationRepository';
3
- import {InMemoryRepository} from '../../lib/InMemoryRepository';
1
+ import {Recommendation} from './recommendation';
2
+ import {RecommendationRepository} from './recommendation-repository';
3
+ import {InMemoryRepository} from '../../lib/in-memory-repository';
4
4
 
5
5
  export class InMemoryRecommendationRepository extends InMemoryRepository<string, Recommendation> implements RecommendationRepository {
6
6
  toPrimitive(entity: Recommendation): object {
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IncomingRecommendationController = void 0;
4
- const UnsafeData_1 = require("./UnsafeData");
4
+ const unsafe_data_1 = require("./unsafe-data");
5
5
  class IncomingRecommendationController {
6
6
  service;
7
7
  constructor(deps) {
8
8
  this.service = deps.service;
9
9
  }
10
10
  async browse(frame) {
11
- const options = new UnsafeData_1.UnsafeData(frame.options);
11
+ const options = new unsafe_data_1.UnsafeData(frame.options);
12
12
  const page = options.optionalKey('page')?.integer ?? 1;
13
13
  const limit = options.optionalKey('limit')?.integer ?? 5;
14
14
  const { incomingRecommendations, meta } = await this.service.listIncomingRecommendations({ page, limit });
@@ -1,6 +1,6 @@
1
- import {IncomingRecommendationService} from './IncomingRecommendationService';
2
- import {IncomingRecommendation} from './IncomingRecommendationService';
3
- import {UnsafeData} from './UnsafeData';
1
+ import {IncomingRecommendationService} from './incoming-recommendation-service';
2
+ import {IncomingRecommendation} from './incoming-recommendation-service';
3
+ import {UnsafeData} from './unsafe-data';
4
4
 
5
5
  type Frame = {
6
6
  data: unknown,
@@ -1,5 +1,5 @@
1
- import {EmailRecipient} from './IncomingRecommendationService';
2
- import {IncomingRecommendation} from './IncomingRecommendationService';
1
+ import {EmailRecipient} from './incoming-recommendation-service';
2
+ import {IncomingRecommendation} from './incoming-recommendation-service';
3
3
 
4
4
  type StaffService = {
5
5
  api: {
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable ghost/filenames/match-exported-class */
2
2
 
3
- import {IncomingRecommendationEmailRenderer} from './IncomingRecommendationEmailRenderer';
4
- import {RecommendationService} from './RecommendationService';
3
+ import {IncomingRecommendationEmailRenderer} from './incoming-recommendation-email-renderer';
4
+ import {RecommendationService} from './recommendation-service';
5
5
  import logging from '@tryghost/logging';
6
6
 
7
7
  export type IncomingRecommendation = {
@@ -14,18 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./RecommendationController"), exports);
18
- __exportStar(require("./RecommendationService"), exports);
19
- __exportStar(require("./RecommendationRepository"), exports);
20
- __exportStar(require("./InMemoryRecommendationRepository"), exports);
21
- __exportStar(require("./Recommendation"), exports);
22
- __exportStar(require("./WellknownService"), exports);
23
- __exportStar(require("./BookshelfRecommendationRepository"), exports);
24
- __exportStar(require("./ClickEvent"), exports);
25
- __exportStar(require("./BookshelfClickEventRepository"), exports);
26
- __exportStar(require("./SubscribeEvent"), exports);
27
- __exportStar(require("./BookshelfSubscribeEventRepository"), exports);
28
- __exportStar(require("./IncomingRecommendationController"), exports);
29
- __exportStar(require("./IncomingRecommendationService"), exports);
30
- __exportStar(require("./IncomingRecommendationEmailRenderer"), exports);
31
- __exportStar(require("./RecommendationMetadataService"), exports);
17
+ __exportStar(require("./recommendation-controller"), exports);
18
+ __exportStar(require("./recommendation-service"), exports);
19
+ __exportStar(require("./recommendation-repository"), exports);
20
+ __exportStar(require("./in-memory-recommendation-repository"), exports);
21
+ __exportStar(require("./recommendation"), exports);
22
+ __exportStar(require("./well-known-service"), exports);
23
+ __exportStar(require("./bookshelf-recommendation-repository"), exports);
24
+ __exportStar(require("./click-event"), exports);
25
+ __exportStar(require("./bookshelf-click-event-repository"), exports);
26
+ __exportStar(require("./subscribe-event"), exports);
27
+ __exportStar(require("./bookshelf-subscribe-event-repository"), exports);
28
+ __exportStar(require("./incoming-recommendation-controller"), exports);
29
+ __exportStar(require("./incoming-recommendation-service"), exports);
30
+ __exportStar(require("./incoming-recommendation-email-renderer"), exports);
31
+ __exportStar(require("./recommendation-metadata-service"), exports);
@@ -1,15 +1,15 @@
1
- export * from './RecommendationController';
2
- export * from './RecommendationService';
3
- export * from './RecommendationRepository';
4
- export * from './InMemoryRecommendationRepository';
5
- export * from './Recommendation';
6
- export * from './WellknownService';
7
- export * from './BookshelfRecommendationRepository';
8
- export * from './ClickEvent';
9
- export * from './BookshelfClickEventRepository';
10
- export * from './SubscribeEvent';
11
- export * from './BookshelfSubscribeEventRepository';
12
- export * from './IncomingRecommendationController';
13
- export * from './IncomingRecommendationService';
14
- export * from './IncomingRecommendationEmailRenderer';
15
- export * from './RecommendationMetadataService';
1
+ export * from './recommendation-controller';
2
+ export * from './recommendation-service';
3
+ export * from './recommendation-repository';
4
+ export * from './in-memory-recommendation-repository';
5
+ export * from './recommendation';
6
+ export * from './well-known-service';
7
+ export * from './bookshelf-recommendation-repository';
8
+ export * from './click-event';
9
+ export * from './bookshelf-click-event-repository';
10
+ export * from './subscribe-event';
11
+ export * from './bookshelf-subscribe-event-repository';
12
+ export * from './incoming-recommendation-controller';
13
+ export * from './incoming-recommendation-service';
14
+ export * from './incoming-recommendation-email-renderer';
15
+ export * from './recommendation-metadata-service';
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RecommendationController = void 0;
7
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
8
8
  const errors_1 = __importDefault(require("@tryghost/errors"));
9
- const UnsafeData_1 = require("./UnsafeData");
9
+ const unsafe_data_1 = require("./unsafe-data");
10
10
  const RecommendationIncludesMap = {
11
11
  'count.clicks': 'clickCount',
12
12
  'count.subscribers': 'subscriberCount'
@@ -27,13 +27,13 @@ class RecommendationController {
27
27
  this.service = deps.service;
28
28
  }
29
29
  async read(frame) {
30
- const options = new UnsafeData_1.UnsafeData(frame.options);
30
+ const options = new unsafe_data_1.UnsafeData(frame.options);
31
31
  const id = options.key('id').string;
32
32
  const recommendation = await this.service.readRecommendation(id);
33
33
  return this.#serialize([recommendation]);
34
34
  }
35
35
  async add(frame) {
36
- const data = new UnsafeData_1.UnsafeData(frame.data);
36
+ const data = new unsafe_data_1.UnsafeData(frame.data);
37
37
  const recommendation = data.key('recommendations').index(0);
38
38
  const plain = {
39
39
  title: recommendation.key('title').string,
@@ -54,14 +54,14 @@ class RecommendationController {
54
54
  * This can be used in the frontend when creating a new recommendation (duplication checking + showing a preview before saving)
55
55
  */
56
56
  async check(frame) {
57
- const data = new UnsafeData_1.UnsafeData(frame.data);
57
+ const data = new unsafe_data_1.UnsafeData(frame.data);
58
58
  const recommendation = data.key('recommendations').index(0);
59
59
  const url = recommendation.key('url').url;
60
60
  return this.#serialize([await this.service.checkRecommendation(url)]);
61
61
  }
62
62
  async edit(frame) {
63
- const options = new UnsafeData_1.UnsafeData(frame.options);
64
- const data = new UnsafeData_1.UnsafeData(frame.data);
63
+ const options = new unsafe_data_1.UnsafeData(frame.options);
64
+ const data = new unsafe_data_1.UnsafeData(frame.data);
65
65
  const recommendation = data.key('recommendations').index(0);
66
66
  const id = options.key('id').string;
67
67
  const plain = {
@@ -76,7 +76,7 @@ class RecommendationController {
76
76
  return this.#serialize([await this.service.editRecommendation(id, plain)]);
77
77
  }
78
78
  async destroy(frame) {
79
- const options = new UnsafeData_1.UnsafeData(frame.options);
79
+ const options = new unsafe_data_1.UnsafeData(frame.options);
80
80
  const id = options.key('id').string;
81
81
  await this.service.deleteRecommendation(id);
82
82
  }
@@ -94,8 +94,8 @@ class RecommendationController {
94
94
  const order = [];
95
95
  for (const [index, part] of parts.entries()) {
96
96
  const trimmed = part.trim();
97
- const fieldData = new UnsafeData_1.UnsafeData(trimmed.split(' ')[0].trim(), { field: ['order', index.toString(), 'field'] });
98
- const directionData = new UnsafeData_1.UnsafeData(trimmed.split(' ')[1]?.trim() ?? 'desc', { field: ['order', index.toString(), 'direction'] });
97
+ const fieldData = new unsafe_data_1.UnsafeData(trimmed.split(' ')[0].trim(), { field: ['order', index.toString(), 'field'] });
98
+ const directionData = new unsafe_data_1.UnsafeData(trimmed.split(' ')[1]?.trim() ?? 'desc', { field: ['order', index.toString(), 'direction'] });
99
99
  const validatedField = fieldData.enum(Object.keys(RecommendationOrderMap));
100
100
  const direction = directionData.enum(['asc', 'desc']);
101
101
  // Convert 'count.' and camelCase to snake_case
@@ -108,7 +108,7 @@ class RecommendationController {
108
108
  return order;
109
109
  }
110
110
  async browse(frame) {
111
- const options = new UnsafeData_1.UnsafeData(frame.options);
111
+ const options = new unsafe_data_1.UnsafeData(frame.options);
112
112
  const page = options.optionalKey('page')?.integer ?? 1;
113
113
  const limit = options.optionalKey('limit')?.integer ?? 5;
114
114
  const include = options.optionalKey('withRelated')?.array.map((item) => {
@@ -125,7 +125,7 @@ class RecommendationController {
125
125
  }
126
126
  async trackClicked(frame) {
127
127
  const member = this.#optionalAuthMember(frame);
128
- const options = new UnsafeData_1.UnsafeData(frame.options);
128
+ const options = new unsafe_data_1.UnsafeData(frame.options);
129
129
  const id = options.key('id').string;
130
130
  await this.service.trackClicked({
131
131
  id,
@@ -134,7 +134,7 @@ class RecommendationController {
134
134
  }
135
135
  async trackSubscribed(frame) {
136
136
  const member = this.#authMember(frame);
137
- const options = new UnsafeData_1.UnsafeData(frame.options);
137
+ const options = new unsafe_data_1.UnsafeData(frame.options);
138
138
  const id = options.key('id').string;
139
139
  await this.service.trackSubscribed({
140
140
  id,
@@ -142,7 +142,7 @@ class RecommendationController {
142
142
  });
143
143
  }
144
144
  #authMember(frame) {
145
- const options = new UnsafeData_1.UnsafeData(frame.options);
145
+ const options = new unsafe_data_1.UnsafeData(frame.options);
146
146
  const memberId = options.key('context').optionalKey('member')?.nullable.key('id').string;
147
147
  if (!memberId) {
148
148
  // This is an internal server error because authentication should happen outside this service.
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import errors from '@tryghost/errors';
3
- import {AddRecommendation, Recommendation, RecommendationPlain} from './Recommendation';
4
- import {RecommendationService} from './RecommendationService';
5
- import {UnsafeData} from './UnsafeData';
6
- import {OrderOption} from './BookshelfRepository';
3
+ import {AddRecommendation, Recommendation, RecommendationPlain} from './recommendation';
4
+ import {RecommendationService} from './recommendation-service';
5
+ import {UnsafeData} from './unsafe-data';
6
+ import {OrderOption} from './bookshelf-repository';
7
7
 
8
8
  type Frame = {
9
9
  data: unknown,
@@ -1,5 +1,5 @@
1
- import {AllOptions} from './BookshelfRepository';
2
- import {Recommendation} from './Recommendation';
1
+ import {AllOptions} from './bookshelf-repository';
2
+ import {Recommendation} from './recommendation';
3
3
 
4
4
  export interface RecommendationRepository {
5
5
  save(entity: Recommendation): Promise<void>;
@@ -10,4 +10,4 @@ export interface RecommendationRepository {
10
10
  getCount(options: {
11
11
  filter?: string;
12
12
  }): Promise<number>;
13
- }
13
+ }
@@ -7,9 +7,9 @@ exports.RecommendationService = void 0;
7
7
  const errors_1 = __importDefault(require("@tryghost/errors"));
8
8
  const logging_1 = __importDefault(require("@tryghost/logging"));
9
9
  const tpl_1 = __importDefault(require("@tryghost/tpl"));
10
- const ClickEvent_1 = require("./ClickEvent");
11
- const Recommendation_1 = require("./Recommendation");
12
- const SubscribeEvent_1 = require("./SubscribeEvent");
10
+ const click_event_1 = require("./click-event");
11
+ const recommendation_1 = require("./recommendation");
12
+ const subscribe_event_1 = require("./subscribe-event");
13
13
  const messages = {
14
14
  notFound: 'Recommendation with id {id} not found'
15
15
  };
@@ -90,7 +90,7 @@ class RecommendationService {
90
90
  return recommendation.plain;
91
91
  }
92
92
  async addRecommendation(addRecommendation) {
93
- const recommendation = Recommendation_1.Recommendation.create(addRecommendation);
93
+ const recommendation = recommendation_1.Recommendation.create(addRecommendation);
94
94
  // If a recommendation with this URL already exists, throw an error
95
95
  const existing = await this.repository.getByUrl(recommendation.url);
96
96
  if (existing) {
@@ -210,11 +210,11 @@ class RecommendationService {
210
210
  return await this.repository.getCount({ filter });
211
211
  }
212
212
  async trackClicked({ id, memberId }) {
213
- const clickEvent = ClickEvent_1.ClickEvent.create({ recommendationId: id, memberId });
213
+ const clickEvent = click_event_1.ClickEvent.create({ recommendationId: id, memberId });
214
214
  await this.clickEventRepository.save(clickEvent);
215
215
  }
216
216
  async trackSubscribed({ id, memberId }) {
217
- const subscribeEvent = SubscribeEvent_1.SubscribeEvent.create({ recommendationId: id, memberId });
217
+ const subscribeEvent = subscribe_event_1.SubscribeEvent.create({ recommendationId: id, memberId });
218
218
  await this.subscribeEventRepository.save(subscribeEvent);
219
219
  }
220
220
  async readRecommendationByUrl(url) {
@@ -1,15 +1,15 @@
1
1
  import errors from '@tryghost/errors';
2
- import {InMemoryRepository} from '../../lib/InMemoryRepository';
2
+ import {InMemoryRepository} from '../../lib/in-memory-repository';
3
3
  import logging from '@tryghost/logging';
4
4
  import tpl from '@tryghost/tpl';
5
5
 
6
- import {IncludeOption, OrderOption} from './BookshelfRepository';
7
- import {ClickEvent} from './ClickEvent';
8
- import {AddRecommendation, Recommendation, RecommendationPlain} from './Recommendation';
9
- import {RecommendationRepository} from './RecommendationRepository';
10
- import {SubscribeEvent} from './SubscribeEvent';
11
- import {WellknownService} from './WellknownService';
12
- import {RecommendationMetadataService} from './RecommendationMetadataService';
6
+ import {IncludeOption, OrderOption} from './bookshelf-repository';
7
+ import {ClickEvent} from './click-event';
8
+ import {AddRecommendation, Recommendation, RecommendationPlain} from './recommendation';
9
+ import {RecommendationRepository} from './recommendation-repository';
10
+ import {SubscribeEvent} from './subscribe-event';
11
+ import {WellknownService} from './well-known-service';
12
+ import {RecommendationMetadataService} from './recommendation-metadata-service';
13
13
 
14
14
  type MentionSendingService = {
15
15
  sendAll(options: {url: URL, links: URL[]}): Promise<void>
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.Recommendation = void 0;
8
8
  const bson_objectid_1 = __importDefault(require("bson-objectid"));
9
9
  const errors_1 = __importDefault(require("@tryghost/errors"));
10
- const UnsafeData_1 = require("./UnsafeData");
10
+ const unsafe_data_1 = require("./unsafe-data");
11
11
  class Recommendation {
12
12
  id;
13
13
  title;
@@ -83,9 +83,9 @@ class Recommendation {
83
83
  title: data.title,
84
84
  description: data.description,
85
85
  excerpt: data.excerpt,
86
- featuredImage: new UnsafeData_1.UnsafeData(data.featuredImage, { field: ['featuredImage'] }).nullable.url,
87
- favicon: new UnsafeData_1.UnsafeData(data.favicon, { field: ['favicon'] }).nullable.url,
88
- url: new UnsafeData_1.UnsafeData(data.url, { field: ['url'] }).url,
86
+ featuredImage: new unsafe_data_1.UnsafeData(data.featuredImage, { field: ['featuredImage'] }).nullable.url,
87
+ favicon: new unsafe_data_1.UnsafeData(data.favicon, { field: ['favicon'] }).nullable.url,
88
+ url: new unsafe_data_1.UnsafeData(data.url, { field: ['url'] }).url,
89
89
  oneClickSubscribe: data.oneClickSubscribe,
90
90
  createdAt: data.createdAt ?? new Date(),
91
91
  updatedAt: data.updatedAt ?? null,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import ObjectId from 'bson-objectid';
4
4
  import errors from '@tryghost/errors';
5
- import {UnsafeData} from './UnsafeData';
5
+ import {UnsafeData} from './unsafe-data';
6
6
 
7
7
  /**
8
8
  * We never expose Entities outside of services. Because we should never expose the bussiness logic methods. The plain objects are used for that
@@ -1,4 +1,4 @@
1
- import {Recommendation} from './Recommendation';
1
+ import {Recommendation} from './recommendation';
2
2
  import fs from 'fs/promises';
3
3
  import _path from 'path';
4
4
 
@@ -6,10 +6,10 @@ let routeSettings;
6
6
 
7
7
  module.exports = {
8
8
  init: async () => {
9
- const RouteSettings = require('./RouteSettings');
10
- const SettingsLoader = require('./SettingsLoader');
11
- const DefaultSettingsManager = require('./DefaultSettingsManager');
12
- const SettingsPathManager = require('./SettingsPathManager');
9
+ const RouteSettings = require('./route-settings');
10
+ const SettingsLoader = require('./settings-loader');
11
+ const DefaultSettingsManager = require('./default-settings-manager');
12
+ const SettingsPathManager = require('./settings-path-manager');
13
13
 
14
14
  const settingsPathManager = new SettingsPathManager({type: 'routes', paths: [config.getContentPath('settings')]});
15
15
  settingsLoader = new SettingsLoader({parseYaml, settingFilePath: settingsPathManager.getDefaultFilePath()});
@@ -4,7 +4,7 @@ const {NotFoundError, NoPermissionError, BadRequestError, IncorrectUsageError, V
4
4
  const {obfuscatedSetting, isSecretSetting, hideValueIfSecret} = require('./settings-utils');
5
5
  const logging = require('@tryghost/logging');
6
6
  const verifyEmailTemplate = require('./emails/verify-email');
7
- const MagicLink = require('../lib/magic-link/MagicLink');
7
+ const MagicLink = require('../lib/magic-link/magic-link');
8
8
  const sentry = require('../../../shared/sentry');
9
9
 
10
10
  const EMAIL_KEYS = ['members_support_address'];
@@ -9,10 +9,10 @@ const limits = require('../limits');
9
9
  const config = require('../../../shared/config');
10
10
  const adapterManager = require('../adapter-manager');
11
11
  const SettingsCache = require('../../../shared/settings-cache');
12
- const SettingsBREADService = require('./SettingsBREADService');
12
+ const SettingsBREADService = require('./settings-bread-service');
13
13
  const {obfuscatedSetting, isSecretSetting, hideValueIfSecret} = require('./settings-utils');
14
14
  const mail = require('../mail');
15
- const SingleUseTokenProvider = require('../members/SingleUseTokenProvider');
15
+ const SingleUseTokenProvider = require('../members/single-use-token-provider');
16
16
  const urlUtils = require('../../../shared/url-utils');
17
17
 
18
18
  const ObjectId = require('bson-objectid').default;
@@ -1,7 +1,7 @@
1
1
  const settingsCache = require('../../../shared/settings-cache');
2
2
  const urlUtils = require('../../../shared/url-utils');
3
3
  const config = require('../../../shared/config');
4
- const SettingsHelpers = require('./SettingsHelpers');
4
+ const SettingsHelpers = require('./settings-helpers');
5
5
  const labs = require('../../../shared/labs');
6
6
  const limitService = require('../limits');
7
7
 
@@ -1,7 +1,7 @@
1
1
  const net = require('net');
2
2
  const tpl = require('@tryghost/tpl');
3
3
  const errors = require('@tryghost/errors');
4
- const EmailAddressParser = require('../email-address/EmailAddressParser');
4
+ const EmailAddressParser = require('../email-address/email-address-parser');
5
5
  const logging = require('@tryghost/logging');
6
6
  const crypto = require('crypto');
7
7
  const debug = require('@tryghost/debug')('services:settings-helpers');
@@ -269,7 +269,7 @@ class SettingsHelpers {
269
269
  * Calculated setting for Web analytics
270
270
  *
271
271
  * Setting > Labs Flag > Config > Limit Service
272
- *
272
+ *
273
273
  * @returns {boolean}
274
274
  */
275
275
  isWebAnalyticsEnabled() {
@@ -289,7 +289,7 @@ class SettingsHelpers {
289
289
 
290
290
  /**
291
291
  * Check if web analytics can be configured (used for UI enable/disable state)
292
- *
292
+ *
293
293
  * @returns {boolean}
294
294
  */
295
295
  isWebAnalyticsConfigured() {
@@ -316,7 +316,7 @@ class SettingsHelpers {
316
316
  */
317
317
  _isValidTinybirdConfig() {
318
318
  const tinybirdConfig = this.config.get('tinybird');
319
-
319
+
320
320
  // First requirement: tinybird:tracker:endpoint is always required
321
321
  if (!tinybirdConfig || !tinybirdConfig.tracker?.endpoint) {
322
322
  debug('Web analytics is not available without tinybird:tracker:endpoint');
@@ -326,7 +326,7 @@ class SettingsHelpers {
326
326
  // Second requirement: Either JWT config OR local stats config
327
327
  const hasJwtConfig = !!(tinybirdConfig.workspaceId && tinybirdConfig.adminToken);
328
328
  const hasLocalConfig = !!(tinybirdConfig.stats?.local?.enabled);
329
-
329
+
330
330
  if (!hasJwtConfig && !hasLocalConfig) {
331
331
  debug('Web analytics requires either (workspaceId + adminToken) or stats.local.enabled');
332
332
  return false;
@@ -3,7 +3,7 @@ const config = require('../../../shared/config');
3
3
  const logging = require('@tryghost/logging');
4
4
 
5
5
  class SlackNotificationsServiceWrapper {
6
- /** @type {import('./SlackNotificationsService')} */
6
+ /** @type {import('./slack-notifications-service')} */
7
7
  #api;
8
8
 
9
9
  /**
@@ -14,11 +14,11 @@ class SlackNotificationsServiceWrapper {
14
14
  * @param {URL} deps.webhookUrl
15
15
  * @param {number} deps.minThreshold
16
16
  *
17
- * @returns {import('./SlackNotificationsService')}
17
+ * @returns {import('./slack-notifications-service')}
18
18
  */
19
19
  static create({siteUrl, isEnabled, webhookUrl, minThreshold}) {
20
- const SlackNotificationsService = require('./SlackNotificationsService');
21
- const SlackNotifications = require('./SlackNotifications');
20
+ const SlackNotificationsService = require('./slack-notifications-service');
21
+ const SlackNotifications = require('./slack-notifications');
22
22
 
23
23
  const slackNotifications = new SlackNotifications({
24
24
  webhookUrl,
@@ -1,7 +1,7 @@
1
- const MilestoneCreatedEvent = require('../milestones/MilestoneCreatedEvent');
1
+ const MilestoneCreatedEvent = require('../milestones/milestone-created-event');
2
2
 
3
3
  /**
4
- * @typedef {import('../milestones/Milestone')} Milestone
4
+ * @typedef {import('../milestones/milestone')} Milestone
5
5
  */
6
6
 
7
7
  /**