ghost 5.50.3 → 5.51.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 (192) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.51.0.tgz +0 -0
  2. package/components/{tryghost-adapter-cache-redis-5.50.3.tgz → tryghost-adapter-cache-redis-5.51.0.tgz} +0 -0
  3. package/components/{tryghost-adapter-manager-5.50.3.tgz → tryghost-adapter-manager-5.51.0.tgz} +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.51.0.tgz +0 -0
  5. package/components/{tryghost-api-framework-5.50.3.tgz → tryghost-api-framework-5.51.0.tgz} +0 -0
  6. package/components/{tryghost-api-version-compatibility-service-5.50.3.tgz → tryghost-api-version-compatibility-service-5.51.0.tgz} +0 -0
  7. package/components/tryghost-audience-feedback-5.51.0.tgz +0 -0
  8. package/components/tryghost-bootstrap-socket-5.51.0.tgz +0 -0
  9. package/components/tryghost-collections-5.51.0.tgz +0 -0
  10. package/components/tryghost-constants-5.51.0.tgz +0 -0
  11. package/components/tryghost-custom-theme-settings-service-5.51.0.tgz +0 -0
  12. package/components/{tryghost-data-generator-5.50.3.tgz → tryghost-data-generator-5.51.0.tgz} +0 -0
  13. package/components/tryghost-domain-events-5.51.0.tgz +0 -0
  14. package/components/tryghost-dynamic-routing-events-5.51.0.tgz +0 -0
  15. package/components/tryghost-email-analytics-provider-mailgun-5.51.0.tgz +0 -0
  16. package/components/{tryghost-email-analytics-service-5.50.3.tgz → tryghost-email-analytics-service-5.51.0.tgz} +0 -0
  17. package/components/tryghost-email-content-generator-5.51.0.tgz +0 -0
  18. package/components/{tryghost-email-events-5.50.3.tgz → tryghost-email-events-5.51.0.tgz} +0 -0
  19. package/components/tryghost-email-service-5.51.0.tgz +0 -0
  20. package/components/tryghost-email-suppression-list-5.51.0.tgz +0 -0
  21. package/components/tryghost-event-aware-cache-wrapper-5.51.0.tgz +0 -0
  22. package/components/{tryghost-express-dynamic-redirects-5.50.3.tgz → tryghost-express-dynamic-redirects-5.51.0.tgz} +0 -0
  23. package/components/{tryghost-external-media-inliner-5.50.3.tgz → tryghost-external-media-inliner-5.51.0.tgz} +0 -0
  24. package/components/{tryghost-extract-api-key-5.50.3.tgz → tryghost-extract-api-key-5.51.0.tgz} +0 -0
  25. package/components/tryghost-html-to-plaintext-5.51.0.tgz +0 -0
  26. package/components/tryghost-i18n-5.51.0.tgz +0 -0
  27. package/components/{tryghost-importer-handler-content-files-5.50.3.tgz → tryghost-importer-handler-content-files-5.51.0.tgz} +0 -0
  28. package/components/tryghost-importer-revue-5.51.0.tgz +0 -0
  29. package/components/tryghost-in-memory-repository-5.51.0.tgz +0 -0
  30. package/components/{tryghost-job-manager-5.50.3.tgz → tryghost-job-manager-5.51.0.tgz} +0 -0
  31. package/components/{tryghost-link-redirects-5.50.3.tgz → tryghost-link-redirects-5.51.0.tgz} +0 -0
  32. package/components/tryghost-link-replacer-5.51.0.tgz +0 -0
  33. package/components/{tryghost-link-tracking-5.50.3.tgz → tryghost-link-tracking-5.51.0.tgz} +0 -0
  34. package/components/{tryghost-magic-link-5.50.3.tgz → tryghost-magic-link-5.51.0.tgz} +0 -0
  35. package/components/{tryghost-mailgun-client-5.50.3.tgz → tryghost-mailgun-client-5.51.0.tgz} +0 -0
  36. package/components/{tryghost-member-attribution-5.50.3.tgz → tryghost-member-attribution-5.51.0.tgz} +0 -0
  37. package/components/{tryghost-member-events-5.50.3.tgz → tryghost-member-events-5.51.0.tgz} +0 -0
  38. package/components/{tryghost-members-api-5.50.3.tgz → tryghost-members-api-5.51.0.tgz} +0 -0
  39. package/components/{tryghost-members-csv-5.50.3.tgz → tryghost-members-csv-5.51.0.tgz} +0 -0
  40. package/components/tryghost-members-events-service-5.51.0.tgz +0 -0
  41. package/components/tryghost-members-importer-5.51.0.tgz +0 -0
  42. package/components/{tryghost-members-offers-5.50.3.tgz → tryghost-members-offers-5.51.0.tgz} +0 -0
  43. package/components/{tryghost-members-payments-5.50.3.tgz → tryghost-members-payments-5.51.0.tgz} +0 -0
  44. package/components/tryghost-members-ssr-5.51.0.tgz +0 -0
  45. package/components/tryghost-members-stripe-service-5.51.0.tgz +0 -0
  46. package/components/{tryghost-mentions-email-report-5.50.3.tgz → tryghost-mentions-email-report-5.51.0.tgz} +0 -0
  47. package/components/{tryghost-milestones-5.50.3.tgz → tryghost-milestones-5.51.0.tgz} +0 -0
  48. package/components/{tryghost-minifier-5.50.3.tgz → tryghost-minifier-5.51.0.tgz} +0 -0
  49. package/components/tryghost-mw-api-version-mismatch-5.51.0.tgz +0 -0
  50. package/components/{tryghost-mw-cache-control-5.50.3.tgz → tryghost-mw-cache-control-5.51.0.tgz} +0 -0
  51. package/components/tryghost-mw-error-handler-5.51.0.tgz +0 -0
  52. package/components/tryghost-mw-session-from-token-5.51.0.tgz +0 -0
  53. package/components/tryghost-mw-update-user-last-seen-5.51.0.tgz +0 -0
  54. package/components/{tryghost-mw-version-match-5.50.3.tgz → tryghost-mw-version-match-5.51.0.tgz} +0 -0
  55. package/components/tryghost-mw-vhost-5.51.0.tgz +0 -0
  56. package/components/{tryghost-oembed-service-5.50.3.tgz → tryghost-oembed-service-5.51.0.tgz} +0 -0
  57. package/components/{tryghost-package-json-5.50.3.tgz → tryghost-package-json-5.51.0.tgz} +0 -0
  58. package/components/tryghost-post-revisions-5.51.0.tgz +0 -0
  59. package/components/tryghost-posts-service-5.51.0.tgz +0 -0
  60. package/components/{tryghost-referrers-5.50.3.tgz → tryghost-referrers-5.51.0.tgz} +0 -0
  61. package/components/{tryghost-security-5.50.3.tgz → tryghost-security-5.51.0.tgz} +0 -0
  62. package/components/tryghost-session-service-5.51.0.tgz +0 -0
  63. package/components/tryghost-settings-path-manager-5.51.0.tgz +0 -0
  64. package/components/{tryghost-slack-notifications-5.50.3.tgz → tryghost-slack-notifications-5.51.0.tgz} +0 -0
  65. package/components/{tryghost-staff-service-5.50.3.tgz → tryghost-staff-service-5.51.0.tgz} +0 -0
  66. package/components/{tryghost-stats-service-5.50.3.tgz → tryghost-stats-service-5.51.0.tgz} +0 -0
  67. package/components/{tryghost-tiers-5.50.3.tgz → tryghost-tiers-5.51.0.tgz} +0 -0
  68. package/components/{tryghost-update-check-service-5.50.3.tgz → tryghost-update-check-service-5.51.0.tgz} +0 -0
  69. package/components/tryghost-verification-trigger-5.51.0.tgz +0 -0
  70. package/components/tryghost-version-notifications-data-service-5.51.0.tgz +0 -0
  71. package/components/{tryghost-webmentions-5.50.3.tgz → tryghost-webmentions-5.51.0.tgz} +0 -0
  72. package/core/boot.js +2 -0
  73. package/core/built/admin/assets/{chunk.143.4e9bfd70a2b07a1514b1.js → chunk.143.8807e7591c4589efad15.js} +5 -5
  74. package/core/built/admin/assets/{chunk.178.98f6d1db548183bddeca.js → chunk.178.5357f76a74bcd455226a.js} +4 -4
  75. package/core/built/admin/assets/{chunk.976.c9abe301de6422af2ab2.js → chunk.976.c3f393d6685c89bbaaca.js} +3 -3
  76. package/core/built/admin/assets/{ghost-f816730cbd6958a4ab1891ddeab0e65f.js → ghost-22c9d9cef7aa0ff08294f8ea69c344dd.js} +3696 -3690
  77. package/core/built/admin/assets/ghost-dark-2ec2e32362fa867723379a286fd0f0bd.css +1 -0
  78. package/core/built/admin/assets/ghost-e6482a0a19b228a9b9e71a9c5ea134ba.css +1 -0
  79. package/core/built/admin/index.html +5 -5
  80. package/core/frontend/src/cards/css/signup.css +1 -1
  81. package/core/server/api/endpoints/actions.js +3 -0
  82. package/core/server/api/endpoints/announcements.js +3 -0
  83. package/core/server/api/endpoints/authentication.js +18 -0
  84. package/core/server/api/endpoints/authors-public.js +6 -0
  85. package/core/server/api/endpoints/collections.js +31 -25
  86. package/core/server/api/endpoints/comments-members.js +30 -1
  87. package/core/server/api/endpoints/comments.js +3 -0
  88. package/core/server/api/endpoints/config.js +3 -0
  89. package/core/server/api/endpoints/custom-theme-settings.js +3 -0
  90. package/core/server/api/endpoints/db.js +8 -1
  91. package/core/server/api/endpoints/email-post.js +3 -0
  92. package/core/server/api/endpoints/email-previews.js +6 -1
  93. package/core/server/api/endpoints/emails.js +24 -0
  94. package/core/server/api/endpoints/explore.js +3 -0
  95. package/core/server/api/endpoints/feedback-members.js +3 -0
  96. package/core/server/api/endpoints/files.js +3 -0
  97. package/core/server/api/endpoints/identities.js +3 -0
  98. package/core/server/api/endpoints/images.js +3 -0
  99. package/core/server/api/endpoints/integrations.js +15 -0
  100. package/core/server/api/endpoints/invites.js +12 -0
  101. package/core/server/api/endpoints/labels.js +12 -2
  102. package/core/server/api/endpoints/links.js +3 -0
  103. package/core/server/api/endpoints/mail.js +3 -0
  104. package/core/server/api/endpoints/media.js +6 -0
  105. package/core/server/api/endpoints/member-signin-urls.js +3 -0
  106. package/core/server/api/endpoints/members-stripe-connect.js +3 -0
  107. package/core/server/api/endpoints/members.js +41 -9
  108. package/core/server/api/endpoints/mentions.js +6 -1
  109. package/core/server/api/endpoints/newsletters-public.js +3 -0
  110. package/core/server/api/endpoints/newsletters.js +9 -0
  111. package/core/server/api/endpoints/notifications.js +12 -0
  112. package/core/server/api/endpoints/oembed.js +3 -0
  113. package/core/server/api/endpoints/offers-public.js +3 -0
  114. package/core/server/api/endpoints/offers.js +6 -0
  115. package/core/server/api/endpoints/pages-public.js +6 -0
  116. package/core/server/api/endpoints/pages.js +15 -6
  117. package/core/server/api/endpoints/posts-public.js +6 -0
  118. package/core/server/api/endpoints/posts.js +17 -20
  119. package/core/server/api/endpoints/previews.js +3 -0
  120. package/core/server/api/endpoints/redirects.js +2 -1
  121. package/core/server/api/endpoints/roles.js +3 -0
  122. package/core/server/api/endpoints/schedules.js +6 -1
  123. package/core/server/api/endpoints/settings-public.js +3 -0
  124. package/core/server/api/endpoints/settings.js +11 -1
  125. package/core/server/api/endpoints/site.js +3 -0
  126. package/core/server/api/endpoints/slack.js +3 -0
  127. package/core/server/api/endpoints/snippets.js +15 -4
  128. package/core/server/api/endpoints/stats.js +15 -0
  129. package/core/server/api/endpoints/tags-public.js +6 -0
  130. package/core/server/api/endpoints/tags.js +9 -1
  131. package/core/server/api/endpoints/themes.js +15 -2
  132. package/core/server/api/endpoints/tiers-public.js +3 -0
  133. package/core/server/api/endpoints/tiers.js +6 -0
  134. package/core/server/api/endpoints/users.js +21 -1
  135. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +13 -1
  136. package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
  137. package/core/server/api/endpoints/webhooks.js +8 -2
  138. package/core/server/data/migrations/versions/5.51/2023-05-30-19-03-update-pintura-setting.js +19 -0
  139. package/core/server/data/migrations/versions/5.51/2023-06-07-10-17-add-collections-crud-persmissions.js +54 -0
  140. package/core/server/data/schema/default-settings/default-settings.json +1 -1
  141. package/core/server/data/schema/fixtures/FixtureManager.js +1 -0
  142. package/core/server/data/schema/fixtures/fixtures.json +35 -5
  143. package/core/server/services/collections/built-in-collections.js +8 -0
  144. package/core/server/services/collections/index.js +34 -10
  145. package/core/server/services/collections/update-events.js +15 -0
  146. package/core/server/services/posts/posts-service.js +3 -1
  147. package/core/server/services/segment/DomainEventsAnalytics.js +83 -0
  148. package/core/server/services/segment/ModelEventsAnalytics.js +108 -0
  149. package/core/server/services/segment/index.js +26 -38
  150. package/core/server/web/api/endpoints/admin/middleware.js +4 -0
  151. package/core/shared/config/defaults.json +1 -1
  152. package/core/shared/config/overrides.json +1 -0
  153. package/core/shared/labs.js +3 -3
  154. package/package.json +137 -137
  155. package/yarn.lock +44 -34
  156. package/components/tryghost-adapter-cache-memory-ttl-5.50.3.tgz +0 -0
  157. package/components/tryghost-announcement-bar-settings-5.50.3.tgz +0 -0
  158. package/components/tryghost-audience-feedback-5.50.3.tgz +0 -0
  159. package/components/tryghost-bootstrap-socket-5.50.3.tgz +0 -0
  160. package/components/tryghost-collections-5.50.3.tgz +0 -0
  161. package/components/tryghost-constants-5.50.3.tgz +0 -0
  162. package/components/tryghost-custom-theme-settings-service-5.50.3.tgz +0 -0
  163. package/components/tryghost-domain-events-5.50.3.tgz +0 -0
  164. package/components/tryghost-dynamic-routing-events-5.50.3.tgz +0 -0
  165. package/components/tryghost-email-analytics-provider-mailgun-5.50.3.tgz +0 -0
  166. package/components/tryghost-email-content-generator-5.50.3.tgz +0 -0
  167. package/components/tryghost-email-service-5.50.3.tgz +0 -0
  168. package/components/tryghost-email-suppression-list-5.50.3.tgz +0 -0
  169. package/components/tryghost-event-aware-cache-wrapper-5.50.3.tgz +0 -0
  170. package/components/tryghost-html-to-plaintext-5.50.3.tgz +0 -0
  171. package/components/tryghost-i18n-5.50.3.tgz +0 -0
  172. package/components/tryghost-importer-revue-5.50.3.tgz +0 -0
  173. package/components/tryghost-in-memory-repository-5.50.3.tgz +0 -0
  174. package/components/tryghost-link-replacer-5.50.3.tgz +0 -0
  175. package/components/tryghost-members-events-service-5.50.3.tgz +0 -0
  176. package/components/tryghost-members-importer-5.50.3.tgz +0 -0
  177. package/components/tryghost-members-ssr-5.50.3.tgz +0 -0
  178. package/components/tryghost-members-stripe-service-5.50.3.tgz +0 -0
  179. package/components/tryghost-mw-api-version-mismatch-5.50.3.tgz +0 -0
  180. package/components/tryghost-mw-error-handler-5.50.3.tgz +0 -0
  181. package/components/tryghost-mw-session-from-token-5.50.3.tgz +0 -0
  182. package/components/tryghost-mw-update-user-last-seen-5.50.3.tgz +0 -0
  183. package/components/tryghost-mw-vhost-5.50.3.tgz +0 -0
  184. package/components/tryghost-post-revisions-5.50.3.tgz +0 -0
  185. package/components/tryghost-posts-service-5.50.3.tgz +0 -0
  186. package/components/tryghost-session-service-5.50.3.tgz +0 -0
  187. package/components/tryghost-settings-path-manager-5.50.3.tgz +0 -0
  188. package/components/tryghost-verification-trigger-5.50.3.tgz +0 -0
  189. package/components/tryghost-version-notifications-data-service-5.50.3.tgz +0 -0
  190. package/core/built/admin/assets/ghost-01b4eb0cff8ee8478af9d4074a256756.css +0 -1
  191. package/core/built/admin/assets/ghost-dark-8dd7d236d17be6dbef26039409d0c34d.css +0 -1
  192. /package/core/built/admin/assets/{chunk.976.c9abe301de6422af2ab2.js.LICENSE.txt → chunk.976.c3f393d6685c89bbaaca.js.LICENSE.txt} +0 -0
@@ -14,6 +14,9 @@ module.exports = {
14
14
  docName: 'labels',
15
15
 
16
16
  browse: {
17
+ headers: {
18
+ cacheInvalidate: false
19
+ },
17
20
  options: [
18
21
  'include',
19
22
  'filter',
@@ -36,6 +39,9 @@ module.exports = {
36
39
  },
37
40
 
38
41
  read: {
42
+ headers: {
43
+ cacheInvalidate: false
44
+ },
39
45
  options: [
40
46
  'include',
41
47
  'filter',
@@ -69,7 +75,9 @@ module.exports = {
69
75
 
70
76
  add: {
71
77
  statusCode: 201,
72
- headers: {},
78
+ headers: {
79
+ cacheInvalidate: false
80
+ },
73
81
  options: [
74
82
  'include'
75
83
  ],
@@ -94,7 +102,9 @@ module.exports = {
94
102
  },
95
103
 
96
104
  edit: {
97
- headers: {},
105
+ headers: {
106
+ cacheInvalidate: false
107
+ },
98
108
  options: [
99
109
  'id',
100
110
  'include'
@@ -4,6 +4,9 @@ const INVALIDATE_ALL_REDIRECTS = '/r/*';
4
4
  module.exports = {
5
5
  docName: 'links',
6
6
  browse: {
7
+ headers: {
8
+ cacheInvalidate: false
9
+ },
7
10
  options: [
8
11
  'filter'
9
12
  ],
@@ -40,6 +40,9 @@ module.exports = {
40
40
  docName: 'mail',
41
41
 
42
42
  send: {
43
+ headers: {
44
+ cacheInvalidate: false
45
+ },
43
46
  permissions: true,
44
47
  query(frame) {
45
48
  return _private.sendMail(frame.data);
@@ -5,6 +5,9 @@ module.exports = {
5
5
  docName: 'media',
6
6
  upload: {
7
7
  statusCode: 201,
8
+ headers: {
9
+ cacheInvalidate: false
10
+ },
8
11
  permissions: false,
9
12
  async query(frame) {
10
13
  let thumbnailPath = null;
@@ -22,6 +25,9 @@ module.exports = {
22
25
  },
23
26
 
24
27
  uploadThumbnail: {
28
+ headers: {
29
+ cacheInvalidate: false
30
+ },
25
31
  permissions: false,
26
32
  data: [
27
33
  'url',
@@ -9,6 +9,9 @@ const messages = {
9
9
  module.exports = {
10
10
  docName: 'member_signin_urls',
11
11
  read: {
12
+ headers: {
13
+ cacheInvalidate: false
14
+ },
12
15
  data: [
13
16
  'id'
14
17
  ],
@@ -3,6 +3,9 @@ const membersService = require('../../services/members');
3
3
  module.exports = {
4
4
  docName: 'members_stripe_connect',
5
5
  auth: {
6
+ headers: {
7
+ cacheInvalidate: false
8
+ },
6
9
  permissions: true,
7
10
  options: [
8
11
  'mode'
@@ -33,6 +33,9 @@ module.exports = {
33
33
  docName: 'members',
34
34
 
35
35
  browse: {
36
+ headers: {
37
+ cacheInvalidate: false
38
+ },
36
39
  options: [
37
40
  'limit',
38
41
  'fields',
@@ -62,7 +65,9 @@ module.exports = {
62
65
  options: [
63
66
  'include'
64
67
  ],
65
- headers: {},
68
+ headers: {
69
+ cacheInvalidate: false
70
+ },
66
71
  data: [
67
72
  'id',
68
73
  'email'
@@ -90,7 +95,9 @@ module.exports = {
90
95
 
91
96
  add: {
92
97
  statusCode: 201,
93
- headers: {},
98
+ headers: {
99
+ cacheInvalidate: false
100
+ },
94
101
  options: [
95
102
  'send_email',
96
103
  'email_type'
@@ -115,7 +122,9 @@ module.exports = {
115
122
 
116
123
  edit: {
117
124
  statusCode: 200,
118
- headers: {},
125
+ headers: {
126
+ cacheInvalidate: false
127
+ },
119
128
  options: [
120
129
  'id'
121
130
  ],
@@ -136,7 +145,9 @@ module.exports = {
136
145
 
137
146
  editSubscription: {
138
147
  statusCode: 200,
139
- headers: {},
148
+ headers: {
149
+ cacheInvalidate: false
150
+ },
140
151
  options: [
141
152
  'id',
142
153
  'subscription_id'
@@ -196,7 +207,9 @@ module.exports = {
196
207
 
197
208
  createSubscription: {
198
209
  statusCode: 200,
199
- headers: {},
210
+ headers: {
211
+ cacheInvalidate: false
212
+ },
200
213
  options: [
201
214
  'id'
202
215
  ],
@@ -238,7 +251,9 @@ module.exports = {
238
251
 
239
252
  destroy: {
240
253
  statusCode: 204,
241
- headers: {},
254
+ headers: {
255
+ cacheInvalidate: false
256
+ },
242
257
  options: [
243
258
  'id',
244
259
  'cancel'
@@ -262,7 +277,9 @@ module.exports = {
262
277
 
263
278
  bulkDestroy: {
264
279
  statusCode: 200,
265
- headers: {},
280
+ headers: {
281
+ cacheInvalidate: false
282
+ },
266
283
  options: [
267
284
  'all',
268
285
  'filter',
@@ -290,7 +307,9 @@ module.exports = {
290
307
 
291
308
  bulkEdit: {
292
309
  statusCode: 200,
293
- headers: {},
310
+ headers: {
311
+ cacheInvalidate: false
312
+ },
294
313
  options: [
295
314
  'all',
296
315
  'filter',
@@ -329,7 +348,8 @@ module.exports = {
329
348
  const datetime = (new Date()).toJSON().substring(0, 10);
330
349
  return `members.${datetime}.csv`;
331
350
  }
332
- }
351
+ },
352
+ cacheInvalidate: false
333
353
  },
334
354
  response: {
335
355
  format: 'plain'
@@ -346,6 +366,9 @@ module.exports = {
346
366
  },
347
367
 
348
368
  importCSV: {
369
+ headers: {
370
+ cacheInvalidate: false
371
+ },
349
372
  statusCode(result) {
350
373
  if (result && result.meta && result.meta.stats && result.meta.stats.imported !== null) {
351
374
  return 201;
@@ -388,6 +411,9 @@ module.exports = {
388
411
  },
389
412
 
390
413
  memberStats: {
414
+ headers: {
415
+ cacheInvalidate: false
416
+ },
391
417
  permissions: {
392
418
  method: 'browse'
393
419
  },
@@ -410,6 +436,9 @@ module.exports = {
410
436
  },
411
437
 
412
438
  mrrStats: {
439
+ headers: {
440
+ cacheInvalidate: false
441
+ },
413
442
  permissions: {
414
443
  method: 'browse'
415
444
  },
@@ -434,6 +463,9 @@ module.exports = {
434
463
  },
435
464
 
436
465
  activityFeed: {
466
+ headers: {
467
+ cacheInvalidate: false
468
+ },
437
469
  options: [
438
470
  'limit',
439
471
  'filter'
@@ -3,6 +3,9 @@ const mentions = require('../../services/mentions');
3
3
  module.exports = {
4
4
  docName: 'mentions',
5
5
  browse: {
6
+ headers: {
7
+ cacheInvalidate: false
8
+ },
6
9
  options: [
7
10
  'filter',
8
11
  'fields',
@@ -20,7 +23,9 @@ module.exports = {
20
23
 
21
24
  receive: {
22
25
  statusCode: 202, // Required for the spec because we don't have a status page
23
- headers: {},
26
+ headers: {
27
+ cacheInvalidate: false
28
+ },
24
29
  options: [],
25
30
  permissions: false,
26
31
  response: {
@@ -4,6 +4,9 @@ module.exports = {
4
4
  docName: 'newsletters',
5
5
 
6
6
  browse: {
7
+ headers: {
8
+ cacheInvalidate: false
9
+ },
7
10
  options: [
8
11
  'filter',
9
12
  'fields',
@@ -7,6 +7,9 @@ module.exports = {
7
7
  docName: 'newsletters',
8
8
 
9
9
  browse: {
10
+ headers: {
11
+ cacheInvalidate: false
12
+ },
10
13
  options: [
11
14
  'include',
12
15
  'filter',
@@ -29,6 +32,9 @@ module.exports = {
29
32
  },
30
33
 
31
34
  read: {
35
+ headers: {
36
+ cacheInvalidate: false
37
+ },
32
38
  options: [
33
39
  'include',
34
40
  'fields',
@@ -102,6 +108,9 @@ module.exports = {
102
108
  },
103
109
 
104
110
  verifyPropertyUpdate: {
111
+ headers: {
112
+ cacheInvalidate: false
113
+ },
105
114
  permissions: {
106
115
  method: 'edit'
107
116
  },
@@ -7,6 +7,9 @@ module.exports = {
7
7
  docName: 'notifications',
8
8
 
9
9
  browse: {
10
+ headers: {
11
+ cacheInvalidate: false
12
+ },
10
13
  permissions: true,
11
14
  query(frame) {
12
15
  return notifications.browse({
@@ -25,6 +28,9 @@ module.exports = {
25
28
  return 200;
26
29
  }
27
30
  },
31
+ headers: {
32
+ cacheInvalidate: false
33
+ },
28
34
  permissions: true,
29
35
  async query(frame) {
30
36
  const {allNotifications, notificationsToAdd} = notifications.add({
@@ -45,6 +51,9 @@ module.exports = {
45
51
 
46
52
  destroy: {
47
53
  statusCode: 204,
54
+ headers: {
55
+ cacheInvalidate: false
56
+ },
48
57
  options: ['notification_id'],
49
58
  validation: {
50
59
  options: {
@@ -76,6 +85,9 @@ module.exports = {
76
85
  */
77
86
  destroyAll: {
78
87
  statusCode: 204,
88
+ headers: {
89
+ cacheInvalidate: false
90
+ },
79
91
  permissions: {
80
92
  method: 'destroy'
81
93
  },
@@ -4,6 +4,9 @@ module.exports = {
4
4
  docName: 'oembed',
5
5
 
6
6
  read: {
7
+ headers: {
8
+ cacheInvalidate: false
9
+ },
7
10
  permissions: false,
8
11
  data: [
9
12
  'url',
@@ -10,6 +10,9 @@ module.exports = {
10
10
  docName: 'offers',
11
11
 
12
12
  read: {
13
+ headers: {
14
+ cacheInvalidate: false
15
+ },
13
16
  data: ['id'],
14
17
  permissions: true,
15
18
  async query(frame) {
@@ -10,6 +10,9 @@ module.exports = {
10
10
  docName: 'offers',
11
11
 
12
12
  browse: {
13
+ headers: {
14
+ cacheInvalidate: false
15
+ },
13
16
  options: [
14
17
  'filter'
15
18
  ],
@@ -23,6 +26,9 @@ module.exports = {
23
26
  },
24
27
 
25
28
  read: {
29
+ headers: {
30
+ cacheInvalidate: false
31
+ },
26
32
  data: ['id'],
27
33
  permissions: true,
28
34
  async query(frame) {
@@ -24,6 +24,9 @@ module.exports = {
24
24
  docName: 'pages',
25
25
 
26
26
  browse: {
27
+ headers: {
28
+ cacheInvalidate: false
29
+ },
27
30
  options: [
28
31
  'include',
29
32
  'filter',
@@ -56,6 +59,9 @@ module.exports = {
56
59
  },
57
60
 
58
61
  read: {
62
+ headers: {
63
+ cacheInvalidate: false
64
+ },
59
65
  options: [
60
66
  'include',
61
67
  'fields',
@@ -14,6 +14,9 @@ const postsService = getPostServiceInstance();
14
14
  module.exports = {
15
15
  docName: 'pages',
16
16
  browse: {
17
+ headers: {
18
+ cacheInvalidate: false
19
+ },
17
20
  options: [
18
21
  'include',
19
22
  'filter',
@@ -45,6 +48,9 @@ module.exports = {
45
48
  },
46
49
 
47
50
  read: {
51
+ headers: {
52
+ cacheInvalidate: false
53
+ },
48
54
  options: [
49
55
  'include',
50
56
  'fields',
@@ -90,7 +96,9 @@ module.exports = {
90
96
 
91
97
  add: {
92
98
  statusCode: 201,
93
- headers: {},
99
+ headers: {
100
+ cacheInvalidate: false
101
+ },
94
102
  options: [
95
103
  'include',
96
104
  'formats',
@@ -113,9 +121,7 @@ module.exports = {
113
121
  query(frame) {
114
122
  return models.Post.add(frame.data.pages[0], frame.options)
115
123
  .then((model) => {
116
- if (model.get('status') !== 'published') {
117
- this.headers.cacheInvalidate = false;
118
- } else {
124
+ if (model.get('status') === 'published') {
119
125
  this.headers.cacheInvalidate = true;
120
126
  }
121
127
 
@@ -125,7 +131,9 @@ module.exports = {
125
131
  },
126
132
 
127
133
  edit: {
128
- headers: {},
134
+ headers: {
135
+ cacheInvalidate: false
136
+ },
129
137
  options: [
130
138
  'include',
131
139
  'id',
@@ -245,7 +253,8 @@ module.exports = {
245
253
  headers: {
246
254
  location: {
247
255
  resolve: postsService.generateCopiedPostLocationFromUrl
248
- }
256
+ },
257
+ cacheInvalidate: false
249
258
  },
250
259
  options: [
251
260
  'id',
@@ -25,6 +25,9 @@ module.exports = {
25
25
  docName: 'posts',
26
26
 
27
27
  browse: {
28
+ headers: {
29
+ cacheInvalidate: false
30
+ },
28
31
  cache: postsPublicService.api?.cache,
29
32
  options: [
30
33
  'include',
@@ -58,6 +61,9 @@ module.exports = {
58
61
  },
59
62
 
60
63
  read: {
64
+ headers: {
65
+ cacheInvalidate: false
66
+ },
61
67
  options: [
62
68
  'include',
63
69
  'fields',
@@ -1,6 +1,4 @@
1
1
  const models = require('../../models');
2
- const tpl = require('@tryghost/tpl');
3
- const errors = require('@tryghost/errors');
4
2
  const getPostServiceInstance = require('../../services/posts/posts-service');
5
3
  const allowedIncludes = [
6
4
  'tags',
@@ -21,15 +19,14 @@ const allowedIncludes = [
21
19
  ];
22
20
  const unsafeAttrs = ['status', 'authors', 'visibility'];
23
21
 
24
- const messages = {
25
- postNotFound: 'Post not found.'
26
- };
27
-
28
22
  const postsService = getPostServiceInstance();
29
23
 
30
24
  module.exports = {
31
25
  docName: 'posts',
32
26
  browse: {
27
+ headers: {
28
+ cacheInvalidate: false
29
+ },
33
30
  options: [
34
31
  'include',
35
32
  'filter',
@@ -72,7 +69,8 @@ module.exports = {
72
69
  const datetime = (new Date()).toJSON().substring(0, 10);
73
70
  return `post-analytics.${datetime}.csv`;
74
71
  }
75
- }
72
+ },
73
+ cacheInvalidate: false
76
74
  },
77
75
  response: {
78
76
  format: 'plain'
@@ -89,6 +87,9 @@ module.exports = {
89
87
  },
90
88
 
91
89
  read: {
90
+ headers: {
91
+ cacheInvalidate: false
92
+ },
92
93
  options: [
93
94
  'include',
94
95
  'fields',
@@ -118,22 +119,15 @@ module.exports = {
118
119
  unsafeAttrs: unsafeAttrs
119
120
  },
120
121
  query(frame) {
121
- return models.Post.findOne(frame.data, frame.options)
122
- .then((model) => {
123
- if (!model) {
124
- throw new errors.NotFoundError({
125
- message: tpl(messages.postNotFound)
126
- });
127
- }
128
-
129
- return model;
130
- });
122
+ return postsService.readPost(frame);
131
123
  }
132
124
  },
133
125
 
134
126
  add: {
135
127
  statusCode: 201,
136
- headers: {},
128
+ headers: {
129
+ cacheInvalidate: false
130
+ },
137
131
  options: [
138
132
  'include',
139
133
  'formats',
@@ -167,7 +161,9 @@ module.exports = {
167
161
  },
168
162
 
169
163
  edit: {
170
- headers: {},
164
+ headers: {
165
+ cacheInvalidate: false
166
+ },
171
167
  options: [
172
168
  'include',
173
169
  'id',
@@ -286,7 +282,8 @@ module.exports = {
286
282
  headers: {
287
283
  location: {
288
284
  resolve: postsService.generateCopiedPostLocationFromUrl
289
- }
285
+ },
286
+ cacheInvalidate: false
290
287
  },
291
288
  options: [
292
289
  'id',
@@ -11,6 +11,9 @@ module.exports = {
11
11
  docName: 'previews',
12
12
 
13
13
  read: {
14
+ headers: {
15
+ cacheInvalidate: false
16
+ },
14
17
  permissions: true,
15
18
  options: [
16
19
  'include'
@@ -18,7 +18,8 @@ module.exports = {
18
18
  : 'redirects.yaml';
19
19
  });
20
20
  }
21
- }
21
+ },
22
+ cacheInvalidate: false
22
23
  },
23
24
  permissions: true,
24
25
  response: {
@@ -3,6 +3,9 @@ const models = require('../../models');
3
3
  module.exports = {
4
4
  docName: 'roles',
5
5
  browse: {
6
+ headers: {
7
+ cacheInvalidate: false
8
+ },
6
9
  options: [
7
10
  'permissions'
8
11
  ],
@@ -5,7 +5,9 @@ const postSchedulingService = require('../../services/posts/post-scheduling-serv
5
5
  module.exports = {
6
6
  docName: 'schedules',
7
7
  publish: {
8
- headers: {},
8
+ headers: {
9
+ cacheInvalidate: false
10
+ },
9
11
  options: [
10
12
  'id',
11
13
  'resource'
@@ -50,6 +52,9 @@ module.exports = {
50
52
  getScheduled: {
51
53
  // NOTE: this method is for internal use only by DefaultScheduler
52
54
  // it is not exposed anywhere!
55
+ headers: {
56
+ cacheInvalidate: false
57
+ },
53
58
  permissions: false,
54
59
  validation: {
55
60
  options: {
@@ -6,6 +6,9 @@ module.exports = {
6
6
  docName: 'settings',
7
7
 
8
8
  browse: {
9
+ headers: {
10
+ cacheInvalidate: false
11
+ },
9
12
  permissions: true,
10
13
  query() {
11
14
  // @TODO: decouple settings cache from API knowledge
@@ -25,6 +25,9 @@ module.exports = {
25
25
  docName: 'settings',
26
26
 
27
27
  browse: {
28
+ headers: {
29
+ cacheInvalidate: false
30
+ },
28
31
  options: ['group'],
29
32
  permissions: true,
30
33
  query(frame) {
@@ -33,6 +36,9 @@ module.exports = {
33
36
  },
34
37
 
35
38
  read: {
39
+ headers: {
40
+ cacheInvalidate: false
41
+ },
36
42
  options: ['key'],
37
43
  validation: {
38
44
  options: {
@@ -73,6 +79,9 @@ module.exports = {
73
79
 
74
80
  disconnectStripeConnectIntegration: {
75
81
  statusCode: 204,
82
+ headers: {
83
+ cacheInvalidate: false
84
+ },
76
85
  permissions: {
77
86
  method: 'edit'
78
87
  },
@@ -158,7 +167,8 @@ module.exports = {
158
167
  disposition: {
159
168
  type: 'yaml',
160
169
  value: 'routes.yaml'
161
- }
170
+ },
171
+ cacheInvalidate: false
162
172
  },
163
173
  response: {
164
174
  format: 'plain'