ghost 5.115.1 → 5.116.1

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 (243) hide show
  1. package/components/{tryghost-api-framework-5.115.1.tgz → tryghost-api-framework-5.116.1.tgz} +0 -0
  2. package/components/tryghost-constants-5.116.1.tgz +0 -0
  3. package/components/tryghost-custom-fonts-5.116.1.tgz +0 -0
  4. package/components/{tryghost-custom-theme-settings-service-5.115.1.tgz → tryghost-custom-theme-settings-service-5.116.1.tgz} +0 -0
  5. package/components/{tryghost-domain-events-5.115.1.tgz → tryghost-domain-events-5.116.1.tgz} +0 -0
  6. package/components/{tryghost-donations-5.115.1.tgz → tryghost-donations-5.116.1.tgz} +0 -0
  7. package/components/tryghost-email-addresses-5.116.1.tgz +0 -0
  8. package/components/tryghost-email-service-5.116.1.tgz +0 -0
  9. package/components/tryghost-email-suppression-list-5.116.1.tgz +0 -0
  10. package/components/tryghost-html-to-plaintext-5.116.1.tgz +0 -0
  11. package/components/tryghost-i18n-5.116.1.tgz +0 -0
  12. package/components/tryghost-job-manager-5.116.1.tgz +0 -0
  13. package/components/tryghost-link-replacer-5.116.1.tgz +0 -0
  14. package/components/tryghost-magic-link-5.116.1.tgz +0 -0
  15. package/components/{tryghost-member-attribution-5.115.1.tgz → tryghost-member-attribution-5.116.1.tgz} +0 -0
  16. package/components/tryghost-member-events-5.116.1.tgz +0 -0
  17. package/components/tryghost-members-api-5.116.1.tgz +0 -0
  18. package/components/tryghost-members-csv-5.116.1.tgz +0 -0
  19. package/components/{tryghost-members-offers-5.115.1.tgz → tryghost-members-offers-5.116.1.tgz} +0 -0
  20. package/components/{tryghost-milestones-5.115.1.tgz → tryghost-milestones-5.116.1.tgz} +0 -0
  21. package/components/{tryghost-mw-error-handler-5.115.1.tgz → tryghost-mw-error-handler-5.116.1.tgz} +0 -0
  22. package/components/tryghost-mw-vhost-5.116.1.tgz +0 -0
  23. package/components/{tryghost-post-events-5.115.1.tgz → tryghost-post-events-5.116.1.tgz} +0 -0
  24. package/components/{tryghost-post-revisions-5.115.1.tgz → tryghost-post-revisions-5.116.1.tgz} +0 -0
  25. package/components/tryghost-posts-service-5.116.1.tgz +0 -0
  26. package/components/{tryghost-prometheus-metrics-5.115.1.tgz → tryghost-prometheus-metrics-5.116.1.tgz} +0 -0
  27. package/components/tryghost-security-5.116.1.tgz +0 -0
  28. package/components/{tryghost-tiers-5.115.1.tgz → tryghost-tiers-5.116.1.tgz} +0 -0
  29. package/components/tryghost-webmentions-5.116.1.tgz +0 -0
  30. package/content/themes/casper/LICENSE +1 -1
  31. package/content/themes/casper/README.md +1 -1
  32. package/content/themes/source/LICENSE +1 -1
  33. package/content/themes/source/README.md +1 -1
  34. package/content/themes/source/assets/built/screen.css +1 -1
  35. package/content/themes/source/assets/built/screen.css.map +1 -1
  36. package/content/themes/source/assets/css/screen.css +6 -11
  37. package/content/themes/source/partials/feature-image.hbs +2 -2
  38. package/core/boot.js +0 -42
  39. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +24764 -24129
  40. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +1 -1
  41. package/core/built/admin/assets/admin-x-demo/{index-15df2af5.mjs → index-a9601514.mjs} +3 -3
  42. package/core/built/admin/assets/admin-x-demo/{modals-8ca61d78.mjs → modals-c1789d04.mjs} +2 -2
  43. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-d2e6872f.mjs → CodeEditorView-e9c9deb8.mjs} +2 -2
  44. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  45. package/core/built/admin/assets/admin-x-settings/{index-8e8821e5.mjs → index-84580c3a.mjs} +2 -2
  46. package/core/built/admin/assets/admin-x-settings/{index-f5cb3db3.mjs → index-f744cab7.mjs} +49 -35
  47. package/core/built/admin/assets/admin-x-settings/{modals-e8ae4d46.mjs → modals-d9ca60c5.mjs} +1198 -1192
  48. package/core/built/admin/assets/chunk.524.cb72a86e19c9ffd6172e.js +35 -0
  49. package/core/built/admin/assets/chunk.582.4f4d38ffe79fbdbd26f7.js +37 -0
  50. package/core/built/admin/assets/{chunk.874.461cb3cf5b6b36915f8c.js → chunk.713.e9027c0cc3c56110f5da.js} +125 -98
  51. package/core/built/admin/assets/{ghost-df7b9558260aa27d18b195ee895b487d.js → ghost-03b64c086f3c60cabc85fe7a7e2b640a.js} +144 -145
  52. package/core/built/admin/assets/ghost-ba58e9822f7384461e926c7e23f04a75.css +1 -0
  53. package/core/built/admin/assets/ghost-dark-f1f29683b14ffa11615b3bba8b6ab92c.css +1 -0
  54. package/core/built/admin/assets/koenig-lexical/index.css +1 -1
  55. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +20563 -20891
  56. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +139 -139
  57. package/core/built/admin/assets/posts/posts.js +5732 -5667
  58. package/core/built/admin/assets/stats/stats.js +71082 -7533
  59. package/core/built/admin/assets/{vendor-68a4aa424a179a90f5bbc2b750def576.js → vendor-72026232b36d97babc6320917c16c321.js} +36 -34
  60. package/core/built/admin/index.html +6 -6
  61. package/core/cli/generate-data.js +1 -1
  62. package/core/frontend/helpers/ghost_head.js +6 -1
  63. package/core/frontend/public/ghost-stats.js +55 -2
  64. package/core/frontend/services/assets-minification/AdminAuthAssets.js +2 -1
  65. package/core/frontend/services/assets-minification/CardAssets.js +1 -1
  66. package/core/frontend/services/assets-minification/CommentCountsAssets.js +1 -1
  67. package/core/frontend/services/assets-minification/MemberAttributionAssets.js +1 -1
  68. package/core/frontend/services/assets-minification/Minifier.js +191 -0
  69. package/core/frontend/services/routing/controllers/previews.js +2 -1
  70. package/core/server/adapters/cache/Redis.js +1 -1
  71. package/core/server/adapters/lib/redis/AdapterCacheRedis.js +287 -0
  72. package/core/server/adapters/lib/redis/redis-store-factory.js +22 -0
  73. package/core/server/api/endpoints/posts.js +9 -3
  74. package/core/server/api/endpoints/previews.js +35 -1
  75. package/core/server/api/endpoints/utils/serializers/output/utils/post-gating.js +6 -9
  76. package/core/server/api/endpoints/utils/validators/input/settings.js +1 -1
  77. package/core/server/data/db/connection.js +2 -0
  78. package/core/server/data/db/index.js +1 -0
  79. package/core/server/data/importer/handlers/ImporterContentFileHandler.js +90 -0
  80. package/core/server/data/importer/import-manager.js +1 -1
  81. package/core/server/data/seeders/DataGenerator.js +288 -0
  82. package/core/server/data/seeders/importers/BenefitsImporter.js +28 -0
  83. package/core/server/data/seeders/importers/CommentsImporter.js +73 -0
  84. package/core/server/data/seeders/importers/EmailBatchesImporter.js +38 -0
  85. package/core/server/data/seeders/importers/EmailRecipientFailuresImporter.js +67 -0
  86. package/core/server/data/seeders/importers/EmailRecipientsImporter.js +212 -0
  87. package/core/server/data/seeders/importers/EmailsImporter.js +99 -0
  88. package/core/server/data/seeders/importers/LabelsImporter.js +41 -0
  89. package/core/server/data/seeders/importers/MembersClickEventsImporter.js +69 -0
  90. package/core/server/data/seeders/importers/MembersCreatedEventsImporter.js +103 -0
  91. package/core/server/data/seeders/importers/MembersFeedbackImporter.js +45 -0
  92. package/core/server/data/seeders/importers/MembersImporter.js +111 -0
  93. package/core/server/data/seeders/importers/MembersLabelsImporter.js +39 -0
  94. package/core/server/data/seeders/importers/MembersLoginEventsImporter.js +69 -0
  95. package/core/server/data/seeders/importers/MembersNewslettersImporter.js +38 -0
  96. package/core/server/data/seeders/importers/MembersPaidSubscriptionEventsImporter.js +99 -0
  97. package/core/server/data/seeders/importers/MembersProductsImporter.js +42 -0
  98. package/core/server/data/seeders/importers/MembersStatusEventsImporter.js +58 -0
  99. package/core/server/data/seeders/importers/MembersStripeCustomersImporter.js +60 -0
  100. package/core/server/data/seeders/importers/MembersStripeCustomersSubscriptionsImporter.js +259 -0
  101. package/core/server/data/seeders/importers/MembersSubscribeEventsImporter.js +69 -0
  102. package/core/server/data/seeders/importers/MembersSubscriptionCreatedEventsImporter.js +95 -0
  103. package/core/server/data/seeders/importers/NewslettersImporter.js +40 -0
  104. package/core/server/data/seeders/importers/OffersImporter.js +70 -0
  105. package/core/server/data/seeders/importers/PostsAuthorsImporter.js +32 -0
  106. package/core/server/data/seeders/importers/PostsImporter.js +102 -0
  107. package/core/server/data/seeders/importers/PostsProductsImporter.js +35 -0
  108. package/core/server/data/seeders/importers/PostsTagsImporter.js +46 -0
  109. package/core/server/data/seeders/importers/ProductsBenefitsImporter.js +54 -0
  110. package/core/server/data/seeders/importers/ProductsImporter.js +90 -0
  111. package/core/server/data/seeders/importers/RecommendationClickEventsImporter.js +32 -0
  112. package/core/server/data/seeders/importers/RecommendationSubscribeEventsImporter.js +32 -0
  113. package/core/server/data/seeders/importers/RecommendationsImporter.js +34 -0
  114. package/core/server/data/seeders/importers/RedirectsImporter.js +49 -0
  115. package/core/server/data/seeders/importers/RolesUsersImporter.js +42 -0
  116. package/core/server/data/seeders/importers/StripePricesImporter.js +69 -0
  117. package/core/server/data/seeders/importers/StripeProductsImporter.js +34 -0
  118. package/core/server/data/seeders/importers/TableImporter.js +187 -0
  119. package/core/server/data/seeders/importers/TagsImporter.js +41 -0
  120. package/core/server/data/seeders/importers/UsersImporter.js +31 -0
  121. package/core/server/data/seeders/importers/WebMentionsImporter.js +42 -0
  122. package/core/server/data/seeders/importers/index.js +41 -0
  123. package/core/server/data/seeders/utils/JsonImporter.js +39 -0
  124. package/core/server/data/seeders/utils/blog-info.js +3 -0
  125. package/core/server/data/seeders/utils/database-date.js +7 -0
  126. package/core/server/data/seeders/utils/event-generator.js +48 -0
  127. package/core/server/data/seeders/utils/random.js +13 -0
  128. package/core/server/data/seeders/utils/topological-sort.js +33 -0
  129. package/core/server/services/adapter-manager/AdapterManager.js +161 -0
  130. package/core/server/services/adapter-manager/index.js +1 -1
  131. package/core/server/services/announcement-bar-service/AnnouncementBarSettings.js +54 -0
  132. package/core/server/services/announcement-bar-service/AnnouncementVisibilityValues.js +11 -0
  133. package/core/server/services/announcement-bar-service/index.js +1 -1
  134. package/core/server/services/api-version-compatibility/APIVersionCompatibilityService.js +1 -1
  135. package/core/server/services/auth/session/session-service.js +15 -5
  136. package/core/server/services/custom-redirects/index.js +1 -1
  137. package/core/server/services/email-analytics/EmailAnalyticsProviderMailgun.js +1 -1
  138. package/core/server/services/email-service/EmailServiceWrapper.js +4 -4
  139. package/core/server/services/email-suppression-list/MailgunEmailSuppressionList.js +1 -1
  140. package/core/server/services/email-suppression-list/service.js +1 -1
  141. package/core/server/services/lib/DynamicRedirectManager.js +156 -0
  142. package/core/server/services/lib/EmailContentGenerator.js +54 -0
  143. package/core/server/services/lib/InMemoryRepository.js +62 -0
  144. package/core/server/services/lib/InMemoryRepository.ts +80 -0
  145. package/core/server/services/lib/MailgunClient.js +364 -0
  146. package/core/server/services/link-redirection/LinkRedirect.js +26 -0
  147. package/core/server/services/link-redirection/LinkRedirectRepository.js +7 -7
  148. package/core/server/services/link-redirection/LinkRedirectsService.js +123 -0
  149. package/core/server/services/link-redirection/README.md +151 -0
  150. package/core/server/services/link-redirection/RedirectEvent.js +24 -0
  151. package/core/server/services/link-redirection/index.js +1 -1
  152. package/core/server/services/link-tracking/LinkClickTrackingService.js +1 -1
  153. package/core/server/services/mail/index.js +1 -1
  154. package/core/server/services/mail-events/InMemoryMailEventRepository.js +2 -2
  155. package/core/server/services/mail-events/InMemoryMailEventRepository.ts +1 -1
  156. package/core/server/services/members-events/LastSeenAtUpdater.js +1 -1
  157. package/core/server/services/offers/service.js +1 -1
  158. package/core/server/services/recommendations/RecommendationServiceWrapper.js +8 -8
  159. package/core/server/services/recommendations/service/BookshelfClickEventRepository.js +48 -0
  160. package/core/server/services/recommendations/service/BookshelfClickEventRepository.ts +49 -0
  161. package/core/server/services/recommendations/service/BookshelfRecommendationRepository.js +98 -0
  162. package/core/server/services/recommendations/service/BookshelfRecommendationRepository.ts +117 -0
  163. package/core/server/services/recommendations/service/BookshelfRepository.js +134 -0
  164. package/core/server/services/recommendations/service/BookshelfRepository.ts +196 -0
  165. package/core/server/services/recommendations/service/BookshelfSubscribeEventRepository.js +48 -0
  166. package/core/server/services/recommendations/service/BookshelfSubscribeEventRepository.ts +49 -0
  167. package/core/server/services/recommendations/service/ClickEvent.js +33 -0
  168. package/core/server/services/recommendations/service/ClickEvent.ts +32 -0
  169. package/core/server/services/recommendations/service/InMemoryRecommendationRepository.js +19 -0
  170. package/core/server/services/recommendations/service/InMemoryRecommendationRepository.ts +20 -0
  171. package/core/server/services/recommendations/service/IncomingRecommendationController.js +34 -0
  172. package/core/server/services/recommendations/service/IncomingRecommendationController.ts +51 -0
  173. package/core/server/services/recommendations/service/IncomingRecommendationEmailRenderer.js +25 -0
  174. package/core/server/services/recommendations/service/IncomingRecommendationEmailRenderer.ts +37 -0
  175. package/core/server/services/recommendations/service/IncomingRecommendationService.js +93 -0
  176. package/core/server/services/recommendations/service/IncomingRecommendationService.ts +160 -0
  177. package/core/server/services/recommendations/service/Recommendation.js +140 -0
  178. package/core/server/services/recommendations/service/Recommendation.ts +201 -0
  179. package/core/server/services/recommendations/service/RecommendationController.js +208 -0
  180. package/core/server/services/recommendations/service/RecommendationController.ts +258 -0
  181. package/core/server/services/recommendations/service/RecommendationMetadataService.js +86 -0
  182. package/core/server/services/recommendations/service/RecommendationMetadataService.ts +128 -0
  183. package/core/server/services/recommendations/service/RecommendationRepository.js +2 -0
  184. package/core/server/services/recommendations/service/RecommendationRepository.ts +13 -0
  185. package/core/server/services/recommendations/service/RecommendationService.js +228 -0
  186. package/core/server/services/recommendations/service/RecommendationService.ts +281 -0
  187. package/core/server/services/recommendations/service/SubscribeEvent.js +33 -0
  188. package/core/server/services/recommendations/service/SubscribeEvent.ts +32 -0
  189. package/core/server/services/recommendations/service/UnsafeData.js +183 -0
  190. package/core/server/services/recommendations/service/UnsafeData.ts +217 -0
  191. package/core/server/services/recommendations/service/WellknownService.js +36 -0
  192. package/core/server/services/recommendations/service/WellknownService.ts +47 -0
  193. package/core/server/services/recommendations/service/index.js +31 -0
  194. package/core/server/services/recommendations/service/index.ts +15 -0
  195. package/core/server/services/recommendations/service/libraries.d.ts +5 -0
  196. package/core/server/services/slack-notifications/SlackNotifications.js +211 -0
  197. package/core/server/services/slack-notifications/SlackNotificationsService.js +90 -0
  198. package/core/server/services/slack-notifications/service.js +4 -6
  199. package/core/server/web/api/endpoints/admin/app.js +1 -21
  200. package/core/server/web/api/middleware/version-match.js +41 -0
  201. package/core/shared/labs.js +2 -2
  202. package/package.json +87 -104
  203. package/tsconfig.tsbuildinfo +1 -1
  204. package/yarn.lock +1470 -1540
  205. package/components/tryghost-adapter-cache-redis-5.115.1.tgz +0 -0
  206. package/components/tryghost-adapter-manager-5.115.1.tgz +0 -0
  207. package/components/tryghost-announcement-bar-settings-5.115.1.tgz +0 -0
  208. package/components/tryghost-constants-5.115.1.tgz +0 -0
  209. package/components/tryghost-custom-fonts-5.115.1.tgz +0 -0
  210. package/components/tryghost-data-generator-5.115.1.tgz +0 -0
  211. package/components/tryghost-email-addresses-5.115.1.tgz +0 -0
  212. package/components/tryghost-email-content-generator-5.115.1.tgz +0 -0
  213. package/components/tryghost-email-events-5.115.1.tgz +0 -0
  214. package/components/tryghost-email-service-5.115.1.tgz +0 -0
  215. package/components/tryghost-email-suppression-list-5.115.1.tgz +0 -0
  216. package/components/tryghost-express-dynamic-redirects-5.115.1.tgz +0 -0
  217. package/components/tryghost-ghost-5.115.1.tgz +0 -0
  218. package/components/tryghost-html-to-plaintext-5.115.1.tgz +0 -0
  219. package/components/tryghost-i18n-5.115.1.tgz +0 -0
  220. package/components/tryghost-importer-handler-content-files-5.115.1.tgz +0 -0
  221. package/components/tryghost-in-memory-repository-5.115.1.tgz +0 -0
  222. package/components/tryghost-job-manager-5.115.1.tgz +0 -0
  223. package/components/tryghost-link-redirects-5.115.1.tgz +0 -0
  224. package/components/tryghost-link-replacer-5.115.1.tgz +0 -0
  225. package/components/tryghost-magic-link-5.115.1.tgz +0 -0
  226. package/components/tryghost-mailgun-client-5.115.1.tgz +0 -0
  227. package/components/tryghost-member-events-5.115.1.tgz +0 -0
  228. package/components/tryghost-members-api-5.115.1.tgz +0 -0
  229. package/components/tryghost-members-csv-5.115.1.tgz +0 -0
  230. package/components/tryghost-members-payments-5.115.1.tgz +0 -0
  231. package/components/tryghost-minifier-5.115.1.tgz +0 -0
  232. package/components/tryghost-mw-version-match-5.115.1.tgz +0 -0
  233. package/components/tryghost-mw-vhost-5.115.1.tgz +0 -0
  234. package/components/tryghost-posts-service-5.115.1.tgz +0 -0
  235. package/components/tryghost-recommendations-5.115.1.tgz +0 -0
  236. package/components/tryghost-security-5.115.1.tgz +0 -0
  237. package/components/tryghost-slack-notifications-5.115.1.tgz +0 -0
  238. package/components/tryghost-webmentions-5.115.1.tgz +0 -0
  239. package/core/built/admin/assets/chunk.524.2439684964c164c598ab.js +0 -35
  240. package/core/built/admin/assets/chunk.582.bf5a2bbb2c4eb69ef1e7.js +0 -37
  241. package/core/built/admin/assets/ghost-327b17ea23cb8c89bd7e6a51e18e8506.css +0 -1
  242. package/core/built/admin/assets/ghost-dark-f30a597ac19632a118939492591c531b.css +0 -1
  243. /package/core/built/admin/assets/{chunk.874.461cb3cf5b6b36915f8c.js.LICENSE.txt → chunk.713.e9027c0cc3c56110f5da.js.LICENSE.txt} +0 -0
@@ -2,15 +2,13 @@ const debug = require('@tryghost/debug')('web:endpoints:admin:app');
2
2
  const boolParser = require('express-query-boolean');
3
3
  const bodyParser = require('body-parser');
4
4
  const errorHandler = require('@tryghost/mw-error-handler');
5
- const versionMatch = require('@tryghost/mw-version-match');
6
5
 
7
- const labs = require('../../../../../shared/labs');
6
+ const versionMatch = require('../../middleware/version-match');
8
7
  const shared = require('../../../shared');
9
8
  const express = require('../../../../../shared/express');
10
9
  const sentry = require('../../../../../shared/sentry');
11
10
  const routes = require('./routes');
12
11
  const APIVersionCompatibilityService = require('../../../../services/api-version-compatibility');
13
- const GhostNestApp = require('@tryghost/ghost');
14
12
 
15
13
  /**
16
14
  * @returns {import('express').Application}
@@ -38,24 +36,6 @@ module.exports = function setupApiApp() {
38
36
  // Routing
39
37
  apiApp.use(routes());
40
38
 
41
- apiApp.use(async function nestApp(req, res, next) {
42
- if (process.env.GHOST_ENABLE_NEST_FRAMEWORK && labs.isSet('NestPlayground')) {
43
- const originalExpressApp = req.app;
44
- const app = await GhostNestApp.getApp();
45
-
46
- const instance = app.getHttpAdapter().getInstance();
47
- instance(Object.assign({}, req, {
48
- url: req.originalUrl,
49
- baseUrl: ''
50
- }), res, function (err) {
51
- req.app = originalExpressApp;
52
- next(err);
53
- });
54
- return;
55
- }
56
- return next();
57
- });
58
-
59
39
  // API error handling
60
40
  apiApp.use(errorHandler.resourceNotFound);
61
41
  apiApp.use(APIVersionCompatibilityService.errorHandler);
@@ -0,0 +1,41 @@
1
+ const semver = require('semver');
2
+ const errors = require('@tryghost/errors');
3
+ const tpl = require('@tryghost/tpl');
4
+
5
+ const messages = {
6
+ invalidClientVersionRange: 'Client request for {clientVersion} is invalid.',
7
+ versionMismatch: 'Client request for {clientVersion} does not match server version {serverVersion}.'
8
+ };
9
+
10
+ module.exports = function checkVersionMatch(req, res, next) {
11
+ const clientVersion = req.get('X-Ghost-Version');
12
+ // can contain pre-release suffix, you should be able to use e.g. 1.19.0-pre [server] with 1.18.0 [client]
13
+ const serverVersion = res.locals.version.match(/^(\d+\.)?(\d+\.)?(\d+)/)[0];
14
+
15
+ if (clientVersion) {
16
+ const constraint = '^' + clientVersion + '.0';
17
+
18
+ // Protect against invalid client ranges
19
+ if (!semver.validRange(constraint)) {
20
+ return next(new errors.BadRequestError({
21
+ message: tpl(messages.invalidClientVersionRange, {
22
+ clientVersion
23
+ })
24
+ }));
25
+ }
26
+
27
+ // no error when client is on an earlier minor version than server
28
+ // error when client is on a later minor version than server
29
+ // always error when the major version is different
30
+ if (!semver.satisfies(serverVersion, constraint)) {
31
+ return next(new errors.VersionMismatchError({
32
+ message: tpl(messages.versionMismatch, {
33
+ clientVersion,
34
+ serverVersion
35
+ })
36
+ }));
37
+ }
38
+ }
39
+
40
+ next();
41
+ };
@@ -25,7 +25,8 @@ const GA_FEATURES = [
25
25
  'i18n',
26
26
  'themeErrorsNotification',
27
27
  'announcementBar',
28
- 'customFonts'
28
+ 'customFonts',
29
+ 'contentVisibility'
29
30
  ];
30
31
 
31
32
  // NOTE: this allowlist is meant to be used to filter out any unexpected
@@ -38,7 +39,6 @@ const BETA_FEATURES = [
38
39
  'ActivityPub',
39
40
  'importMemberTier',
40
41
  'staff2fa',
41
- 'contentVisibility',
42
42
  'superEditors'
43
43
  ];
44
44
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.115.1",
3
+ "version": "5.116.1",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -40,7 +40,7 @@
40
40
  "test:browser:setup": "npx playwright install",
41
41
  "test:ci:e2e": "c8 -c ./.c8rc.e2e.json -o coverage-e2e yarn test:e2e -b",
42
42
  "test:ci:regression": "yarn test:regression -b",
43
- "test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 57 --functions 47 --branches 76 --statements 57 yarn test:integration -b",
43
+ "test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 54 --functions 47 --branches 75 --statements 54 yarn test:integration -b",
44
44
  "test:unit:slow": "yarn test:unit --reporter=mocha-slow-test-reporter",
45
45
  "test:int:slow": "yarn test:integration --reporter=mocha-slow-test-reporter",
46
46
  "test:e2e:slow": "yarn test:e2e --reporter=mocha-slow-test-reporter",
@@ -60,42 +60,34 @@
60
60
  },
61
61
  "dependencies": {
62
62
  "@extractus/oembed-extractor": "3.2.1",
63
+ "@faker-js/faker": "7.6.0",
63
64
  "@isaacs/ttlcache": "1.4.1",
64
- "@sentry/node": "7.119.2",
65
+ "@sentry/node": "7.120.3",
65
66
  "@slack/webhook": "7.0.5",
66
67
  "@tryghost/adapter-base-cache": "0.1.12",
67
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.115.1.tgz",
68
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.115.1.tgz",
69
68
  "@tryghost/admin-api-schema": "4.5.5",
70
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.115.1.tgz",
71
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.115.1.tgz",
69
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.116.1.tgz",
72
70
  "@tryghost/bookshelf-plugins": "0.6.25",
73
71
  "@tryghost/color-utils": "0.2.2",
74
72
  "@tryghost/config-url-helpers": "1.0.12",
75
- "@tryghost/constants": "file:components/tryghost-constants-5.115.1.tgz",
76
- "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.115.1.tgz",
77
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.115.1.tgz",
78
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.115.1.tgz",
73
+ "@tryghost/constants": "file:components/tryghost-constants-5.116.1.tgz",
74
+ "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.116.1.tgz",
75
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.116.1.tgz",
79
76
  "@tryghost/database-info": "0.3.27",
80
77
  "@tryghost/debug": "0.1.32",
81
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.115.1.tgz",
82
- "@tryghost/donations": "file:components/tryghost-donations-5.115.1.tgz",
83
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.115.1.tgz",
84
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.115.1.tgz",
78
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.116.1.tgz",
79
+ "@tryghost/donations": "file:components/tryghost-donations-5.116.1.tgz",
80
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.116.1.tgz",
85
81
  "@tryghost/email-mock-receiver": "0.3.8",
86
- "@tryghost/email-service": "file:components/tryghost-email-service-5.115.1.tgz",
87
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.115.1.tgz",
82
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.116.1.tgz",
83
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.116.1.tgz",
88
84
  "@tryghost/errors": "1.3.5",
89
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.115.1.tgz",
90
- "@tryghost/ghost": "file:components/tryghost-ghost-5.115.1.tgz",
91
85
  "@tryghost/helpers": "1.1.90",
92
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.115.1.tgz",
86
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.116.1.tgz",
93
87
  "@tryghost/http-cache-utils": "0.1.17",
94
- "@tryghost/i18n": "file:components/tryghost-i18n-5.115.1.tgz",
88
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.116.1.tgz",
95
89
  "@tryghost/image-transform": "1.3.0",
96
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.115.1.tgz",
97
- "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.115.1.tgz",
98
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.115.1.tgz",
90
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.116.1.tgz",
99
91
  "@tryghost/kg-card-factory": "5.1.0",
100
92
  "@tryghost/kg-converters": "1.1.0",
101
93
  "@tryghost/kg-default-atoms": "5.1.0",
@@ -105,41 +97,36 @@
105
97
  "@tryghost/kg-lexical-html-renderer": "1.3.5",
106
98
  "@tryghost/kg-mobiledoc-html-renderer": "7.1.1",
107
99
  "@tryghost/limit-service": "1.2.14",
108
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.115.1.tgz",
109
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.115.1.tgz",
100
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.116.1.tgz",
110
101
  "@tryghost/logging": "2.4.21",
111
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.115.1.tgz",
112
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.115.1.tgz",
113
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.115.1.tgz",
114
- "@tryghost/member-events": "file:components/tryghost-member-events-5.115.1.tgz",
115
- "@tryghost/members-api": "file:components/tryghost-members-api-5.115.1.tgz",
116
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.115.1.tgz",
117
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.115.1.tgz",
102
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.116.1.tgz",
103
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.116.1.tgz",
104
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.116.1.tgz",
105
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.116.1.tgz",
106
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.116.1.tgz",
107
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.116.1.tgz",
118
108
  "@tryghost/metrics": "1.0.37",
119
- "@tryghost/milestones": "file:components/tryghost-milestones-5.115.1.tgz",
120
- "@tryghost/minifier": "file:components/tryghost-minifier-5.115.1.tgz",
121
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.115.1.tgz",
122
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.115.1.tgz",
123
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.115.1.tgz",
109
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.116.1.tgz",
110
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.116.1.tgz",
111
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.116.1.tgz",
124
112
  "@tryghost/nodemailer": "0.3.45",
125
113
  "@tryghost/nql": "0.12.7",
126
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.115.1.tgz",
127
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.115.1.tgz",
114
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.116.1.tgz",
115
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.116.1.tgz",
128
116
  "@tryghost/pretty-cli": "1.2.44",
129
- "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.115.1.tgz",
117
+ "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.116.1.tgz",
130
118
  "@tryghost/promise": "0.3.12",
131
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.115.1.tgz",
132
119
  "@tryghost/request": "1.0.8",
133
- "@tryghost/security": "file:components/tryghost-security-5.115.1.tgz",
134
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.115.1.tgz",
120
+ "@tryghost/root-utils": "0.3.30",
121
+ "@tryghost/security": "file:components/tryghost-security-5.116.1.tgz",
135
122
  "@tryghost/social-urls": "0.1.43",
136
123
  "@tryghost/string": "0.2.12",
137
- "@tryghost/tiers": "file:components/tryghost-tiers-5.115.1.tgz",
124
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.116.1.tgz",
138
125
  "@tryghost/tpl": "0.1.32",
139
126
  "@tryghost/url-utils": "4.4.8",
140
127
  "@tryghost/validator": "0.2.14",
141
128
  "@tryghost/version": "0.1.30",
142
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.115.1.tgz",
129
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.116.1.tgz",
143
130
  "@tryghost/zip": "1.1.46",
144
131
  "amperize": "0.6.1",
145
132
  "body-parser": "1.20.3",
@@ -147,15 +134,20 @@
147
134
  "bookshelf-relations": "2.8.0",
148
135
  "brute-knex": "4.0.1",
149
136
  "bson-objectid": "2.0.4",
137
+ "cache-manager": "4.1.0",
138
+ "cache-manager-ioredis": "2.1.0",
150
139
  "chalk": "4.1.2",
151
140
  "charset": "1.0.1",
152
141
  "cheerio": "0.22.0",
142
+ "cluster-key-slot": "1.1.2",
153
143
  "common-tags": "1.8.2",
154
144
  "compression": "1.8.0",
155
145
  "connect-slashes": "1.4.0",
156
146
  "cookie-session": "2.1.0",
157
147
  "cookies": "0.9.1",
158
148
  "cors": "2.8.5",
149
+ "csso": "5.0.5",
150
+ "csv-writer": "1.6.0",
159
151
  "date-fns": "2.30.0",
160
152
  "dompurify": "3.2.3",
161
153
  "downsize": "0.0.8",
@@ -168,6 +160,7 @@
168
160
  "express-queue": "0.0.13",
169
161
  "express-session": "1.18.1",
170
162
  "file-type": "16.5.4",
163
+ "form-data": "4.0.0",
171
164
  "fs-extra": "11.3.0",
172
165
  "ghost-storage-base": "1.0.0",
173
166
  "glob": "8.1.0",
@@ -175,13 +168,14 @@
175
168
  "gscan": "4.47.0",
176
169
  "handlebars": "4.7.8",
177
170
  "hcaptcha": "0.2.0",
171
+ "html-to-text": "5.1.1",
178
172
  "human-number": "2.0.4",
179
173
  "iconv-lite": "0.6.3",
180
- "image-size": "1.2.0",
174
+ "image-size": "1.2.1",
181
175
  "intl": "1.2.5",
182
176
  "intl-messageformat": "5.4.3",
183
177
  "js-yaml": "4.1.0",
184
- "json-stable-stringify": "1.2.0",
178
+ "json-stable-stringify": "1.2.1",
185
179
  "jsonpath": "1.1.1",
186
180
  "jsonwebtoken": "8.5.1",
187
181
  "juice": "9.1.0",
@@ -190,7 +184,8 @@
190
184
  "knex-migrator": "5.3.0",
191
185
  "leaky-bucket": "2.2.0",
192
186
  "lodash": "4.17.21",
193
- "luxon": "3.6.0",
187
+ "luxon": "3.6.1",
188
+ "mailgun.js": "10.4.0",
194
189
  "metascraper": "5.45.15",
195
190
  "metascraper-author": "5.45.10",
196
191
  "metascraper-description": "5.45.10",
@@ -211,42 +206,47 @@
211
206
  "otplib": "12.0.1",
212
207
  "papaparse": "5.3.2",
213
208
  "path-match": "1.2.4",
209
+ "probability-distributions": "0.9.1",
214
210
  "probe-image-size": "7.2.3",
215
211
  "rss": "1.2.2",
216
- "sanitize-html": "2.14.0",
212
+ "sanitize-html": "2.15.0",
217
213
  "semver": "7.7.1",
218
214
  "simple-dom": "1.4.0",
219
215
  "stoppable": "1.1.0",
220
216
  "stripe": "8.222.0",
221
- "superagent": "5.1.0",
217
+ "superagent": "5.3.1",
222
218
  "superagent-throttle": "1.0.1",
219
+ "terser": "5.39.0",
220
+ "tiny-glob": "0.2.9",
223
221
  "tough-cookie": "4.1.4",
224
222
  "ua-parser-js": "1.0.40",
225
223
  "xml": "1.0.1"
226
224
  },
227
225
  "optionalDependencies": {
228
- "@tryghost/html-to-mobiledoc": "3.1.2",
226
+ "@tryghost/html-to-mobiledoc": "3.1.3",
229
227
  "sqlite3": "5.1.7"
230
228
  },
231
229
  "devDependencies": {
232
230
  "@actions/core": "1.11.1",
233
- "@playwright/test": "1.50.1",
231
+ "@playwright/test": "1.51.1",
234
232
  "@tryghost/express-test": "0.13.15",
235
233
  "@tryghost/webhook-mock-receiver": "0.2.14",
236
234
  "@types/bookshelf": "1.2.9",
237
235
  "@types/common-tags": "1.8.4",
238
236
  "@types/node": "22.13.5",
237
+ "@types/sinon": "17.0.4",
238
+ "@types/supertest": "6.0.3",
239
239
  "c8": "8.0.1",
240
240
  "cli-progress": "3.12.0",
241
241
  "cssnano": "7.0.4",
242
242
  "detect-indent": "6.1.0",
243
243
  "detect-newline": "3.1.0",
244
- "expect": "29.3.1",
244
+ "expect": "29.7.0",
245
245
  "find-root": "1.1.0",
246
246
  "form-data": "4.0.0",
247
247
  "inquirer": "8.2.6",
248
248
  "jwks-rsa": "3.2.0",
249
- "mocha": "10.2.0",
249
+ "mocha": "10.8.2",
250
250
  "mocha-slow-test-reporter": "0.1.2",
251
251
  "mock-knex": "TryGhost/mock-knex#68948e11b0ea4fe63456098dfdc169bea7f62009",
252
252
  "nock": "13.5.6",
@@ -257,11 +257,11 @@
257
257
  "rewire": "6.0.0",
258
258
  "should": "13.2.3",
259
259
  "sinon": "15.2.0",
260
- "supertest": "6.3.3",
261
- "tmp": "0.2.1",
260
+ "supertest": "6.3.4",
261
+ "tmp": "0.2.3",
262
262
  "toml": "3.0.0",
263
263
  "tsx": "4.19.3",
264
- "typescript": "5.7.3"
264
+ "typescript": "5.8.2"
265
265
  },
266
266
  "resolutions": {
267
267
  "@tryghost/errors": "1.3.5",
@@ -269,52 +269,35 @@
269
269
  "jackspeak": "2.1.1",
270
270
  "moment": "2.24.0",
271
271
  "moment-timezone": "0.5.45",
272
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.115.1.tgz",
273
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.115.1.tgz",
274
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.115.1.tgz",
275
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.115.1.tgz",
276
- "@tryghost/constants": "file:components/tryghost-constants-5.115.1.tgz",
277
- "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.115.1.tgz",
278
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.115.1.tgz",
279
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.115.1.tgz",
280
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.115.1.tgz",
281
- "@tryghost/donations": "file:components/tryghost-donations-5.115.1.tgz",
282
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.115.1.tgz",
283
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.115.1.tgz",
284
- "@tryghost/email-events": "file:components/tryghost-email-events-5.115.1.tgz",
285
- "@tryghost/email-service": "file:components/tryghost-email-service-5.115.1.tgz",
286
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.115.1.tgz",
287
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.115.1.tgz",
288
- "@tryghost/ghost": "file:components/tryghost-ghost-5.115.1.tgz",
289
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.115.1.tgz",
290
- "@tryghost/i18n": "file:components/tryghost-i18n-5.115.1.tgz",
291
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.115.1.tgz",
292
- "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.115.1.tgz",
293
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.115.1.tgz",
294
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.115.1.tgz",
295
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.115.1.tgz",
296
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.115.1.tgz",
297
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.115.1.tgz",
298
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.115.1.tgz",
299
- "@tryghost/member-events": "file:components/tryghost-member-events-5.115.1.tgz",
300
- "@tryghost/members-api": "file:components/tryghost-members-api-5.115.1.tgz",
301
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.115.1.tgz",
302
- "@tryghost/milestones": "file:components/tryghost-milestones-5.115.1.tgz",
303
- "@tryghost/minifier": "file:components/tryghost-minifier-5.115.1.tgz",
304
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.115.1.tgz",
305
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.115.1.tgz",
306
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.115.1.tgz",
307
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.115.1.tgz",
308
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.115.1.tgz",
309
- "@tryghost/post-events": "file:components/tryghost-post-events-5.115.1.tgz",
310
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.115.1.tgz",
311
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.115.1.tgz",
312
- "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.115.1.tgz",
313
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.115.1.tgz",
314
- "@tryghost/security": "file:components/tryghost-security-5.115.1.tgz",
315
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.115.1.tgz",
316
- "@tryghost/tiers": "file:components/tryghost-tiers-5.115.1.tgz",
317
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.115.1.tgz"
272
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.116.1.tgz",
273
+ "@tryghost/constants": "file:components/tryghost-constants-5.116.1.tgz",
274
+ "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.116.1.tgz",
275
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.116.1.tgz",
276
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.116.1.tgz",
277
+ "@tryghost/donations": "file:components/tryghost-donations-5.116.1.tgz",
278
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.116.1.tgz",
279
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.116.1.tgz",
280
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.116.1.tgz",
281
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.116.1.tgz",
282
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.116.1.tgz",
283
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.116.1.tgz",
284
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.116.1.tgz",
285
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.116.1.tgz",
286
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.116.1.tgz",
287
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.116.1.tgz",
288
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.116.1.tgz",
289
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.116.1.tgz",
290
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.116.1.tgz",
291
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.116.1.tgz",
292
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.116.1.tgz",
293
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.116.1.tgz",
294
+ "@tryghost/post-events": "file:components/tryghost-post-events-5.116.1.tgz",
295
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.116.1.tgz",
296
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.116.1.tgz",
297
+ "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.116.1.tgz",
298
+ "@tryghost/security": "file:components/tryghost-security-5.116.1.tgz",
299
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.116.1.tgz",
300
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.116.1.tgz"
318
301
  },
319
302
  "nx": {
320
303
  "targets": {