ghost 5.34.1 → 5.35.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 (153) hide show
  1. package/components/tryghost-adapter-cache-redis-5.35.1.tgz +0 -0
  2. package/components/{tryghost-adapter-manager-5.34.1.tgz → tryghost-adapter-manager-5.35.1.tgz} +0 -0
  3. package/components/{tryghost-api-framework-5.34.1.tgz → tryghost-api-framework-5.35.1.tgz} +0 -0
  4. package/components/tryghost-api-version-compatibility-service-5.35.1.tgz +0 -0
  5. package/components/tryghost-audience-feedback-5.35.1.tgz +0 -0
  6. package/components/{tryghost-bootstrap-socket-5.34.1.tgz → tryghost-bootstrap-socket-5.35.1.tgz} +0 -0
  7. package/components/tryghost-constants-5.35.1.tgz +0 -0
  8. package/components/tryghost-custom-theme-settings-service-5.35.1.tgz +0 -0
  9. package/components/tryghost-data-generator-5.35.1.tgz +0 -0
  10. package/components/{tryghost-domain-events-5.34.1.tgz → tryghost-domain-events-5.35.1.tgz} +0 -0
  11. package/components/tryghost-dynamic-routing-events-5.35.1.tgz +0 -0
  12. package/components/tryghost-email-analytics-provider-mailgun-5.35.1.tgz +0 -0
  13. package/components/tryghost-email-analytics-service-5.35.1.tgz +0 -0
  14. package/components/tryghost-email-content-generator-5.35.1.tgz +0 -0
  15. package/components/tryghost-email-events-5.35.1.tgz +0 -0
  16. package/components/tryghost-email-service-5.35.1.tgz +0 -0
  17. package/components/{tryghost-email-suppression-list-5.34.1.tgz → tryghost-email-suppression-list-5.35.1.tgz} +0 -0
  18. package/components/{tryghost-express-dynamic-redirects-5.34.1.tgz → tryghost-express-dynamic-redirects-5.35.1.tgz} +0 -0
  19. package/components/tryghost-extract-api-key-5.35.1.tgz +0 -0
  20. package/components/tryghost-html-to-plaintext-5.35.1.tgz +0 -0
  21. package/components/{tryghost-i18n-5.34.1.tgz → tryghost-i18n-5.35.1.tgz} +0 -0
  22. package/components/{tryghost-importer-revue-5.34.1.tgz → tryghost-importer-revue-5.35.1.tgz} +0 -0
  23. package/components/tryghost-job-manager-5.35.1.tgz +0 -0
  24. package/components/tryghost-link-redirects-5.35.1.tgz +0 -0
  25. package/components/tryghost-link-replacer-5.35.1.tgz +0 -0
  26. package/components/tryghost-link-tracking-5.35.1.tgz +0 -0
  27. package/components/{tryghost-magic-link-5.34.1.tgz → tryghost-magic-link-5.35.1.tgz} +0 -0
  28. package/components/tryghost-mailgun-client-5.35.1.tgz +0 -0
  29. package/components/tryghost-member-attribution-5.35.1.tgz +0 -0
  30. package/components/{tryghost-member-events-5.34.1.tgz → tryghost-member-events-5.35.1.tgz} +0 -0
  31. package/components/{tryghost-members-api-5.34.1.tgz → tryghost-members-api-5.35.1.tgz} +0 -0
  32. package/components/tryghost-members-csv-5.35.1.tgz +0 -0
  33. package/components/{tryghost-members-events-service-5.34.1.tgz → tryghost-members-events-service-5.35.1.tgz} +0 -0
  34. package/components/{tryghost-members-importer-5.34.1.tgz → tryghost-members-importer-5.35.1.tgz} +0 -0
  35. package/components/tryghost-members-offers-5.35.1.tgz +0 -0
  36. package/components/tryghost-members-payments-5.35.1.tgz +0 -0
  37. package/components/tryghost-members-ssr-5.35.1.tgz +0 -0
  38. package/components/tryghost-members-stripe-service-5.35.1.tgz +0 -0
  39. package/components/tryghost-milestones-5.35.1.tgz +0 -0
  40. package/components/tryghost-minifier-5.35.1.tgz +0 -0
  41. package/components/tryghost-mw-api-version-mismatch-5.35.1.tgz +0 -0
  42. package/components/{tryghost-mw-cache-control-5.34.1.tgz → tryghost-mw-cache-control-5.35.1.tgz} +0 -0
  43. package/components/{tryghost-mw-error-handler-5.34.1.tgz → tryghost-mw-error-handler-5.35.1.tgz} +0 -0
  44. package/components/tryghost-mw-session-from-token-5.35.1.tgz +0 -0
  45. package/components/tryghost-mw-update-user-last-seen-5.35.1.tgz +0 -0
  46. package/components/tryghost-mw-vhost-5.35.1.tgz +0 -0
  47. package/components/{tryghost-oembed-service-5.34.1.tgz → tryghost-oembed-service-5.35.1.tgz} +0 -0
  48. package/components/tryghost-package-json-5.35.1.tgz +0 -0
  49. package/components/tryghost-public-resource-repository-5.35.1.tgz +0 -0
  50. package/components/tryghost-referrers-5.35.1.tgz +0 -0
  51. package/components/tryghost-security-5.35.1.tgz +0 -0
  52. package/components/tryghost-session-service-5.35.1.tgz +0 -0
  53. package/components/tryghost-settings-path-manager-5.35.1.tgz +0 -0
  54. package/components/tryghost-slack-notifications-5.35.1.tgz +0 -0
  55. package/components/{tryghost-staff-service-5.34.1.tgz → tryghost-staff-service-5.35.1.tgz} +0 -0
  56. package/components/tryghost-stats-service-5.35.1.tgz +0 -0
  57. package/components/tryghost-tiers-5.35.1.tgz +0 -0
  58. package/components/tryghost-update-check-service-5.35.1.tgz +0 -0
  59. package/components/tryghost-verification-trigger-5.35.1.tgz +0 -0
  60. package/components/tryghost-version-notifications-data-service-5.35.1.tgz +0 -0
  61. package/components/tryghost-webmentions-5.35.1.tgz +0 -0
  62. package/core/boot.js +27 -3
  63. package/core/built/admin/assets/{chunk.143.07f5af56ff872bb0e9e4.js → chunk.143.3e5760df9072a9463476.js} +5 -5
  64. package/core/built/admin/assets/{chunk.178.2e831ef9072743e38dd1.js → chunk.178.773722be9deba376bacb.js} +4 -4
  65. package/core/built/admin/assets/{chunk.616.181e1ad6c33f0bec7a65.js → chunk.502.c4afca88c98edad8b268.js} +1621 -1338
  66. package/core/built/admin/assets/{chunk.616.181e1ad6c33f0bec7a65.js.LICENSE.txt → chunk.502.c4afca88c98edad8b268.js.LICENSE.txt} +43 -0
  67. package/core/built/admin/assets/{ghost-558c1e319d6e025bfab2054bc0f7fe83.css → ghost-1d4b69d04b8a97e8a1bd83ed5bb20777.css} +1 -1
  68. package/core/built/admin/assets/{ghost-ad40d109653288e74a7cd922341fb33d.js → ghost-5f530fdaca961aa2ec5c339d5bb13443.js} +4353 -4323
  69. package/core/built/admin/assets/{ghost-dark-a15754df1f9070dc2525482ce22e2251.css → ghost-dark-633bf4628beead68e8a0d1fa668735ff.css} +1 -1
  70. package/core/built/admin/assets/{vendor-253d6527ca6353855164ef65f896f762.js → vendor-c4684647d4f5213e5dbb6763de430e7e.js} +2741 -2309
  71. package/core/built/admin/index.html +6 -6
  72. package/core/cli/generate-data.js +3 -1
  73. package/core/server/api/endpoints/emails.js +35 -0
  74. package/core/server/api/endpoints/images.js +13 -6
  75. package/core/server/api/endpoints/pages-public.js +3 -1
  76. package/core/server/api/endpoints/posts-public.js +3 -1
  77. package/core/server/api/endpoints/utils/serializers/output/emails.js +4 -0
  78. package/core/server/api/endpoints/utils/serializers/output/mappers/mentions.js +2 -1
  79. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +11 -0
  80. package/core/server/data/migrations/versions/5.35/2023-02-13-06-24-add-mentions-verified-column.js +7 -0
  81. package/core/server/data/schema/schema.js +2 -1
  82. package/core/server/lib/request-external.js +1 -0
  83. package/core/server/models/mention.js +2 -1
  84. package/core/server/services/email-analytics/lib/queries.js +18 -3
  85. package/core/server/services/email-analytics/wrapper.js +34 -15
  86. package/core/server/services/email-service/wrapper.js +2 -1
  87. package/core/server/services/mega/post-email-serializer.js +2 -2
  88. package/core/server/services/mega/template.js +1 -1
  89. package/core/server/services/member-attribution/index.js +8 -4
  90. package/core/server/services/mentions/BookshelfMentionRepository.js +4 -2
  91. package/core/server/services/mentions/WebmentionRequest.js +20 -0
  92. package/core/server/services/mentions/service.js +4 -1
  93. package/core/server/services/mentions-jobs/index.js +1 -0
  94. package/core/server/services/mentions-jobs/job-service.js +48 -0
  95. package/core/server/services/{milestone-emails → milestones}/MilestoneQueries.js +0 -0
  96. package/core/server/services/{milestone-emails → milestones}/index.js +0 -0
  97. package/core/server/services/milestones/service.js +78 -0
  98. package/core/server/services/posts-public/index.js +1 -0
  99. package/core/server/services/posts-public/service.js +31 -0
  100. package/core/server/services/slack-notifications/index.js +1 -0
  101. package/core/server/services/slack-notifications/service.js +60 -0
  102. package/core/server/services/tags-public/service.js +5 -5
  103. package/core/server/services/websockets/index.js +1 -0
  104. package/core/server/services/websockets/service.js +37 -0
  105. package/core/server/web/api/endpoints/admin/routes.js +3 -0
  106. package/core/shared/config/defaults.json +2 -2
  107. package/core/shared/labs.js +4 -3
  108. package/package.json +121 -118
  109. package/yarn.lock +307 -102
  110. package/components/tryghost-adapter-cache-redis-5.34.1.tgz +0 -0
  111. package/components/tryghost-api-version-compatibility-service-5.34.1.tgz +0 -0
  112. package/components/tryghost-audience-feedback-5.34.1.tgz +0 -0
  113. package/components/tryghost-constants-5.34.1.tgz +0 -0
  114. package/components/tryghost-custom-theme-settings-service-5.34.1.tgz +0 -0
  115. package/components/tryghost-data-generator-5.34.1.tgz +0 -0
  116. package/components/tryghost-dynamic-routing-events-5.34.1.tgz +0 -0
  117. package/components/tryghost-email-analytics-provider-mailgun-5.34.1.tgz +0 -0
  118. package/components/tryghost-email-analytics-service-5.34.1.tgz +0 -0
  119. package/components/tryghost-email-content-generator-5.34.1.tgz +0 -0
  120. package/components/tryghost-email-events-5.34.1.tgz +0 -0
  121. package/components/tryghost-email-service-5.34.1.tgz +0 -0
  122. package/components/tryghost-extract-api-key-5.34.1.tgz +0 -0
  123. package/components/tryghost-html-to-plaintext-5.34.1.tgz +0 -0
  124. package/components/tryghost-job-manager-5.34.1.tgz +0 -0
  125. package/components/tryghost-link-redirects-5.34.1.tgz +0 -0
  126. package/components/tryghost-link-replacer-5.34.1.tgz +0 -0
  127. package/components/tryghost-link-tracking-5.34.1.tgz +0 -0
  128. package/components/tryghost-mailgun-client-5.34.1.tgz +0 -0
  129. package/components/tryghost-member-attribution-5.34.1.tgz +0 -0
  130. package/components/tryghost-members-csv-5.34.1.tgz +0 -0
  131. package/components/tryghost-members-offers-5.34.1.tgz +0 -0
  132. package/components/tryghost-members-payments-5.34.1.tgz +0 -0
  133. package/components/tryghost-members-ssr-5.34.1.tgz +0 -0
  134. package/components/tryghost-members-stripe-service-5.34.1.tgz +0 -0
  135. package/components/tryghost-milestone-emails-5.34.1.tgz +0 -0
  136. package/components/tryghost-minifier-5.34.1.tgz +0 -0
  137. package/components/tryghost-mw-api-version-mismatch-5.34.1.tgz +0 -0
  138. package/components/tryghost-mw-session-from-token-5.34.1.tgz +0 -0
  139. package/components/tryghost-mw-update-user-last-seen-5.34.1.tgz +0 -0
  140. package/components/tryghost-mw-vhost-5.34.1.tgz +0 -0
  141. package/components/tryghost-package-json-5.34.1.tgz +0 -0
  142. package/components/tryghost-referrers-5.34.1.tgz +0 -0
  143. package/components/tryghost-security-5.34.1.tgz +0 -0
  144. package/components/tryghost-session-service-5.34.1.tgz +0 -0
  145. package/components/tryghost-settings-path-manager-5.34.1.tgz +0 -0
  146. package/components/tryghost-stats-service-5.34.1.tgz +0 -0
  147. package/components/tryghost-tags-public-5.34.1.tgz +0 -0
  148. package/components/tryghost-tiers-5.34.1.tgz +0 -0
  149. package/components/tryghost-update-check-service-5.34.1.tgz +0 -0
  150. package/components/tryghost-verification-trigger-5.34.1.tgz +0 -0
  151. package/components/tryghost-version-notifications-data-service-5.34.1.tgz +0 -0
  152. package/components/tryghost-webmentions-5.34.1.tgz +0 -0
  153. package/core/server/services/milestone-emails/service.js +0 -58
@@ -0,0 +1,31 @@
1
+ class PostsPublicServiceWrapper {
2
+ async init() {
3
+ if (this.api) {
4
+ // Already done
5
+ return;
6
+ }
7
+
8
+ // Wire up all the dependencies
9
+ const {Post} = require('../../models');
10
+ const adapterManager = require('../adapter-manager');
11
+ const config = require('../../../shared/config');
12
+
13
+ let postsCache;
14
+ if (config.get('hostSettings:postsPublicCache:enabled')) {
15
+ postsCache = adapterManager.getAdapter('cache:postsPublic');
16
+ }
17
+
18
+ const {PublicResourcesRepository} = require('@tryghost/public-resource-repository');
19
+
20
+ this.postsRepository = new PublicResourcesRepository({
21
+ Model: Post,
22
+ cache: postsCache
23
+ });
24
+
25
+ this.api = {
26
+ browse: this.postsRepository.getAll.bind(this.postsRepository)
27
+ };
28
+ }
29
+ }
30
+
31
+ module.exports = new PostsPublicServiceWrapper();
@@ -0,0 +1 @@
1
+ module.exports = require('./service');
@@ -0,0 +1,60 @@
1
+ const DomainEvents = require('@tryghost/domain-events');
2
+ const config = require('../../../shared/config');
3
+ const labs = require('../../../shared/labs');
4
+ const logging = require('@tryghost/logging');
5
+
6
+ class SlackNotificationsServiceWrapper {
7
+ /** @type {import('@tryghost/slack-notifications/lib/SlackNotificationsService')} */
8
+ #api;
9
+
10
+ /**
11
+ *
12
+ * @param {object} deps
13
+ * @param {string} deps.siteUrl
14
+ * @param {boolean} deps.isEnabled
15
+ * @param {URL} deps.webhookUrl
16
+ *
17
+ * @returns {import('@tryghost/slack-notifications/lib/SlackNotificationsService')}
18
+ */
19
+ static create({siteUrl, isEnabled, webhookUrl}) {
20
+ const {
21
+ SlackNotificationsService,
22
+ SlackNotifications
23
+ } = require('@tryghost/slack-notifications');
24
+
25
+ const slackNotifications = new SlackNotifications({
26
+ webhookUrl,
27
+ siteUrl,
28
+ logging
29
+ });
30
+
31
+ return new SlackNotificationsService({
32
+ DomainEvents,
33
+ logging,
34
+ config: {
35
+ isEnabled,
36
+ webhookUrl
37
+ },
38
+ slackNotifications
39
+ });
40
+ }
41
+
42
+ init() {
43
+ if (this.#api) {
44
+ // Prevent creating duplicate DomainEvents subscribers
45
+ return;
46
+ }
47
+
48
+ const hostSettings = config.get('hostSettings');
49
+ const urlUtils = require('../../../shared/url-utils');
50
+ const siteUrl = urlUtils.getSiteUrl();
51
+ const isEnabled = labs.isSet('milestoneEmails') && hostSettings?.milestones?.enabled && hostSettings?.milestones?.url;
52
+ const webhookUrl = hostSettings?.milestones?.url;
53
+
54
+ this.#api = SlackNotificationsServiceWrapper.create({siteUrl, isEnabled, webhookUrl});
55
+
56
+ this.#api.subscribeEvents();
57
+ }
58
+ }
59
+
60
+ module.exports = new SlackNotificationsServiceWrapper();
@@ -6,7 +6,7 @@ class TagsPublicServiceWrapper {
6
6
  }
7
7
 
8
8
  // Wire up all the dependencies
9
- const models = require('../../models');
9
+ const {TagPublic} = require('../../models');
10
10
  const adapterManager = require('../adapter-manager');
11
11
  const config = require('../../../shared/config');
12
12
 
@@ -15,15 +15,15 @@ class TagsPublicServiceWrapper {
15
15
  tagsCache = adapterManager.getAdapter('cache:tagsPublic');
16
16
  }
17
17
 
18
- const {TagsPublicRepository} = require('@tryghost/tags-public');
18
+ const {PublicResourcesRepository} = require('@tryghost/public-resource-repository');
19
19
 
20
- this.linkRedirectRepository = new TagsPublicRepository({
21
- Tag: models.TagPublic,
20
+ this.tagsPublicRepository = new PublicResourcesRepository({
21
+ Model: TagPublic,
22
22
  cache: tagsCache
23
23
  });
24
24
 
25
25
  this.api = {
26
- browse: this.linkRedirectRepository.getAll.bind(this.linkRedirectRepository)
26
+ browse: this.tagsPublicRepository.getAll.bind(this.tagsPublicRepository)
27
27
  };
28
28
  }
29
29
  }
@@ -0,0 +1 @@
1
+ module.exports = require('./service');
@@ -0,0 +1,37 @@
1
+ const {Server} = require('socket.io');
2
+ const debug = require('@tryghost/debug')('websockets');
3
+ const logging = require('@tryghost/logging');
4
+
5
+ const labs = require('../../../shared/labs');
6
+
7
+ module.exports = {
8
+ async init(ghostServer) {
9
+ debug(`[Websockets] Is labs set? ${labs.isSet('websockets')}`);
10
+
11
+ if (labs.isSet('websockets')) {
12
+ logging.info(`Starting websockets service`);
13
+
14
+ const io = new Server(ghostServer.httpServer);
15
+ let count = 0;
16
+
17
+ io.on(`connection`, (socket) => {
18
+ debug(`[Websockets] Client connected`);
19
+ // on connect, send current value
20
+ socket.emit('addCount', count);
21
+ // listen to to changes in value from client
22
+ socket.on('addCount', () => {
23
+ count = count + 1;
24
+ debug(`[Websockets] received addCount from client, count is now ${count}`);
25
+ socket.broadcast.emit('addCount', count);
26
+ });
27
+ });
28
+
29
+ ghostServer.registerCleanupTask(async () => {
30
+ logging.warn(`Stopping websockets service`);
31
+ await new Promise((resolve) => {
32
+ io.close(resolve);
33
+ });
34
+ });
35
+ }
36
+ }
37
+ };
@@ -300,6 +300,9 @@ module.exports = function apiRoutes() {
300
300
  router.put('/emails/:id/retry', mw.authAdminApi, http(api.emails.retry));
301
301
  router.get('/emails/:id/batches', mw.authAdminApi, http(api.emails.browseBatches));
302
302
  router.get('/emails/:id/recipient-failures', mw.authAdminApi, http(api.emails.browseFailures));
303
+ router.get('/emails/:id/analytics', mw.authAdminApi, http(api.emails.analyticsStatus));
304
+ router.put('/emails/:id/analytics', mw.authAdminApi, http(api.emails.scheduleAnalytics));
305
+ router.delete('/emails/analytics', mw.authAdminApi, http(api.emails.cancelScheduledAnalytics));
303
306
 
304
307
  // ## Snippets
305
308
  router.get('/snippets', mw.authAdminApi, http(api.snippets.browse));
@@ -210,9 +210,9 @@
210
210
  "arr": [
211
211
  {
212
212
  "currency": "usd",
213
- "values": [1000, 10000, 50000, 100000, 250000, 500000, 1000000]
213
+ "values": [100, 1000, 10000, 50000, 100000, 250000, 500000, 1000000]
214
214
  }
215
215
  ],
216
- "members": [100, 1000, 10000, 50000, 100000, 250000, 500000, 1000000]
216
+ "members": [100, 1000, 10000, 25000, 50000, 100000, 250000, 500000, 1000000]
217
217
  }
218
218
  }
@@ -20,7 +20,8 @@ const GA_FEATURES = [
20
20
  'memberAttribution',
21
21
  'audienceFeedback',
22
22
  'themeErrorsNotification',
23
- 'emailStability'
23
+ 'emailStability',
24
+ 'emailErrors'
24
25
  ];
25
26
 
26
27
  // NOTE: this allowlist is meant to be used to filter out any unexpected
@@ -28,7 +29,7 @@ const GA_FEATURES = [
28
29
  const BETA_FEATURES = [
29
30
  'activitypub',
30
31
  'webmentions',
31
- 'emailErrors'
32
+ 'milestoneEmails'
32
33
  ];
33
34
 
34
35
  const ALPHA_FEATURES = [
@@ -36,7 +37,7 @@ const ALPHA_FEATURES = [
36
37
  'beforeAfterCard',
37
38
  'lexicalEditor',
38
39
  'outboundLinkTagging',
39
- 'milestoneEmails'
40
+ 'websockets'
40
41
  ];
41
42
 
42
43
  module.exports.GA_KEYS = [...GA_FEATURES];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.34.1",
3
+ "version": "5.35.1",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -58,37 +58,37 @@
58
58
  "dependencies": {
59
59
  "@sentry/node": "7.11.1",
60
60
  "@tryghost/adapter-base-cache": "0.1.3",
61
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.34.1.tgz",
62
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.34.1.tgz",
61
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.35.1.tgz",
62
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.35.1.tgz",
63
63
  "@tryghost/admin-api-schema": "4.2.1",
64
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.34.1.tgz",
65
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.34.1.tgz",
66
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.34.1.tgz",
64
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.35.1.tgz",
65
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.35.1.tgz",
66
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.35.1.tgz",
67
67
  "@tryghost/bookshelf-plugins": "0.6.3",
68
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.34.1.tgz",
68
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.35.1.tgz",
69
69
  "@tryghost/color-utils": "0.1.22",
70
70
  "@tryghost/config-url-helpers": "1.0.4",
71
- "@tryghost/constants": "file:components/tryghost-constants-5.34.1.tgz",
72
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.34.1.tgz",
73
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.34.1.tgz",
71
+ "@tryghost/constants": "file:components/tryghost-constants-5.35.1.tgz",
72
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.35.1.tgz",
73
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.35.1.tgz",
74
74
  "@tryghost/database-info": "0.3.14",
75
75
  "@tryghost/debug": "0.1.21",
76
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.34.1.tgz",
77
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.34.1.tgz",
78
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.34.1.tgz",
79
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.34.1.tgz",
80
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.34.1.tgz",
76
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.35.1.tgz",
77
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.35.1.tgz",
78
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.35.1.tgz",
79
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.35.1.tgz",
80
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.35.1.tgz",
81
81
  "@tryghost/email-mock-receiver": "0.1.0",
82
- "@tryghost/email-service": "file:components/tryghost-email-service-5.34.1.tgz",
83
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.34.1.tgz",
82
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.35.1.tgz",
83
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.35.1.tgz",
84
84
  "@tryghost/errors": "1.2.20",
85
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.34.1.tgz",
85
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.35.1.tgz",
86
86
  "@tryghost/helpers": "1.1.75",
87
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.34.1.tgz",
87
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.35.1.tgz",
88
88
  "@tryghost/http-cache-utils": "0.1.6",
89
89
  "@tryghost/image-transform": "1.2.3",
90
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.34.1.tgz",
91
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.34.1.tgz",
90
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.35.1.tgz",
91
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.35.1.tgz",
92
92
  "@tryghost/kg-card-factory": "4.0.0",
93
93
  "@tryghost/kg-default-atoms": "4.0.0",
94
94
  "@tryghost/kg-default-cards": "6.0.0",
@@ -96,52 +96,53 @@
96
96
  "@tryghost/kg-lexical-html-renderer": "0.1.6",
97
97
  "@tryghost/kg-mobiledoc-html-renderer": "6.0.0",
98
98
  "@tryghost/limit-service": "1.2.4",
99
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.34.1.tgz",
100
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.34.1.tgz",
101
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.34.1.tgz",
99
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.35.1.tgz",
100
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.35.1.tgz",
101
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.35.1.tgz",
102
102
  "@tryghost/logging": "2.4.0",
103
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.34.1.tgz",
104
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.34.1.tgz",
105
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.34.1.tgz",
106
- "@tryghost/member-events": "file:components/tryghost-member-events-5.34.1.tgz",
107
- "@tryghost/members-api": "file:components/tryghost-members-api-5.34.1.tgz",
108
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.34.1.tgz",
109
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.34.1.tgz",
110
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.34.1.tgz",
111
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.34.1.tgz",
112
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.34.1.tgz",
113
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.34.1.tgz",
103
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.35.1.tgz",
104
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.35.1.tgz",
105
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.35.1.tgz",
106
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.35.1.tgz",
107
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.35.1.tgz",
108
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.35.1.tgz",
109
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.35.1.tgz",
110
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.35.1.tgz",
111
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.35.1.tgz",
112
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.35.1.tgz",
113
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.35.1.tgz",
114
114
  "@tryghost/metrics": "1.0.20",
115
- "@tryghost/milestone-emails": "file:components/tryghost-milestone-emails-5.34.1.tgz",
116
- "@tryghost/minifier": "file:components/tryghost-minifier-5.34.1.tgz",
117
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.34.1.tgz",
118
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.34.1.tgz",
119
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.34.1.tgz",
120
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.34.1.tgz",
121
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.34.1.tgz",
115
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.35.1.tgz",
116
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.35.1.tgz",
117
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.35.1.tgz",
118
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.35.1.tgz",
119
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.35.1.tgz",
120
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.35.1.tgz",
121
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.35.1.tgz",
122
122
  "@tryghost/nodemailer": "0.3.31",
123
123
  "@tryghost/nql": "0.11.0",
124
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.34.1.tgz",
125
- "@tryghost/package-json": "file:components/tryghost-package-json-5.34.1.tgz",
124
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.35.1.tgz",
125
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.35.1.tgz",
126
126
  "@tryghost/pretty-cli": "1.2.33",
127
127
  "@tryghost/promise": "0.2.1",
128
+ "@tryghost/public-resource-repository": "file:components/tryghost-public-resource-repository-5.35.1.tgz",
128
129
  "@tryghost/request": "0.1.34",
129
- "@tryghost/security": "file:components/tryghost-security-5.34.1.tgz",
130
- "@tryghost/session-service": "file:components/tryghost-session-service-5.34.1.tgz",
131
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.34.1.tgz",
130
+ "@tryghost/security": "file:components/tryghost-security-5.35.1.tgz",
131
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.35.1.tgz",
132
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.35.1.tgz",
133
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.35.1.tgz",
132
134
  "@tryghost/social-urls": "0.1.34",
133
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.34.1.tgz",
134
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.34.1.tgz",
135
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.35.1.tgz",
136
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.35.1.tgz",
135
137
  "@tryghost/string": "0.2.2",
136
- "@tryghost/tags-public": "file:components/tryghost-tags-public-5.34.1.tgz",
137
- "@tryghost/tiers": "file:components/tryghost-tiers-5.34.1.tgz",
138
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.35.1.tgz",
138
139
  "@tryghost/tpl": "0.1.21",
139
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.34.1.tgz",
140
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.35.1.tgz",
140
141
  "@tryghost/url-utils": "4.3.0",
141
142
  "@tryghost/validator": "0.1.31",
142
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.34.1.tgz",
143
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.35.1.tgz",
143
144
  "@tryghost/version": "0.1.19",
144
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.34.1.tgz",
145
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.35.1.tgz",
145
146
  "@tryghost/zip": "1.1.31",
146
147
  "amperize": "0.6.1",
147
148
  "analytics-node": "6.2.0",
@@ -189,13 +190,14 @@
189
190
  "multer": "1.4.4",
190
191
  "mysql2": "3.1.2",
191
192
  "nconf": "0.12.0",
192
- "node-jose": "2.1.1",
193
+ "node-jose": "2.2.0",
193
194
  "oembed-parser": "1.4.9",
194
195
  "path-match": "1.2.4",
195
196
  "probe-image-size": "7.2.3",
196
197
  "rss": "1.2.2",
197
198
  "sanitize-html": "2.9.0",
198
199
  "semver": "7.3.8",
200
+ "socket.io": "4.6.0",
199
201
  "stoppable": "1.1.0",
200
202
  "uuid": "9.0.0",
201
203
  "xml": "1.0.1"
@@ -209,10 +211,10 @@
209
211
  "@tryghost/express-test": "0.13.0",
210
212
  "@tryghost/webhook-mock-receiver": "0.2.3",
211
213
  "@types/common-tags": "1.8.1",
212
- "c8": "7.12.0",
214
+ "c8": "7.13.0",
213
215
  "cli-progress": "3.11.2",
214
- "cssnano": "5.1.14",
215
- "eslint": "8.33.0",
216
+ "cssnano": "5.1.15",
217
+ "eslint": "8.34.0",
216
218
  "expect": "^29.0.0",
217
219
  "form-data": "^4.0.0",
218
220
  "html-validate": "7.13.2",
@@ -237,65 +239,66 @@
237
239
  "@tryghost/logging": "2.4.0",
238
240
  "moment": "2.24.0",
239
241
  "moment-timezone": "0.5.23",
240
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.34.1.tgz",
241
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.34.1.tgz",
242
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.34.1.tgz",
243
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.34.1.tgz",
244
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.34.1.tgz",
245
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.34.1.tgz",
246
- "@tryghost/constants": "file:components/tryghost-constants-5.34.1.tgz",
247
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.34.1.tgz",
248
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.34.1.tgz",
249
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.34.1.tgz",
250
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.34.1.tgz",
251
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.34.1.tgz",
252
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.34.1.tgz",
253
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.34.1.tgz",
254
- "@tryghost/email-events": "file:components/tryghost-email-events-5.34.1.tgz",
255
- "@tryghost/email-service": "file:components/tryghost-email-service-5.34.1.tgz",
256
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.34.1.tgz",
257
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.34.1.tgz",
258
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.34.1.tgz",
259
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.34.1.tgz",
260
- "@tryghost/i18n": "file:components/tryghost-i18n-5.34.1.tgz",
261
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.34.1.tgz",
262
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.34.1.tgz",
263
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.34.1.tgz",
264
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.34.1.tgz",
265
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.34.1.tgz",
266
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.34.1.tgz",
267
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.34.1.tgz",
268
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.34.1.tgz",
269
- "@tryghost/member-events": "file:components/tryghost-member-events-5.34.1.tgz",
270
- "@tryghost/members-api": "file:components/tryghost-members-api-5.34.1.tgz",
271
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.34.1.tgz",
272
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.34.1.tgz",
273
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.34.1.tgz",
274
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.34.1.tgz",
275
- "@tryghost/milestone-emails": "file:components/tryghost-milestone-emails-5.34.1.tgz",
276
- "@tryghost/minifier": "file:components/tryghost-minifier-5.34.1.tgz",
277
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.34.1.tgz",
278
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.34.1.tgz",
279
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.34.1.tgz",
280
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.34.1.tgz",
281
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.34.1.tgz",
282
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.34.1.tgz",
283
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.34.1.tgz",
284
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.34.1.tgz",
285
- "@tryghost/package-json": "file:components/tryghost-package-json-5.34.1.tgz",
286
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.34.1.tgz",
287
- "@tryghost/referrers": "file:components/tryghost-referrers-5.34.1.tgz",
288
- "@tryghost/security": "file:components/tryghost-security-5.34.1.tgz",
289
- "@tryghost/session-service": "file:components/tryghost-session-service-5.34.1.tgz",
290
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.34.1.tgz",
291
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.34.1.tgz",
292
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.34.1.tgz",
293
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.34.1.tgz",
294
- "@tryghost/tags-public": "file:components/tryghost-tags-public-5.34.1.tgz",
295
- "@tryghost/tiers": "file:components/tryghost-tiers-5.34.1.tgz",
296
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.34.1.tgz",
297
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.34.1.tgz",
298
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.34.1.tgz",
299
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.34.1.tgz"
242
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.35.1.tgz",
243
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.35.1.tgz",
244
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.35.1.tgz",
245
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.35.1.tgz",
246
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.35.1.tgz",
247
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.35.1.tgz",
248
+ "@tryghost/constants": "file:components/tryghost-constants-5.35.1.tgz",
249
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.35.1.tgz",
250
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.35.1.tgz",
251
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.35.1.tgz",
252
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.35.1.tgz",
253
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.35.1.tgz",
254
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.35.1.tgz",
255
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.35.1.tgz",
256
+ "@tryghost/email-events": "file:components/tryghost-email-events-5.35.1.tgz",
257
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.35.1.tgz",
258
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.35.1.tgz",
259
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.35.1.tgz",
260
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.35.1.tgz",
261
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.35.1.tgz",
262
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.35.1.tgz",
263
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.35.1.tgz",
264
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.35.1.tgz",
265
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.35.1.tgz",
266
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.35.1.tgz",
267
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.35.1.tgz",
268
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.35.1.tgz",
269
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.35.1.tgz",
270
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.35.1.tgz",
271
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.35.1.tgz",
272
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.35.1.tgz",
273
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.35.1.tgz",
274
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.35.1.tgz",
275
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.35.1.tgz",
276
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.35.1.tgz",
277
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.35.1.tgz",
278
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.35.1.tgz",
279
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.35.1.tgz",
280
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.35.1.tgz",
281
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.35.1.tgz",
282
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.35.1.tgz",
283
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.35.1.tgz",
284
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.35.1.tgz",
285
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.35.1.tgz",
286
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.35.1.tgz",
287
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.35.1.tgz",
288
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.35.1.tgz",
289
+ "@tryghost/public-resource-repository": "file:components/tryghost-public-resource-repository-5.35.1.tgz",
290
+ "@tryghost/referrers": "file:components/tryghost-referrers-5.35.1.tgz",
291
+ "@tryghost/security": "file:components/tryghost-security-5.35.1.tgz",
292
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.35.1.tgz",
293
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.35.1.tgz",
294
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.35.1.tgz",
295
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.35.1.tgz",
296
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.35.1.tgz",
297
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.35.1.tgz",
298
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.35.1.tgz",
299
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.35.1.tgz",
300
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.35.1.tgz",
301
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.35.1.tgz",
302
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.35.1.tgz"
300
303
  }
301
304
  }