ghost 5.22.5 → 5.22.6

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 (94) hide show
  1. package/components/tryghost-adapter-manager-5.22.6.tgz +0 -0
  2. package/components/tryghost-api-framework-5.22.6.tgz +0 -0
  3. package/components/{tryghost-api-version-compatibility-service-5.22.5.tgz → tryghost-api-version-compatibility-service-5.22.6.tgz} +0 -0
  4. package/components/{tryghost-audience-feedback-5.22.5.tgz → tryghost-audience-feedback-5.22.6.tgz} +0 -0
  5. package/components/tryghost-bootstrap-socket-5.22.6.tgz +0 -0
  6. package/components/tryghost-constants-5.22.6.tgz +0 -0
  7. package/components/{tryghost-custom-theme-settings-service-5.22.5.tgz → tryghost-custom-theme-settings-service-5.22.6.tgz} +0 -0
  8. package/components/tryghost-data-generator-5.22.6.tgz +0 -0
  9. package/components/{tryghost-domain-events-5.22.5.tgz → tryghost-domain-events-5.22.6.tgz} +0 -0
  10. package/components/{tryghost-email-analytics-provider-mailgun-5.22.5.tgz → tryghost-email-analytics-provider-mailgun-5.22.6.tgz} +0 -0
  11. package/components/{tryghost-email-analytics-service-5.22.5.tgz → tryghost-email-analytics-service-5.22.6.tgz} +0 -0
  12. package/components/{tryghost-email-content-generator-5.22.5.tgz → tryghost-email-content-generator-5.22.6.tgz} +0 -0
  13. package/components/{tryghost-express-dynamic-redirects-5.22.5.tgz → tryghost-express-dynamic-redirects-5.22.6.tgz} +0 -0
  14. package/components/tryghost-extract-api-key-5.22.6.tgz +0 -0
  15. package/components/{tryghost-html-to-plaintext-5.22.5.tgz → tryghost-html-to-plaintext-5.22.6.tgz} +0 -0
  16. package/components/{tryghost-job-manager-5.22.5.tgz → tryghost-job-manager-5.22.6.tgz} +0 -0
  17. package/components/{tryghost-link-redirects-5.22.5.tgz → tryghost-link-redirects-5.22.6.tgz} +0 -0
  18. package/components/{tryghost-link-replacer-5.22.5.tgz → tryghost-link-replacer-5.22.6.tgz} +0 -0
  19. package/components/{tryghost-link-tracking-5.22.5.tgz → tryghost-link-tracking-5.22.6.tgz} +0 -0
  20. package/components/tryghost-magic-link-5.22.6.tgz +0 -0
  21. package/components/{tryghost-mailgun-client-5.22.5.tgz → tryghost-mailgun-client-5.22.6.tgz} +0 -0
  22. package/components/{tryghost-member-analytics-service-5.22.5.tgz → tryghost-member-analytics-service-5.22.6.tgz} +0 -0
  23. package/components/{tryghost-member-attribution-5.22.5.tgz → tryghost-member-attribution-5.22.6.tgz} +0 -0
  24. package/components/{tryghost-member-events-5.22.5.tgz → tryghost-member-events-5.22.6.tgz} +0 -0
  25. package/components/{tryghost-members-analytics-ingress-5.22.5.tgz → tryghost-members-analytics-ingress-5.22.6.tgz} +0 -0
  26. package/components/{tryghost-members-api-5.22.5.tgz → tryghost-members-api-5.22.6.tgz} +0 -0
  27. package/components/{tryghost-members-csv-5.22.5.tgz → tryghost-members-csv-5.22.6.tgz} +0 -0
  28. package/components/{tryghost-members-events-service-5.22.5.tgz → tryghost-members-events-service-5.22.6.tgz} +0 -0
  29. package/components/tryghost-members-importer-5.22.6.tgz +0 -0
  30. package/components/{tryghost-members-offers-5.22.5.tgz → tryghost-members-offers-5.22.6.tgz} +0 -0
  31. package/components/tryghost-members-payments-5.22.6.tgz +0 -0
  32. package/components/{tryghost-members-ssr-5.22.5.tgz → tryghost-members-ssr-5.22.6.tgz} +0 -0
  33. package/components/{tryghost-members-stripe-service-5.22.5.tgz → tryghost-members-stripe-service-5.22.6.tgz} +0 -0
  34. package/components/tryghost-minifier-5.22.6.tgz +0 -0
  35. package/components/tryghost-mw-api-version-mismatch-5.22.6.tgz +0 -0
  36. package/components/tryghost-mw-cache-control-5.22.6.tgz +0 -0
  37. package/components/{tryghost-mw-error-handler-5.22.5.tgz → tryghost-mw-error-handler-5.22.6.tgz} +0 -0
  38. package/components/tryghost-mw-session-from-token-5.22.6.tgz +0 -0
  39. package/components/{tryghost-mw-update-user-last-seen-5.22.5.tgz → tryghost-mw-update-user-last-seen-5.22.6.tgz} +0 -0
  40. package/components/tryghost-mw-vhost-5.22.6.tgz +0 -0
  41. package/components/tryghost-oembed-service-5.22.6.tgz +0 -0
  42. package/components/tryghost-package-json-5.22.6.tgz +0 -0
  43. package/components/tryghost-referrers-5.22.6.tgz +0 -0
  44. package/components/tryghost-security-5.22.6.tgz +0 -0
  45. package/components/{tryghost-session-service-5.22.5.tgz → tryghost-session-service-5.22.6.tgz} +0 -0
  46. package/components/tryghost-settings-path-manager-5.22.6.tgz +0 -0
  47. package/components/{tryghost-staff-service-5.22.5.tgz → tryghost-staff-service-5.22.6.tgz} +0 -0
  48. package/components/tryghost-stats-service-5.22.6.tgz +0 -0
  49. package/components/tryghost-tiers-5.22.6.tgz +0 -0
  50. package/components/{tryghost-update-check-service-5.22.5.tgz → tryghost-update-check-service-5.22.6.tgz} +0 -0
  51. package/components/{tryghost-verification-trigger-5.22.5.tgz → tryghost-verification-trigger-5.22.6.tgz} +0 -0
  52. package/components/{tryghost-version-notifications-data-service-5.22.5.tgz → tryghost-version-notifications-data-service-5.22.6.tgz} +0 -0
  53. package/core/built/admin/assets/{chunk.143.802f98a868450929bef1.js → chunk.143.003cf2691507dc2b85c7.js} +5 -5
  54. package/core/built/admin/assets/{chunk.178.d2bb588c798595994dcc.js → chunk.178.eecb3b5bdd2aa016b98a.js} +4 -4
  55. package/core/built/admin/assets/{ghost-ee765e7c7c0659ff21264e1647786595.css → ghost-be360e360f53a63fafd228ae89bf96c8.css} +1 -1
  56. package/core/built/admin/assets/{ghost-7d0ec2c8481f5d9c153d91fe0603ff80.js → ghost-dab6700715992e873d0672192fc8e2be.js} +423 -416
  57. package/core/built/admin/assets/{ghost-dark-24bab3ddf734028ce91b5763268952f9.css → ghost-dark-08002fad1d09cb7a88d09abf2ce4da29.css} +1 -1
  58. package/core/built/admin/assets/{vendor-26cca1d4d56660dc6e915a12ccc3b330.js → vendor-dc9f883b3468ff84794cf13741e6c4b4.js} +41 -41
  59. package/core/built/admin/index.html +4 -4
  60. package/core/cli/generate-data.js +2 -2
  61. package/core/frontend/services/routing/EmailRouter.js +1 -1
  62. package/core/frontend/services/routing/PreviewRouter.js +1 -1
  63. package/core/frontend/src/comment-counts/js/comment-counts.js +3 -4
  64. package/core/frontend/web/middleware/cors.js +19 -1
  65. package/core/server/api/endpoints/comments-members.js +3 -0
  66. package/core/server/services/auth/setup.js +2 -2
  67. package/core/server/services/comments/controller.js +9 -7
  68. package/core/server/services/mega/post-email-serializer.js +14 -7
  69. package/core/server/web/api/middleware/cors.js +20 -2
  70. package/core/server/web/comments/routes.js +7 -2
  71. package/core/shared/config/defaults.json +4 -1
  72. package/package.json +99 -99
  73. package/yarn.lock +15 -15
  74. package/components/tryghost-adapter-manager-5.22.5.tgz +0 -0
  75. package/components/tryghost-api-framework-5.22.5.tgz +0 -0
  76. package/components/tryghost-bootstrap-socket-5.22.5.tgz +0 -0
  77. package/components/tryghost-constants-5.22.5.tgz +0 -0
  78. package/components/tryghost-data-generator-5.22.5.tgz +0 -0
  79. package/components/tryghost-extract-api-key-5.22.5.tgz +0 -0
  80. package/components/tryghost-magic-link-5.22.5.tgz +0 -0
  81. package/components/tryghost-members-importer-5.22.5.tgz +0 -0
  82. package/components/tryghost-members-payments-5.22.5.tgz +0 -0
  83. package/components/tryghost-minifier-5.22.5.tgz +0 -0
  84. package/components/tryghost-mw-api-version-mismatch-5.22.5.tgz +0 -0
  85. package/components/tryghost-mw-cache-control-5.22.5.tgz +0 -0
  86. package/components/tryghost-mw-session-from-token-5.22.5.tgz +0 -0
  87. package/components/tryghost-mw-vhost-5.22.5.tgz +0 -0
  88. package/components/tryghost-oembed-service-5.22.5.tgz +0 -0
  89. package/components/tryghost-package-json-5.22.5.tgz +0 -0
  90. package/components/tryghost-referrers-5.22.5.tgz +0 -0
  91. package/components/tryghost-security-5.22.5.tgz +0 -0
  92. package/components/tryghost-settings-path-manager-5.22.5.tgz +0 -0
  93. package/components/tryghost-stats-service-5.22.5.tgz +0 -0
  94. package/components/tryghost-tiers-5.22.5.tgz +0 -0
@@ -37,7 +37,7 @@
37
37
  </style>
38
38
 
39
39
  <link integrity="" rel="stylesheet" href="assets/vendor-3e6947aa681f0fb82b193090e520dc73.css">
40
- <link integrity="" rel="stylesheet" href="assets/ghost-ee765e7c7c0659ff21264e1647786595.css" title="light">
40
+ <link integrity="" rel="stylesheet" href="assets/ghost-be360e360f53a63fafd228ae89bf96c8.css" title="light">
41
41
 
42
42
 
43
43
  </head>
@@ -56,9 +56,9 @@
56
56
 
57
57
  <div id="ember-basic-dropdown-wormhole"></div>
58
58
 
59
- <script src="assets/vendor-26cca1d4d56660dc6e915a12ccc3b330.js"></script>
59
+ <script src="assets/vendor-dc9f883b3468ff84794cf13741e6c4b4.js"></script>
60
60
  <script src="assets/chunk.613.695f31829550fb00d43c.js"></script>
61
- <script src="assets/chunk.143.802f98a868450929bef1.js"></script>
62
- <script src="assets/ghost-7d0ec2c8481f5d9c153d91fe0603ff80.js"></script>
61
+ <script src="assets/chunk.143.003cf2691507dc2b85c7.js"></script>
62
+ <script src="assets/ghost-dab6700715992e873d0672192fc8e2be.js"></script>
63
63
  </body>
64
64
  </html>
@@ -4,7 +4,7 @@ const DataGenerator = require('@tryghost/data-generator');
4
4
  module.exports = class REPL extends Command {
5
5
  setup() {
6
6
  this.help('Generates random data to populate the database for development & testing');
7
- this.argument('--use-base-data', {type: 'boolean', defaultValue: false, desc: 'Only generate data outside of a defined base data set'});
7
+ this.argument('--base-data-pack', {type: 'string', defaultValue: '', desc: 'Base data pack file location, imported instead of random content'});
8
8
  }
9
9
 
10
10
  initializeContext(context) {
@@ -27,7 +27,7 @@ module.exports = class REPL extends Command {
27
27
  const knex = require('../server/data/db/connection');
28
28
  const {tables: schema} = require('../server/data/schema/index');
29
29
  const dataGenerator = new DataGenerator({
30
- useBaseData: argv['use-base-data'],
30
+ baseDataPack: argv['base-data-pack'],
31
31
  knex,
32
32
  schema,
33
33
  logger: {
@@ -11,7 +11,7 @@ class EmailRouter extends ParentRouter {
11
11
 
12
12
  this.RESOURCE_CONFIG = RESOURCE_CONFIG.QUERY.email;
13
13
 
14
- // @NOTE: hardcoded, not configureable
14
+ // @NOTE: hardcoded, not configurable
15
15
  this.route = {value: '/email/'};
16
16
 
17
17
  this._registerRoutes();
@@ -11,7 +11,7 @@ class PreviewRouter extends ParentRouter {
11
11
 
12
12
  this.RESOURCE_CONFIG = RESOURCE_CONFIG.QUERY.previews;
13
13
 
14
- // @NOTE: hardcoded, not configureable
14
+ // @NOTE: hardcoded, not configurable
15
15
  this.route = {value: '/p/'};
16
16
 
17
17
  this._registerRoutes();
@@ -67,13 +67,12 @@
67
67
  return;
68
68
  }
69
69
 
70
- const rawRes = await fetch(api, {
71
- method: 'POST',
70
+ const rawRes = await fetch(`${api}?ids=${ids.join(',')}`, {
71
+ method: 'GET',
72
72
  headers: {
73
73
  Accept: 'application/json',
74
74
  'Content-Type': 'application/json'
75
- },
76
- body: JSON.stringify({ids})
75
+ }
77
76
  });
78
77
 
79
78
  if (rawRes.status !== 200) {
@@ -54,4 +54,22 @@ function corsOptionsDelegate(req, callback) {
54
54
  callback(null, corsOptions);
55
55
  }
56
56
 
57
- module.exports = cors(corsOptionsDelegate);
57
+ /**
58
+ *
59
+ * @param {Express.Request} req
60
+ * @param {Express.Response} res
61
+ * @param {Function} next
62
+ */
63
+ const handleCaching = (req, res, next) => {
64
+ const method = req.method && req.method.toUpperCase && req.method.toUpperCase();
65
+ if (method === 'OPTIONS') {
66
+ // @NOTE: try to add native support for dynamic 'vary' header value in 'cors' module
67
+ res.vary('Origin');
68
+ }
69
+ next();
70
+ };
71
+
72
+ module.exports = [
73
+ handleCaching,
74
+ cors(corsOptionsDelegate)
75
+ ];
@@ -132,6 +132,9 @@ module.exports = {
132
132
 
133
133
  counts: {
134
134
  permissions: false,
135
+ options: [
136
+ 'ids'
137
+ ],
135
138
  async query(frame) {
136
139
  return commentsService.controller.count(frame);
137
140
  }
@@ -168,7 +168,7 @@ function sendWelcomeEmail(email, mailAPI) {
168
168
  };
169
169
 
170
170
  return mail.utils.generateContent({data: data, template: 'welcome'})
171
- .then((content) => {
171
+ .then(async (content) => {
172
172
  const message = {
173
173
  to: email,
174
174
  subject: tpl(messages.yourNewGhostBlog),
@@ -183,7 +183,7 @@ function sendWelcomeEmail(email, mailAPI) {
183
183
  }]
184
184
  };
185
185
 
186
- mailAPI.send(payload, {context: {internal: true}})
186
+ await mailAPI.send(payload, {context: {internal: true}})
187
187
  .catch((err) => {
188
188
  err.context = tpl(messages.unableToSendWelcomeEmail);
189
189
  logging.error(err);
@@ -105,11 +105,13 @@ module.exports = class CommentsController {
105
105
  }
106
106
 
107
107
  async count(frame) {
108
- if (!frame?.data?.ids) {
108
+ if (!frame?.options?.ids) {
109
109
  return await this.stats.getAllCounts();
110
110
  }
111
111
 
112
- return await this.stats.getCountsByPost(frame.data.ids);
112
+ const ids = frame?.options?.ids.split(',');
113
+
114
+ return await this.stats.getCountsByPost(ids);
113
115
  }
114
116
 
115
117
  /**
@@ -119,8 +121,8 @@ module.exports = class CommentsController {
119
121
  this.#checkMember(frame);
120
122
 
121
123
  return await this.service.likeComment(
122
- frame.options.id,
123
- frame.options?.context?.member,
124
+ frame.options.id,
125
+ frame.options?.context?.member,
124
126
  frame.options
125
127
  );
126
128
  }
@@ -132,8 +134,8 @@ module.exports = class CommentsController {
132
134
  this.#checkMember(frame);
133
135
 
134
136
  return await this.service.unlikeComment(
135
- frame.options.id,
136
- frame.options?.context?.member,
137
+ frame.options.id,
138
+ frame.options?.context?.member,
137
139
  frame.options
138
140
  );
139
141
  }
@@ -145,7 +147,7 @@ module.exports = class CommentsController {
145
147
  this.#checkMember(frame);
146
148
 
147
149
  return await this.service.reportComment(
148
- frame.options.id,
150
+ frame.options.id,
149
151
  frame.options?.context?.member
150
152
  );
151
153
  }
@@ -7,6 +7,7 @@ const api = require('../../api').endpoints;
7
7
  const apiFramework = require('@tryghost/api-framework');
8
8
  const {URL} = require('url');
9
9
  const mobiledocLib = require('../../lib/mobiledoc');
10
+ const lexicalLib = require('../../lib/lexical');
10
11
  const htmlToPlaintext = require('@tryghost/html-to-plaintext');
11
12
  const membersService = require('../members');
12
13
  const {isUnsplashImage, isLocalContentImage} = require('@tryghost/kg-default-cards/lib/utils');
@@ -124,8 +125,8 @@ const PostEmailSerializer = {
124
125
 
125
126
  // NOTE: serialization is needed to make sure we do post transformations such as image URL transformation from relative to absolute
126
127
  async serializePostModel(model) {
127
- // fetch mobiledoc rather than html and plaintext so we can render email-specific contents
128
- const frame = {options: {context: {user: true}, formats: 'mobiledoc'}};
128
+ // fetch mobiledoc/lexical rather than html and plaintext so we can render email-specific contents
129
+ const frame = {options: {context: {user: true}, formats: 'mobiledoc,lexical'}};
129
130
  const docName = 'posts';
130
131
 
131
132
  await apiFramework
@@ -297,11 +298,17 @@ const PostEmailSerializer = {
297
298
  post.excerpt = post.excerpt.replace(/\s\[http(.*?)\]/g, '');
298
299
  }
299
300
 
300
- post.html = mobiledocLib.mobiledocHtmlRenderer.render(
301
- JSON.parse(post.mobiledoc), {target: 'email', postUrl: post.url}
302
- );
301
+ if (post.lexical) {
302
+ post.html = lexicalLib.lexicalHtmlRenderer.render(
303
+ post.lexical, {target: 'email', postUrl: post.url}
304
+ );
305
+ } else {
306
+ post.html = mobiledocLib.mobiledocHtmlRenderer.render(
307
+ JSON.parse(post.mobiledoc), {target: 'email', postUrl: post.url}
308
+ );
309
+ }
303
310
 
304
- // perform any email specific adjustments to the mobiledoc->HTML render output
311
+ // perform any email specific adjustments to the HTML render output.
305
312
  // body wrapper is required so we can get proper top-level selections
306
313
  const cheerio = require('cheerio');
307
314
  const _cheerio = cheerio.load(`<body>${post.html}</body>`);
@@ -441,7 +448,7 @@ const PostEmailSerializer = {
441
448
  <h2
442
449
  style="margin-top: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 1.11em; font-weight: 700; text-rendering: optimizeLegibility; margin: 1.5em 0 0.5em 0; font-size: 26px;">
443
450
  Subscribe to <span style="white-space: nowrap; font-size: 26px !important;">continue reading.</span></h2>
444
- <p style="margin: 0 auto 1.5em auto; line-height: 1.6em; max-width: 440px;">Become a paid member of ${siteTitle} to get access to all
451
+ <p style="margin: 0 auto 1.5em auto; line-height: 1.6em; max-width: 440px;">Become a paid member of ${siteTitle} to get access to all
445
452
  <span style="white-space: nowrap;">subscriber-only content.</span></p>
446
453
  <div class="btn btn-accent" style="box-sizing: border-box; width: 100%; display: table;">
447
454
  <table border="0" cellspacing="0" cellpadding="0" align="center"
@@ -65,7 +65,7 @@ function getAllowlist() {
65
65
  * @param {Function} cb callback that configures CORS.
66
66
  * @return {null}
67
67
  */
68
- function handleCORS(req, cb) {
68
+ function corsOptionsDelegate(req, cb) {
69
69
  const origin = req.get('origin');
70
70
 
71
71
  // Request must have an Origin header
@@ -81,4 +81,22 @@ function handleCORS(req, cb) {
81
81
  return cb(null, DISABLE_CORS);
82
82
  }
83
83
 
84
- module.exports = cors(handleCORS);
84
+ /**
85
+ *
86
+ * @param {Express.Request} req
87
+ * @param {Express.Response} res
88
+ * @param {Function} next
89
+ */
90
+ const handleCaching = (req, res, next) => {
91
+ const method = req.method && req.method.toUpperCase && req.method.toUpperCase();
92
+ if (method === 'OPTIONS') {
93
+ // @NOTE: try to add native support for dynamic 'vary' header value in 'cors' module
94
+ res.vary('Origin');
95
+ }
96
+ next();
97
+ };
98
+
99
+ module.exports = [
100
+ handleCaching,
101
+ cors(corsOptionsDelegate)
102
+ ];
@@ -1,19 +1,24 @@
1
1
  const express = require('../../../shared/express');
2
+ const config = require('../../../shared/config');
2
3
  const api = require('../../api').endpoints;
3
4
  const {http} = require('@tryghost/api-framework');
5
+ const shared = require('../shared');
4
6
 
5
7
  const bodyParser = require('body-parser');
6
8
  const membersService = require('../../../server/services/members');
7
9
 
8
10
  module.exports = function apiRoutes() {
9
11
  const router = express.Router('comment api');
10
-
11
12
  router.use(bodyParser.json({limit: '50mb'}));
12
13
 
13
14
  // Global handling for member session, ensures a member is logged in to the frontend
14
15
  router.use(membersService.middleware.loadMemberSession);
15
16
 
16
- router.post('/counts', http(api.commentsMembers.counts));
17
+ const countsCache = shared.middleware.cacheControl(
18
+ 'public',
19
+ {maxAge: config.get('caching:commentsCountAPI:maxAge')}
20
+ );
21
+ router.get('/counts', countsCache, http(api.commentsMembers.counts));
17
22
 
18
23
  router.get('/', http(api.commentsMembers.browse));
19
24
  router.get('/:id', http(api.commentsMembers.read));
@@ -140,6 +140,9 @@
140
140
  },
141
141
  "contentAPI": {
142
142
  "maxAge": 0
143
+ },
144
+ "commentsCountAPI": {
145
+ "maxAge": 0
143
146
  }
144
147
  },
145
148
  "imageOptimization": {
@@ -168,7 +171,7 @@
168
171
  "comments": {
169
172
  "url": "https://cdn.jsdelivr.net/ghost/comments-ui@~{version}/umd/comments-ui.min.js",
170
173
  "styles": "https://cdn.jsdelivr.net/ghost/comments-ui@~{version}/umd/main.css",
171
- "version": "0.10"
174
+ "version": "0.12"
172
175
  },
173
176
  "editor": {
174
177
  "url": "https://unpkg.com/@tryghost/koenig-lexical@~{version}/dist/koenig-lexical.umd.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.22.5",
3
+ "version": "5.22.6",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -54,79 +54,79 @@
54
54
  "dependencies": {
55
55
  "@sentry/node": "7.15.0",
56
56
  "@tryghost/adapter-base-cache": "0.1.2",
57
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.22.5.tgz",
57
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.22.6.tgz",
58
58
  "@tryghost/admin-api-schema": "4.2.0",
59
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.22.5.tgz",
60
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.22.5.tgz",
61
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.22.5.tgz",
59
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.22.6.tgz",
60
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.22.6.tgz",
61
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.22.6.tgz",
62
62
  "@tryghost/bookshelf-plugins": "0.6.1",
63
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.22.5.tgz",
63
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.22.6.tgz",
64
64
  "@tryghost/color-utils": "0.1.21",
65
65
  "@tryghost/config-url-helpers": "1.0.3",
66
- "@tryghost/constants": "file:components/tryghost-constants-5.22.5.tgz",
67
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.22.5.tgz",
68
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.22.5.tgz",
66
+ "@tryghost/constants": "file:components/tryghost-constants-5.22.6.tgz",
67
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.22.6.tgz",
68
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.22.6.tgz",
69
69
  "@tryghost/database-info": "0.3.12",
70
70
  "@tryghost/debug": "0.1.19",
71
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.22.5.tgz",
72
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.22.5.tgz",
73
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.22.5.tgz",
74
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.22.5.tgz",
71
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.22.6.tgz",
72
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.22.6.tgz",
73
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.22.6.tgz",
74
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.22.6.tgz",
75
75
  "@tryghost/errors": "1.2.18",
76
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.22.5.tgz",
76
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.22.6.tgz",
77
77
  "@tryghost/helpers": "1.1.74",
78
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.22.5.tgz",
78
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.22.6.tgz",
79
79
  "@tryghost/http-cache-utils": "0.1.4",
80
80
  "@tryghost/image-transform": "1.2.2",
81
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.22.5.tgz",
81
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.22.6.tgz",
82
82
  "@tryghost/kg-card-factory": "3.1.7",
83
83
  "@tryghost/kg-default-atoms": "3.1.4",
84
84
  "@tryghost/kg-default-cards": "5.18.5",
85
85
  "@tryghost/kg-lexical-html-renderer": "0.0.10",
86
86
  "@tryghost/kg-mobiledoc-html-renderer": "5.3.9",
87
87
  "@tryghost/limit-service": "1.2.3",
88
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.22.5.tgz",
89
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.22.5.tgz",
90
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.22.5.tgz",
88
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.22.6.tgz",
89
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.22.6.tgz",
90
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.22.6.tgz",
91
91
  "@tryghost/logging": "2.3.2",
92
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.22.5.tgz",
93
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.22.5.tgz",
94
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.22.5.tgz",
95
- "@tryghost/member-events": "file:components/tryghost-member-events-5.22.5.tgz",
96
- "@tryghost/members-api": "file:components/tryghost-members-api-5.22.5.tgz",
97
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.22.5.tgz",
98
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.22.5.tgz",
99
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.22.5.tgz",
100
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.22.5.tgz",
101
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.22.5.tgz",
102
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.22.5.tgz",
92
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.22.6.tgz",
93
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.22.6.tgz",
94
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.22.6.tgz",
95
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.22.6.tgz",
96
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.22.6.tgz",
97
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.22.6.tgz",
98
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.22.6.tgz",
99
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.22.6.tgz",
100
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.22.6.tgz",
101
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.22.6.tgz",
102
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.22.6.tgz",
103
103
  "@tryghost/metrics": "1.0.16",
104
- "@tryghost/minifier": "file:components/tryghost-minifier-5.22.5.tgz",
105
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.22.5.tgz",
106
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.22.5.tgz",
107
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.22.5.tgz",
108
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.22.5.tgz",
109
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.22.5.tgz",
104
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.22.6.tgz",
105
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.22.6.tgz",
106
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.22.6.tgz",
107
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.22.6.tgz",
108
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.22.6.tgz",
109
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.22.6.tgz",
110
110
  "@tryghost/nodemailer": "0.3.29",
111
111
  "@tryghost/nql": "0.11.0",
112
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.22.5.tgz",
113
- "@tryghost/package-json": "file:components/tryghost-package-json-5.22.5.tgz",
112
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.22.6.tgz",
113
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.22.6.tgz",
114
114
  "@tryghost/pretty-cli": "1.2.31",
115
115
  "@tryghost/promise": "0.1.22",
116
116
  "@tryghost/request": "0.1.31",
117
- "@tryghost/security": "file:components/tryghost-security-5.22.5.tgz",
118
- "@tryghost/session-service": "file:components/tryghost-session-service-5.22.5.tgz",
119
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.22.5.tgz",
117
+ "@tryghost/security": "file:components/tryghost-security-5.22.6.tgz",
118
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.22.6.tgz",
119
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.22.6.tgz",
120
120
  "@tryghost/social-urls": "0.1.33",
121
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.22.5.tgz",
122
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.22.5.tgz",
121
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.22.6.tgz",
122
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.22.6.tgz",
123
123
  "@tryghost/string": "0.2.1",
124
- "@tryghost/tiers": "file:components/tryghost-tiers-5.22.5.tgz",
124
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.22.6.tgz",
125
125
  "@tryghost/tpl": "0.1.19",
126
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.22.5.tgz",
126
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.22.6.tgz",
127
127
  "@tryghost/url-utils": "4.2.0",
128
128
  "@tryghost/validator": "0.1.29",
129
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.22.5.tgz",
129
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.22.6.tgz",
130
130
  "@tryghost/version": "0.1.16",
131
131
  "@tryghost/zip": "1.1.29",
132
132
  "amperize": "0.6.1",
@@ -199,7 +199,7 @@
199
199
  "cli-progress": "3.11.2",
200
200
  "cssnano": "5.1.14",
201
201
  "eslint": "8.26.0",
202
- "html-validate": "7.7.1",
202
+ "html-validate": "7.8.0",
203
203
  "inquirer": "8.2.5",
204
204
  "jwks-rsa": "2.1.5",
205
205
  "mocha": "10.1.0",
@@ -219,57 +219,57 @@
219
219
  "@tryghost/logging": "2.3.2",
220
220
  "moment": "2.24.0",
221
221
  "moment-timezone": "0.5.23",
222
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.22.5.tgz",
223
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.22.5.tgz",
224
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.22.5.tgz",
225
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.22.5.tgz",
226
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.22.5.tgz",
227
- "@tryghost/constants": "file:components/tryghost-constants-5.22.5.tgz",
228
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.22.5.tgz",
229
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.22.5.tgz",
230
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.22.5.tgz",
231
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.22.5.tgz",
232
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.22.5.tgz",
233
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.22.5.tgz",
234
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.22.5.tgz",
235
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.22.5.tgz",
236
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.22.5.tgz",
237
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.22.5.tgz",
238
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.22.5.tgz",
239
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.22.5.tgz",
240
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.22.5.tgz",
241
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.22.5.tgz",
242
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.22.5.tgz",
243
- "@tryghost/member-analytics-service": "file:components/tryghost-member-analytics-service-5.22.5.tgz",
244
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.22.5.tgz",
245
- "@tryghost/member-events": "file:components/tryghost-member-events-5.22.5.tgz",
246
- "@tryghost/members-analytics-ingress": "file:components/tryghost-members-analytics-ingress-5.22.5.tgz",
247
- "@tryghost/members-api": "file:components/tryghost-members-api-5.22.5.tgz",
248
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.22.5.tgz",
249
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.22.5.tgz",
250
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.22.5.tgz",
251
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.22.5.tgz",
252
- "@tryghost/minifier": "file:components/tryghost-minifier-5.22.5.tgz",
253
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.22.5.tgz",
254
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.22.5.tgz",
255
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.22.5.tgz",
256
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.22.5.tgz",
257
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.22.5.tgz",
258
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.22.5.tgz",
259
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.22.5.tgz",
260
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.22.5.tgz",
261
- "@tryghost/package-json": "file:components/tryghost-package-json-5.22.5.tgz",
262
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.22.5.tgz",
263
- "@tryghost/referrers": "file:components/tryghost-referrers-5.22.5.tgz",
264
- "@tryghost/security": "file:components/tryghost-security-5.22.5.tgz",
265
- "@tryghost/session-service": "file:components/tryghost-session-service-5.22.5.tgz",
266
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.22.5.tgz",
267
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.22.5.tgz",
268
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.22.5.tgz",
269
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.22.5.tgz",
270
- "@tryghost/tiers": "file:components/tryghost-tiers-5.22.5.tgz",
271
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.22.5.tgz",
272
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.22.5.tgz",
273
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.22.5.tgz"
222
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.22.6.tgz",
223
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.22.6.tgz",
224
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.22.6.tgz",
225
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.22.6.tgz",
226
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.22.6.tgz",
227
+ "@tryghost/constants": "file:components/tryghost-constants-5.22.6.tgz",
228
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.22.6.tgz",
229
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.22.6.tgz",
230
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.22.6.tgz",
231
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.22.6.tgz",
232
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.22.6.tgz",
233
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.22.6.tgz",
234
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.22.6.tgz",
235
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.22.6.tgz",
236
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.22.6.tgz",
237
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.22.6.tgz",
238
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.22.6.tgz",
239
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.22.6.tgz",
240
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.22.6.tgz",
241
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.22.6.tgz",
242
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.22.6.tgz",
243
+ "@tryghost/member-analytics-service": "file:components/tryghost-member-analytics-service-5.22.6.tgz",
244
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.22.6.tgz",
245
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.22.6.tgz",
246
+ "@tryghost/members-analytics-ingress": "file:components/tryghost-members-analytics-ingress-5.22.6.tgz",
247
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.22.6.tgz",
248
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.22.6.tgz",
249
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.22.6.tgz",
250
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.22.6.tgz",
251
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.22.6.tgz",
252
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.22.6.tgz",
253
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.22.6.tgz",
254
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.22.6.tgz",
255
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.22.6.tgz",
256
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.22.6.tgz",
257
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.22.6.tgz",
258
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.22.6.tgz",
259
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.22.6.tgz",
260
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.22.6.tgz",
261
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.22.6.tgz",
262
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.22.6.tgz",
263
+ "@tryghost/referrers": "file:components/tryghost-referrers-5.22.6.tgz",
264
+ "@tryghost/security": "file:components/tryghost-security-5.22.6.tgz",
265
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.22.6.tgz",
266
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.22.6.tgz",
267
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.22.6.tgz",
268
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.22.6.tgz",
269
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.22.6.tgz",
270
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.22.6.tgz",
271
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.22.6.tgz",
272
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.22.6.tgz",
273
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.22.6.tgz"
274
274
  }
275
275
  }