ghost 5.82.8 → 5.82.9

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 (277) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.82.9.tgz +0 -0
  2. package/components/tryghost-adapter-cache-redis-5.82.9.tgz +0 -0
  3. package/components/tryghost-adapter-manager-5.82.9.tgz +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.82.9.tgz +0 -0
  5. package/components/tryghost-api-framework-5.82.9.tgz +0 -0
  6. package/components/tryghost-api-version-compatibility-service-5.82.9.tgz +0 -0
  7. package/components/tryghost-audience-feedback-5.82.9.tgz +0 -0
  8. package/components/tryghost-bookshelf-repository-5.82.9.tgz +0 -0
  9. package/components/tryghost-bootstrap-socket-5.82.9.tgz +0 -0
  10. package/components/{tryghost-collections-5.82.8.tgz → tryghost-collections-5.82.9.tgz} +0 -0
  11. package/components/tryghost-constants-5.82.9.tgz +0 -0
  12. package/components/{tryghost-custom-theme-settings-service-5.82.8.tgz → tryghost-custom-theme-settings-service-5.82.9.tgz} +0 -0
  13. package/components/tryghost-data-generator-5.82.9.tgz +0 -0
  14. package/components/tryghost-domain-events-5.82.9.tgz +0 -0
  15. package/components/tryghost-donations-5.82.9.tgz +0 -0
  16. package/components/tryghost-dynamic-routing-events-5.82.9.tgz +0 -0
  17. package/components/{tryghost-email-addresses-5.82.8.tgz → tryghost-email-addresses-5.82.9.tgz} +0 -0
  18. package/components/tryghost-email-analytics-provider-mailgun-5.82.9.tgz +0 -0
  19. package/components/tryghost-email-analytics-service-5.82.9.tgz +0 -0
  20. package/components/tryghost-email-content-generator-5.82.9.tgz +0 -0
  21. package/components/tryghost-email-events-5.82.9.tgz +0 -0
  22. package/components/{tryghost-email-service-5.82.8.tgz → tryghost-email-service-5.82.9.tgz} +0 -0
  23. package/components/tryghost-email-suppression-list-5.82.9.tgz +0 -0
  24. package/components/tryghost-express-dynamic-redirects-5.82.9.tgz +0 -0
  25. package/components/tryghost-external-media-inliner-5.82.9.tgz +0 -0
  26. package/components/tryghost-extract-api-key-5.82.9.tgz +0 -0
  27. package/components/tryghost-ghost-5.82.9.tgz +0 -0
  28. package/components/tryghost-html-to-plaintext-5.82.9.tgz +0 -0
  29. package/components/tryghost-i18n-5.82.9.tgz +0 -0
  30. package/components/tryghost-importer-handler-content-files-5.82.9.tgz +0 -0
  31. package/components/tryghost-importer-revue-5.82.9.tgz +0 -0
  32. package/components/tryghost-in-memory-repository-5.82.9.tgz +0 -0
  33. package/components/tryghost-job-manager-5.82.9.tgz +0 -0
  34. package/components/tryghost-link-redirects-5.82.9.tgz +0 -0
  35. package/components/tryghost-link-replacer-5.82.9.tgz +0 -0
  36. package/components/{tryghost-link-tracking-5.82.8.tgz → tryghost-link-tracking-5.82.9.tgz} +0 -0
  37. package/components/tryghost-magic-link-5.82.9.tgz +0 -0
  38. package/components/tryghost-mail-events-5.82.9.tgz +0 -0
  39. package/components/tryghost-mailgun-client-5.82.9.tgz +0 -0
  40. package/components/tryghost-member-attribution-5.82.9.tgz +0 -0
  41. package/components/tryghost-member-events-5.82.9.tgz +0 -0
  42. package/components/{tryghost-members-api-5.82.8.tgz → tryghost-members-api-5.82.9.tgz} +0 -0
  43. package/components/tryghost-members-csv-5.82.9.tgz +0 -0
  44. package/components/tryghost-members-events-service-5.82.9.tgz +0 -0
  45. package/components/tryghost-members-importer-5.82.9.tgz +0 -0
  46. package/components/tryghost-members-offers-5.82.9.tgz +0 -0
  47. package/components/tryghost-members-payments-5.82.9.tgz +0 -0
  48. package/components/tryghost-members-ssr-5.82.9.tgz +0 -0
  49. package/components/{tryghost-members-stripe-service-5.82.8.tgz → tryghost-members-stripe-service-5.82.9.tgz} +0 -0
  50. package/components/tryghost-mentions-email-report-5.82.9.tgz +0 -0
  51. package/components/tryghost-milestones-5.82.9.tgz +0 -0
  52. package/components/{tryghost-minifier-5.82.8.tgz → tryghost-minifier-5.82.9.tgz} +0 -0
  53. package/components/tryghost-model-to-domain-event-interceptor-5.82.9.tgz +0 -0
  54. package/components/tryghost-mw-api-version-mismatch-5.82.9.tgz +0 -0
  55. package/components/tryghost-mw-cache-control-5.82.9.tgz +0 -0
  56. package/components/tryghost-mw-error-handler-5.82.9.tgz +0 -0
  57. package/components/tryghost-mw-session-from-token-5.82.9.tgz +0 -0
  58. package/components/tryghost-mw-update-user-last-seen-5.82.9.tgz +0 -0
  59. package/components/{tryghost-mw-version-match-5.82.8.tgz → tryghost-mw-version-match-5.82.9.tgz} +0 -0
  60. package/components/tryghost-mw-vhost-5.82.9.tgz +0 -0
  61. package/components/tryghost-nql-filter-expansions-5.82.9.tgz +0 -0
  62. package/components/tryghost-oembed-service-5.82.9.tgz +0 -0
  63. package/components/tryghost-package-json-5.82.9.tgz +0 -0
  64. package/components/tryghost-post-events-5.82.9.tgz +0 -0
  65. package/components/tryghost-post-revisions-5.82.9.tgz +0 -0
  66. package/components/tryghost-posts-service-5.82.9.tgz +0 -0
  67. package/components/tryghost-recommendations-5.82.9.tgz +0 -0
  68. package/components/tryghost-referrers-5.82.9.tgz +0 -0
  69. package/components/tryghost-security-5.82.9.tgz +0 -0
  70. package/components/tryghost-session-service-5.82.9.tgz +0 -0
  71. package/components/tryghost-settings-path-manager-5.82.9.tgz +0 -0
  72. package/components/tryghost-slack-notifications-5.82.9.tgz +0 -0
  73. package/components/{tryghost-staff-service-5.82.8.tgz → tryghost-staff-service-5.82.9.tgz} +0 -0
  74. package/components/tryghost-stats-service-5.82.9.tgz +0 -0
  75. package/components/tryghost-tiers-5.82.9.tgz +0 -0
  76. package/components/{tryghost-update-check-service-5.82.8.tgz → tryghost-update-check-service-5.82.9.tgz} +0 -0
  77. package/components/tryghost-verification-trigger-5.82.9.tgz +0 -0
  78. package/components/tryghost-version-notifications-data-service-5.82.9.tgz +0 -0
  79. package/components/tryghost-webmentions-5.82.9.tgz +0 -0
  80. package/core/app.js +1 -1
  81. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +1 -1
  82. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +1 -1
  83. package/core/built/admin/assets/admin-x-demo/{index-e30bf632.mjs → index-f544d6cb.mjs} +3 -3
  84. package/core/built/admin/assets/admin-x-demo/{modals-44d6f757.mjs → modals-6544d395.mjs} +2 -2
  85. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-c72ff915.mjs → CodeEditorView-a1b9ba69.mjs} +2 -2
  86. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  87. package/core/built/admin/assets/admin-x-settings/{index-c91e5b06.mjs → index-8d83c7e9.mjs} +2 -2
  88. package/core/built/admin/assets/admin-x-settings/{index-ab6aea43.mjs → index-d54677fb.mjs} +4 -4
  89. package/core/built/admin/assets/admin-x-settings/{modals-839cba44.mjs → modals-73b6c803.mjs} +3125 -3105
  90. package/core/built/admin/assets/{chunk.524.784dc858253af4b339a9.js → chunk.524.cad7f24c33927f31923c.js} +5 -5
  91. package/core/built/admin/assets/{chunk.582.22b04d2b8d1fb7e2256c.js → chunk.582.a3046e5a9e7ea94bda16.js} +4 -4
  92. package/core/built/admin/assets/{chunk.799.5012e659e3d64d043636.js → chunk.799.5bcf6feef26f9fe94f0a.js} +523 -517
  93. package/core/built/admin/assets/{ghost-e16d0c67f0a0262f4cbe0d2745f90f5a.js → ghost-377ce682ddf6e53f0ccb91aeae235f29.js} +70 -58
  94. package/core/built/admin/assets/koenig-lexical/index.css +1 -1
  95. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +2015 -1951
  96. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +46 -46
  97. package/core/built/admin/assets/{vendor-5ef343f0a55366497ef903095548a0d5.js → vendor-96853bcc300bd0b0cda2913c8edb0d14.js} +13 -11
  98. package/core/built/admin/index.html +5 -5
  99. package/core/frontend/meta/og-image.js +1 -1
  100. package/core/frontend/meta/twitter-image.js +1 -1
  101. package/core/frontend/services/routing/ParentRouter.js +3 -3
  102. package/core/frontend/web/middleware/error-handler.js +1 -1
  103. package/core/frontend/web/site.js +4 -2
  104. package/core/server/GhostServer.js +1 -1
  105. package/core/server/api/endpoints/actions.js +4 -1
  106. package/core/server/api/endpoints/announcements.js +4 -1
  107. package/core/server/api/endpoints/authentication.js +4 -1
  108. package/core/server/api/endpoints/authors-public.js +4 -1
  109. package/core/server/api/endpoints/collections-public.js +4 -1
  110. package/core/server/api/endpoints/collections.js +4 -1
  111. package/core/server/api/endpoints/comments-members.js +6 -3
  112. package/core/server/api/endpoints/comments.js +4 -1
  113. package/core/server/api/endpoints/config.js +4 -1
  114. package/core/server/api/endpoints/custom-theme-settings.js +4 -1
  115. package/core/server/api/endpoints/db.js +4 -1
  116. package/core/server/api/endpoints/email-post.js +4 -1
  117. package/core/server/api/endpoints/email-previews.js +4 -1
  118. package/core/server/api/endpoints/emails.js +4 -1
  119. package/core/server/api/endpoints/explore.js +4 -1
  120. package/core/server/api/endpoints/feedback-members.js +4 -1
  121. package/core/server/api/endpoints/files.js +4 -1
  122. package/core/server/api/endpoints/identities.js +4 -1
  123. package/core/server/api/endpoints/images.js +4 -1
  124. package/core/server/api/endpoints/incoming-recommendations.js +4 -1
  125. package/core/server/api/endpoints/integrations.js +4 -1
  126. package/core/server/api/endpoints/invites.js +4 -1
  127. package/core/server/api/endpoints/labels.js +4 -1
  128. package/core/server/api/endpoints/links.js +4 -1
  129. package/core/server/api/endpoints/mail-events.js +4 -1
  130. package/core/server/api/endpoints/mail.js +4 -19
  131. package/core/server/api/endpoints/media.js +4 -1
  132. package/core/server/api/endpoints/member-signin-urls.js +5 -1
  133. package/core/server/api/endpoints/members-stripe-connect.js +4 -1
  134. package/core/server/api/endpoints/members.js +4 -1
  135. package/core/server/api/endpoints/mentions.js +4 -1
  136. package/core/server/api/endpoints/newsletters-public.js +4 -1
  137. package/core/server/api/endpoints/newsletters.js +4 -1
  138. package/core/server/api/endpoints/notifications.js +4 -1
  139. package/core/server/api/endpoints/oembed.js +4 -1
  140. package/core/server/api/endpoints/offers-public.js +4 -1
  141. package/core/server/api/endpoints/offers.js +4 -1
  142. package/core/server/api/endpoints/pages-public.js +4 -1
  143. package/core/server/api/endpoints/pages.js +4 -1
  144. package/core/server/api/endpoints/posts-public.js +11 -1
  145. package/core/server/api/endpoints/posts.js +4 -1
  146. package/core/server/api/endpoints/previews.js +4 -1
  147. package/core/server/api/endpoints/recommendations-public.js +4 -1
  148. package/core/server/api/endpoints/recommendations.js +4 -1
  149. package/core/server/api/endpoints/redirects.js +4 -1
  150. package/core/server/api/endpoints/roles.js +4 -1
  151. package/core/server/api/endpoints/schedules.js +4 -2
  152. package/core/server/api/endpoints/session.js +5 -4
  153. package/core/server/api/endpoints/settings-public.js +4 -1
  154. package/core/server/api/endpoints/settings.js +4 -1
  155. package/core/server/api/endpoints/site.js +3 -2
  156. package/core/server/api/endpoints/slack.js +4 -1
  157. package/core/server/api/endpoints/slugs.js +4 -1
  158. package/core/server/api/endpoints/snippets.js +4 -1
  159. package/core/server/api/endpoints/stats.js +4 -1
  160. package/core/server/api/endpoints/tags-public.js +4 -1
  161. package/core/server/api/endpoints/tags.js +4 -1
  162. package/core/server/api/endpoints/themes.js +4 -1
  163. package/core/server/api/endpoints/tiers-public.js +4 -1
  164. package/core/server/api/endpoints/tiers.js +4 -1
  165. package/core/server/api/endpoints/users.js +4 -1
  166. package/core/server/api/endpoints/utils/index.js +9 -1
  167. package/core/server/api/endpoints/utils/permissions.js +2 -2
  168. package/core/server/api/endpoints/utils/serializers/input/pages.js +31 -3
  169. package/core/server/api/endpoints/utils/serializers/input/posts.js +30 -2
  170. package/core/server/api/endpoints/utils/serializers/input/utils/url.js +2 -2
  171. package/core/server/api/endpoints/utils/serializers/output/mappers/activity-feed-events.js +1 -1
  172. package/core/server/api/endpoints/utils/serializers/output/members.js +5 -10
  173. package/core/server/api/endpoints/utils/serializers/output/settings.js +4 -2
  174. package/core/server/api/endpoints/utils/serializers/output/tiers.js +3 -6
  175. package/core/server/api/endpoints/utils/validators/input/password_reset.js +1 -1
  176. package/core/server/api/endpoints/utils/validators/utils/json-schema.js +1 -2
  177. package/core/server/api/endpoints/webhooks.js +4 -1
  178. package/core/server/data/importer/import-manager.js +8 -0
  179. package/core/server/services/comments/CommentsController.js +1 -1
  180. package/core/server/services/url/UrlService.js +2 -4
  181. package/core/server/web/admin/app.js +5 -1
  182. package/core/server/web/admin/controller.js +6 -7
  183. package/core/server/web/admin/middleware/redirect-admin-urls.js +6 -0
  184. package/core/server/web/announcement/routes.js +3 -0
  185. package/core/server/web/api/app.js +3 -0
  186. package/core/server/web/api/endpoints/admin/app.js +4 -1
  187. package/core/server/web/api/endpoints/admin/middleware.js +14 -1
  188. package/core/server/web/api/endpoints/admin/routes.js +3 -0
  189. package/core/server/web/api/endpoints/content/app.js +3 -0
  190. package/core/server/web/api/endpoints/content/middleware.js +2 -0
  191. package/core/server/web/api/endpoints/content/routes.js +3 -0
  192. package/core/server/web/api/middleware/upload.js +26 -2
  193. package/core/server/web/comments/routes.js +3 -0
  194. package/core/server/web/members/app.js +15 -4
  195. package/core/server/web/parent/app.js +3 -0
  196. package/core/server/web/parent/backend.js +1 -1
  197. package/core/server/web/parent/frontend.js +1 -1
  198. package/core/server/web/parent/middleware/emit-events.js +5 -0
  199. package/core/server/web/parent/middleware/ghost-locals.js +7 -2
  200. package/core/server/web/parent/middleware/log-request.js +4 -0
  201. package/core/server/web/parent/middleware/queue-request.js +6 -1
  202. package/core/server/web/parent/middleware/request-id.js +4 -0
  203. package/core/server/web/webmentions/routes.js +3 -0
  204. package/core/shared/express.js +5 -0
  205. package/core/shared/labs.js +1 -1
  206. package/core/shared/sentry.js +30 -24
  207. package/package.json +152 -152
  208. package/yarn.lock +612 -574
  209. package/components/tryghost-adapter-cache-memory-ttl-5.82.8.tgz +0 -0
  210. package/components/tryghost-adapter-cache-redis-5.82.8.tgz +0 -0
  211. package/components/tryghost-adapter-manager-5.82.8.tgz +0 -0
  212. package/components/tryghost-announcement-bar-settings-5.82.8.tgz +0 -0
  213. package/components/tryghost-api-framework-5.82.8.tgz +0 -0
  214. package/components/tryghost-api-version-compatibility-service-5.82.8.tgz +0 -0
  215. package/components/tryghost-audience-feedback-5.82.8.tgz +0 -0
  216. package/components/tryghost-bookshelf-repository-5.82.8.tgz +0 -0
  217. package/components/tryghost-bootstrap-socket-5.82.8.tgz +0 -0
  218. package/components/tryghost-constants-5.82.8.tgz +0 -0
  219. package/components/tryghost-data-generator-5.82.8.tgz +0 -0
  220. package/components/tryghost-domain-events-5.82.8.tgz +0 -0
  221. package/components/tryghost-donations-5.82.8.tgz +0 -0
  222. package/components/tryghost-dynamic-routing-events-5.82.8.tgz +0 -0
  223. package/components/tryghost-email-analytics-provider-mailgun-5.82.8.tgz +0 -0
  224. package/components/tryghost-email-analytics-service-5.82.8.tgz +0 -0
  225. package/components/tryghost-email-content-generator-5.82.8.tgz +0 -0
  226. package/components/tryghost-email-events-5.82.8.tgz +0 -0
  227. package/components/tryghost-email-suppression-list-5.82.8.tgz +0 -0
  228. package/components/tryghost-express-dynamic-redirects-5.82.8.tgz +0 -0
  229. package/components/tryghost-external-media-inliner-5.82.8.tgz +0 -0
  230. package/components/tryghost-extract-api-key-5.82.8.tgz +0 -0
  231. package/components/tryghost-ghost-5.82.8.tgz +0 -0
  232. package/components/tryghost-html-to-plaintext-5.82.8.tgz +0 -0
  233. package/components/tryghost-i18n-5.82.8.tgz +0 -0
  234. package/components/tryghost-importer-handler-content-files-5.82.8.tgz +0 -0
  235. package/components/tryghost-importer-revue-5.82.8.tgz +0 -0
  236. package/components/tryghost-in-memory-repository-5.82.8.tgz +0 -0
  237. package/components/tryghost-job-manager-5.82.8.tgz +0 -0
  238. package/components/tryghost-link-redirects-5.82.8.tgz +0 -0
  239. package/components/tryghost-link-replacer-5.82.8.tgz +0 -0
  240. package/components/tryghost-magic-link-5.82.8.tgz +0 -0
  241. package/components/tryghost-mail-events-5.82.8.tgz +0 -0
  242. package/components/tryghost-mailgun-client-5.82.8.tgz +0 -0
  243. package/components/tryghost-member-attribution-5.82.8.tgz +0 -0
  244. package/components/tryghost-member-events-5.82.8.tgz +0 -0
  245. package/components/tryghost-members-csv-5.82.8.tgz +0 -0
  246. package/components/tryghost-members-events-service-5.82.8.tgz +0 -0
  247. package/components/tryghost-members-importer-5.82.8.tgz +0 -0
  248. package/components/tryghost-members-offers-5.82.8.tgz +0 -0
  249. package/components/tryghost-members-payments-5.82.8.tgz +0 -0
  250. package/components/tryghost-members-ssr-5.82.8.tgz +0 -0
  251. package/components/tryghost-mentions-email-report-5.82.8.tgz +0 -0
  252. package/components/tryghost-milestones-5.82.8.tgz +0 -0
  253. package/components/tryghost-model-to-domain-event-interceptor-5.82.8.tgz +0 -0
  254. package/components/tryghost-mw-api-version-mismatch-5.82.8.tgz +0 -0
  255. package/components/tryghost-mw-cache-control-5.82.8.tgz +0 -0
  256. package/components/tryghost-mw-error-handler-5.82.8.tgz +0 -0
  257. package/components/tryghost-mw-session-from-token-5.82.8.tgz +0 -0
  258. package/components/tryghost-mw-update-user-last-seen-5.82.8.tgz +0 -0
  259. package/components/tryghost-mw-vhost-5.82.8.tgz +0 -0
  260. package/components/tryghost-nql-filter-expansions-5.82.8.tgz +0 -0
  261. package/components/tryghost-oembed-service-5.82.8.tgz +0 -0
  262. package/components/tryghost-package-json-5.82.8.tgz +0 -0
  263. package/components/tryghost-post-events-5.82.8.tgz +0 -0
  264. package/components/tryghost-post-revisions-5.82.8.tgz +0 -0
  265. package/components/tryghost-posts-service-5.82.8.tgz +0 -0
  266. package/components/tryghost-recommendations-5.82.8.tgz +0 -0
  267. package/components/tryghost-referrers-5.82.8.tgz +0 -0
  268. package/components/tryghost-security-5.82.8.tgz +0 -0
  269. package/components/tryghost-session-service-5.82.8.tgz +0 -0
  270. package/components/tryghost-settings-path-manager-5.82.8.tgz +0 -0
  271. package/components/tryghost-slack-notifications-5.82.8.tgz +0 -0
  272. package/components/tryghost-stats-service-5.82.8.tgz +0 -0
  273. package/components/tryghost-tiers-5.82.8.tgz +0 -0
  274. package/components/tryghost-verification-trigger-5.82.8.tgz +0 -0
  275. package/components/tryghost-version-notifications-data-service-5.82.8.tgz +0 -0
  276. package/components/tryghost-webmentions-5.82.8.tgz +0 -0
  277. /package/core/built/admin/assets/{chunk.799.5012e659e3d64d043636.js.LICENSE.txt → chunk.799.5bcf6feef26f9fe94f0a.js.LICENSE.txt} +0 -0
@@ -6,8 +6,10 @@ const messages = {
6
6
  memberNotFound: 'Member not found.'
7
7
  };
8
8
 
9
- module.exports = {
9
+ /** @type {import('@tryghost/api-framework').Controller} */
10
+ const controller = {
10
11
  docName: 'member_signin_urls',
12
+
11
13
  read: {
12
14
  headers: {
13
15
  cacheInvalidate: false
@@ -34,3 +36,5 @@ module.exports = {
34
36
  }
35
37
  }
36
38
  };
39
+
40
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const membersService = require('../../services/members');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'members_stripe_connect',
5
6
  auth: {
6
7
  headers: {
@@ -30,3 +31,5 @@ module.exports = {
30
31
  }
31
32
  }
32
33
  };
34
+
35
+ module.exports = controller;
@@ -29,7 +29,8 @@ const messages = {
29
29
 
30
30
  const allowedIncludes = ['email_recipients', 'products', 'tiers'];
31
31
 
32
- module.exports = {
32
+ /** @type {import('@tryghost/api-framework').Controller} */
33
+ const controller = {
33
34
  docName: 'members',
34
35
 
35
36
  browse: {
@@ -503,3 +504,5 @@ module.exports = {
503
504
  }
504
505
  }
505
506
  };
507
+
508
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const mentions = require('../../services/mentions');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'mentions',
5
6
  browse: {
6
7
  headers: {
@@ -37,3 +38,5 @@ module.exports = {
37
38
  }
38
39
  }
39
40
  };
41
+
42
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const models = require('../../models');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'newsletters',
5
6
 
6
7
  browse: {
@@ -20,3 +21,5 @@ module.exports = {
20
21
  }
21
22
  }
22
23
  };
24
+
25
+ module.exports = controller;
@@ -2,7 +2,8 @@ const allowedIncludes = ['count.posts', 'count.members', 'count.active_members']
2
2
 
3
3
  const newslettersService = require('../../services/newsletters');
4
4
 
5
- module.exports = {
5
+ /** @type {import('@tryghost/api-framework').Controller} */
6
+ const controller = {
6
7
  docName: 'newsletters',
7
8
 
8
9
  browse: {
@@ -121,3 +122,5 @@ module.exports = {
121
122
  }
122
123
  }
123
124
  };
125
+
126
+ module.exports = controller;
@@ -3,7 +3,8 @@ const settingsService = require('../../services/settings/settings-service');
3
3
  const settingsBREADService = settingsService.getSettingsBREADServiceInstance();
4
4
  const internalContext = {context: {internal: true}};
5
5
 
6
- module.exports = {
6
+ /** @type {import('@tryghost/api-framework').Controller} */
7
+ const controller = {
7
8
  docName: 'notifications',
8
9
 
9
10
  browse: {
@@ -101,3 +102,5 @@ module.exports = {
101
102
  }
102
103
  }
103
104
  };
105
+
106
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const oembed = require('../../services/oembed');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'oembed',
5
6
 
6
7
  read: {
@@ -20,3 +21,5 @@ module.exports = {
20
21
  }
21
22
  }
22
23
  };
24
+
25
+ module.exports = controller;
@@ -6,7 +6,8 @@ const messages = {
6
6
  offerNotFound: 'Offer not found.'
7
7
  };
8
8
 
9
- module.exports = {
9
+ /** @type {import('@tryghost/api-framework').Controller} */
10
+ const controller = {
10
11
  docName: 'offers',
11
12
 
12
13
  read: {
@@ -29,3 +30,5 @@ module.exports = {
29
30
  }
30
31
  }
31
32
  };
33
+
34
+ module.exports = controller;
@@ -6,7 +6,8 @@ const messages = {
6
6
  offerNotFound: 'Offer not found.'
7
7
  };
8
8
 
9
- module.exports = {
9
+ /** @type {import('@tryghost/api-framework').Controller} */
10
+ const controller = {
10
11
  docName: 'offers',
11
12
 
12
13
  browse: {
@@ -82,3 +83,5 @@ module.exports = {
82
83
  }
83
84
  }
84
85
  };
86
+
87
+ module.exports = controller;
@@ -20,7 +20,8 @@ const rejectPrivateFieldsTransformer = input => mapQuery(input, function (value,
20
20
  };
21
21
  });
22
22
 
23
- module.exports = {
23
+ /** @type {import('@tryghost/api-framework').Controller} */
24
+ const controller = {
24
25
  docName: 'pages',
25
26
 
26
27
  browse: {
@@ -103,3 +104,5 @@ module.exports = {
103
104
  }
104
105
  }
105
106
  };
107
+
108
+ module.exports = controller;
@@ -11,7 +11,8 @@ const messages = {
11
11
 
12
12
  const postsService = getPostServiceInstance();
13
13
 
14
- module.exports = {
14
+ /** @type {import('@tryghost/api-framework').Controller} */
15
+ const controller = {
15
16
  docName: 'pages',
16
17
  browse: {
17
18
  headers: {
@@ -282,3 +283,5 @@ module.exports = {
282
283
  }
283
284
  }
284
285
  };
286
+
287
+ module.exports = controller;
@@ -23,6 +23,12 @@ const rejectPrivateFieldsTransformer = input => mapQuery(input, function (value,
23
23
  };
24
24
  });
25
25
 
26
+ /**
27
+ *
28
+ * @param {import('@tryghost/api-framework').Frame} frame
29
+ * @param {object} options
30
+ * @returns {object}
31
+ */
26
32
  function generateOptionsData(frame, options) {
27
33
  return options.reduce((memo, option) => {
28
34
  let value = frame.options?.[option];
@@ -52,7 +58,9 @@ function generateAuthData(frame) {
52
58
  };
53
59
  }
54
60
  }
55
- module.exports = {
61
+
62
+ /** @type {import('@tryghost/api-framework').Controller} */
63
+ const controller = {
56
64
  docName: 'posts',
57
65
 
58
66
  browse: {
@@ -172,3 +180,5 @@ module.exports = {
172
180
  }
173
181
  }
174
182
  };
183
+
184
+ module.exports = controller;
@@ -38,7 +38,8 @@ function getCacheHeaderFromEventString(event, dto) {
38
38
  }
39
39
  }
40
40
 
41
- module.exports = {
41
+ /** @type {import('@tryghost/api-framework').Controller} */
42
+ const controller = {
42
43
  docName: 'posts',
43
44
  browse: {
44
45
  headers: {
@@ -327,3 +328,5 @@ module.exports = {
327
328
  }
328
329
  }
329
330
  };
331
+
332
+ module.exports = controller;
@@ -7,7 +7,8 @@ const messages = {
7
7
  postNotFound: 'Post not found.'
8
8
  };
9
9
 
10
- module.exports = {
10
+ /** @type {import('@tryghost/api-framework').Controller} */
11
+ const controller = {
11
12
  docName: 'previews',
12
13
 
13
14
  read: {
@@ -47,3 +48,5 @@ module.exports = {
47
48
  }
48
49
  }
49
50
  };
51
+
52
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const recommendations = require('../../services/recommendations');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'recommendations',
5
6
 
6
7
  browse: {
@@ -62,3 +63,5 @@ module.exports = {
62
63
  }
63
64
  }
64
65
  };
66
+
67
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const recommendations = require('../../services/recommendations');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'recommendations',
5
6
 
6
7
  browse: {
@@ -107,3 +108,5 @@ module.exports = {
107
108
  }
108
109
  }
109
110
  };
111
+
112
+ module.exports = controller;
@@ -2,7 +2,8 @@ const path = require('path');
2
2
 
3
3
  const customRedirects = require('../../services/custom-redirects');
4
4
 
5
- module.exports = {
5
+ /** @type {import('@tryghost/api-framework').Controller} */
6
+ const controller = {
6
7
  docName: 'redirects',
7
8
 
8
9
  download: {
@@ -44,3 +45,5 @@ module.exports = {
44
45
  }
45
46
  }
46
47
  };
48
+
49
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const models = require('../../models');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'roles',
5
6
  browse: {
6
7
  headers: {
@@ -20,3 +21,5 @@ module.exports = {
20
21
  }
21
22
  }
22
23
  };
24
+
25
+ module.exports = controller;
@@ -1,8 +1,8 @@
1
1
  const models = require('../../models');
2
-
3
2
  const postSchedulingService = require('../../services/posts/post-scheduling-service')();
4
3
 
5
- module.exports = {
4
+ /** @type {import('@tryghost/api-framework').Controller} */
5
+ const controller = {
6
6
  docName: 'schedules',
7
7
  publish: {
8
8
  headers: {
@@ -85,3 +85,5 @@ module.exports = {
85
85
  }
86
86
  }
87
87
  };
88
+
89
+ module.exports = controller;
@@ -8,7 +8,8 @@ const messages = {
8
8
  accessDenied: 'Access Denied.'
9
9
  };
10
10
 
11
- const session = {
11
+ /** @type {import('@tryghost/api-framework').Controller} */
12
+ const controller = {
12
13
  read(frame) {
13
14
  /*
14
15
  * TODO
@@ -31,7 +32,7 @@ const session = {
31
32
  email: object.username,
32
33
  password: object.password
33
34
  }).then((user) => {
34
- return Promise.resolve((req, res, next) => {
35
+ return Promise.resolve(function sessionMiddleware(req, res, next) {
35
36
  req.brute.reset(function (err) {
36
37
  if (err) {
37
38
  return next(err);
@@ -60,10 +61,10 @@ const session = {
60
61
  });
61
62
  },
62
63
  delete() {
63
- return Promise.resolve((req, res, next) => {
64
+ return Promise.resolve(function destroySessionMw(req, res, next) {
64
65
  auth.session.destroySession(req, res, next);
65
66
  });
66
67
  }
67
68
  };
68
69
 
69
- module.exports = session;
70
+ module.exports = controller;
@@ -2,7 +2,8 @@ const settingsCache = require('../../../shared/settings-cache');
2
2
  const urlUtils = require('../../../shared/url-utils');
3
3
  const ghostVersion = require('@tryghost/version');
4
4
 
5
- module.exports = {
5
+ /** @type {import('@tryghost/api-framework').Controller} */
6
+ const controller = {
6
7
  docName: 'settings',
7
8
 
8
9
  browse: {
@@ -22,3 +23,5 @@ module.exports = {
22
23
  }
23
24
  }
24
25
  };
26
+
27
+ module.exports = controller;
@@ -21,7 +21,8 @@ async function getStripeConnectData(frame) {
21
21
  }
22
22
  }
23
23
 
24
- module.exports = {
24
+ /** @type {import('@tryghost/api-framework').Controller} */
25
+ const controller = {
25
26
  docName: 'settings',
26
27
 
27
28
  browse: {
@@ -179,3 +180,5 @@ module.exports = {
179
180
  }
180
181
  }
181
182
  };
183
+
184
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const publicConfig = require('../../services/public-config');
2
2
 
3
- const site = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'site',
5
6
 
6
7
  read: {
@@ -14,4 +15,4 @@ const site = {
14
15
  }
15
16
  };
16
17
 
17
- module.exports = site;
18
+ module.exports = controller;
@@ -1,7 +1,8 @@
1
1
  // Used to call the slack ping service, iirc this was done to avoid circular deps a long time ago
2
2
  const events = require('../../lib/common/events');
3
3
 
4
- module.exports = {
4
+ /** @type {import('@tryghost/api-framework').Controller} */
5
+ const controller = {
5
6
  docName: 'slack',
6
7
  sendTest: {
7
8
  headers: {
@@ -13,3 +14,5 @@ module.exports = {
13
14
  }
14
15
  }
15
16
  };
17
+
18
+ module.exports = controller;
@@ -12,7 +12,8 @@ const allowedTypes = {
12
12
  user: models.User
13
13
  };
14
14
 
15
- module.exports = {
15
+ /** @type {import('@tryghost/api-framework').Controller} */
16
+ const controller = {
16
17
  docName: 'slugs',
17
18
  generate: {
18
19
  headers: {
@@ -52,3 +53,5 @@ module.exports = {
52
53
  }
53
54
  }
54
55
  };
56
+
57
+ module.exports = controller;
@@ -7,7 +7,8 @@ const messages = {
7
7
  snippetAlreadyExists: 'Snippet already exists.'
8
8
  };
9
9
 
10
- module.exports = {
10
+ /** @type {import('@tryghost/api-framework').Controller} */
11
+ const controller = {
11
12
  docName: 'snippets',
12
13
 
13
14
  browse: {
@@ -131,3 +132,5 @@ module.exports = {
131
132
  }
132
133
  }
133
134
  };
135
+
136
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const statsService = require('../../services/stats');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'stats',
5
6
  memberCountHistory: {
6
7
  headers: {
@@ -104,3 +105,5 @@ module.exports = {
104
105
  }
105
106
  }
106
107
  };
108
+
109
+ module.exports = controller;
@@ -9,7 +9,8 @@ const messages = {
9
9
  tagNotFound: 'Tag not found.'
10
10
  };
11
11
 
12
- module.exports = {
12
+ /** @type {import('@tryghost/api-framework').Controller} */
13
+ const controller = {
13
14
  docName: 'tags',
14
15
 
15
16
  browse: {
@@ -76,3 +77,5 @@ module.exports = {
76
77
  }
77
78
  }
78
79
  };
80
+
81
+ module.exports = controller;
@@ -8,7 +8,8 @@ const messages = {
8
8
  tagNotFound: 'Tag not found.'
9
9
  };
10
10
 
11
- module.exports = {
11
+ /** @type {import('@tryghost/api-framework').Controller} */
12
+ const controller = {
12
13
  docName: 'tags',
13
14
 
14
15
  browse: {
@@ -156,3 +157,5 @@ module.exports = {
156
157
  }
157
158
  }
158
159
  };
160
+
161
+ module.exports = controller;
@@ -6,7 +6,8 @@ const models = require('../../models');
6
6
  const events = require('../../lib/common/events');
7
7
  const {settingsCache} = require('../../services/settings-helpers');
8
8
 
9
- module.exports = {
9
+ /** @type {import('@tryghost/api-framework').Controller} */
10
+ const controller = {
10
11
  docName: 'themes',
11
12
 
12
13
  browse: {
@@ -180,3 +181,5 @@ module.exports = {
180
181
  }
181
182
  }
182
183
  };
184
+
185
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const tiersService = require('../../services/tiers');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'tiers',
5
6
 
6
7
  browse: {
@@ -23,3 +24,5 @@ module.exports = {
23
24
  }
24
25
  }
25
26
  };
27
+
28
+ module.exports = controller;
@@ -1,6 +1,7 @@
1
1
  const tiersService = require('../../services/tiers');
2
2
 
3
- module.exports = {
3
+ /** @type {import('@tryghost/api-framework').Controller} */
4
+ const controller = {
4
5
  docName: 'tiers',
5
6
 
6
7
  browse: {
@@ -80,3 +81,5 @@ module.exports = {
80
81
  }
81
82
  }
82
83
  };
84
+
85
+ module.exports = controller;
@@ -73,7 +73,8 @@ function shouldInvalidateCacheAfterChange(model) {
73
73
  return false;
74
74
  }
75
75
 
76
- module.exports = {
76
+ /** @type {import('@tryghost/api-framework').Controller} */
77
+ const controller = {
77
78
  docName: 'users',
78
79
 
79
80
  browse: {
@@ -287,3 +288,5 @@ module.exports = {
287
288
  }
288
289
  }
289
290
  };
291
+
292
+ module.exports = controller;
@@ -19,17 +19,25 @@ module.exports = {
19
19
  * is a Content API implementation - see index.js file.
20
20
  *
21
21
  * @TODO: Move this helper function into a utils.js file.
22
- * @param {Object} frame
22
+ * @param {import('@tryghost/api-framework').Frame} frame
23
23
  * @return {boolean}
24
24
  */
25
25
  isContentAPI: (frame) => {
26
26
  return frame.apiType === 'content';
27
27
  },
28
28
 
29
+ /**
30
+ * @param {import('@tryghost/api-framework').Frame} frame
31
+ * @returns {boolean}
32
+ */
29
33
  isMembersAPI: (frame) => {
30
34
  return frame.apiType === 'members';
31
35
  },
32
36
 
37
+ /**
38
+ * @param {import('@tryghost/api-framework').Frame} frame
39
+ * @returns {boolean}
40
+ */
33
41
  isInternal: (frame) => {
34
42
  return frame.options.context && frame.options.context.internal;
35
43
  }
@@ -12,7 +12,7 @@ const messages = {
12
12
  * @description Handle requests, which need authentication.
13
13
  *
14
14
  * @param {Object} apiConfig - Docname & method of API ctrl
15
- * @param {Object} frame
15
+ * @param {import('@tryghost/api-framework').Frame} frame
16
16
  * @return {Promise}
17
17
  */
18
18
  const nonePublicAuth = (apiConfig, frame) => {
@@ -81,7 +81,7 @@ module.exports = {
81
81
  * @description Handle permission stage for API.
82
82
  *
83
83
  * @param {Object} apiConfig - Docname & method of target ctrl.
84
- * @param {Object} frame
84
+ * @param {import('@tryghost/api-framework').Frame} frame
85
85
  * @return {Promise}
86
86
  */
87
87
  handle(apiConfig, frame) {