ghost 5.49.0 → 5.49.2

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 (132) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.49.2.tgz +0 -0
  2. package/components/{tryghost-adapter-cache-redis-5.49.0.tgz → tryghost-adapter-cache-redis-5.49.2.tgz} +0 -0
  3. package/components/{tryghost-adapter-manager-5.49.0.tgz → tryghost-adapter-manager-5.49.2.tgz} +0 -0
  4. package/components/{tryghost-announcement-bar-settings-5.49.0.tgz → tryghost-announcement-bar-settings-5.49.2.tgz} +0 -0
  5. package/components/{tryghost-api-framework-5.49.0.tgz → tryghost-api-framework-5.49.2.tgz} +0 -0
  6. package/components/tryghost-api-version-compatibility-service-5.49.2.tgz +0 -0
  7. package/components/{tryghost-audience-feedback-5.49.0.tgz → tryghost-audience-feedback-5.49.2.tgz} +0 -0
  8. package/components/tryghost-bootstrap-socket-5.49.2.tgz +0 -0
  9. package/components/tryghost-collections-5.49.2.tgz +0 -0
  10. package/components/tryghost-constants-5.49.2.tgz +0 -0
  11. package/components/{tryghost-custom-theme-settings-service-5.49.0.tgz → tryghost-custom-theme-settings-service-5.49.2.tgz} +0 -0
  12. package/components/{tryghost-data-generator-5.49.0.tgz → tryghost-data-generator-5.49.2.tgz} +0 -0
  13. package/components/tryghost-domain-events-5.49.2.tgz +0 -0
  14. package/components/tryghost-dynamic-routing-events-5.49.2.tgz +0 -0
  15. package/components/tryghost-email-analytics-provider-mailgun-5.49.2.tgz +0 -0
  16. package/components/{tryghost-email-analytics-service-5.49.0.tgz → tryghost-email-analytics-service-5.49.2.tgz} +0 -0
  17. package/components/tryghost-email-content-generator-5.49.2.tgz +0 -0
  18. package/components/tryghost-email-events-5.49.2.tgz +0 -0
  19. package/components/tryghost-email-service-5.49.2.tgz +0 -0
  20. package/components/{tryghost-email-suppression-list-5.49.0.tgz → tryghost-email-suppression-list-5.49.2.tgz} +0 -0
  21. package/components/tryghost-event-aware-cache-wrapper-5.49.2.tgz +0 -0
  22. package/components/{tryghost-express-dynamic-redirects-5.49.0.tgz → tryghost-express-dynamic-redirects-5.49.2.tgz} +0 -0
  23. package/components/{tryghost-external-media-inliner-5.49.0.tgz → tryghost-external-media-inliner-5.49.2.tgz} +0 -0
  24. package/components/{tryghost-extract-api-key-5.49.0.tgz → tryghost-extract-api-key-5.49.2.tgz} +0 -0
  25. package/components/tryghost-html-to-plaintext-5.49.2.tgz +0 -0
  26. package/components/tryghost-i18n-5.49.2.tgz +0 -0
  27. package/components/tryghost-importer-handler-content-files-5.49.2.tgz +0 -0
  28. package/components/{tryghost-importer-revue-5.49.0.tgz → tryghost-importer-revue-5.49.2.tgz} +0 -0
  29. package/components/tryghost-in-memory-repository-5.49.2.tgz +0 -0
  30. package/components/{tryghost-job-manager-5.49.0.tgz → tryghost-job-manager-5.49.2.tgz} +0 -0
  31. package/components/tryghost-link-redirects-5.49.2.tgz +0 -0
  32. package/components/{tryghost-link-replacer-5.49.0.tgz → tryghost-link-replacer-5.49.2.tgz} +0 -0
  33. package/components/tryghost-link-tracking-5.49.2.tgz +0 -0
  34. package/components/{tryghost-magic-link-5.49.0.tgz → tryghost-magic-link-5.49.2.tgz} +0 -0
  35. package/components/{tryghost-mailgun-client-5.49.0.tgz → tryghost-mailgun-client-5.49.2.tgz} +0 -0
  36. package/components/{tryghost-member-attribution-5.49.0.tgz → tryghost-member-attribution-5.49.2.tgz} +0 -0
  37. package/components/tryghost-member-events-5.49.2.tgz +0 -0
  38. package/components/{tryghost-members-api-5.49.0.tgz → tryghost-members-api-5.49.2.tgz} +0 -0
  39. package/components/{tryghost-members-csv-5.49.0.tgz → tryghost-members-csv-5.49.2.tgz} +0 -0
  40. package/components/{tryghost-members-events-service-5.49.0.tgz → tryghost-members-events-service-5.49.2.tgz} +0 -0
  41. package/components/{tryghost-members-importer-5.49.0.tgz → tryghost-members-importer-5.49.2.tgz} +0 -0
  42. package/components/{tryghost-members-offers-5.49.0.tgz → tryghost-members-offers-5.49.2.tgz} +0 -0
  43. package/components/{tryghost-members-payments-5.49.0.tgz → tryghost-members-payments-5.49.2.tgz} +0 -0
  44. package/components/{tryghost-members-ssr-5.49.0.tgz → tryghost-members-ssr-5.49.2.tgz} +0 -0
  45. package/components/{tryghost-members-stripe-service-5.49.0.tgz → tryghost-members-stripe-service-5.49.2.tgz} +0 -0
  46. package/components/{tryghost-mentions-email-report-5.49.0.tgz → tryghost-mentions-email-report-5.49.2.tgz} +0 -0
  47. package/components/{tryghost-milestones-5.49.0.tgz → tryghost-milestones-5.49.2.tgz} +0 -0
  48. package/components/{tryghost-minifier-5.49.0.tgz → tryghost-minifier-5.49.2.tgz} +0 -0
  49. package/components/tryghost-mw-api-version-mismatch-5.49.2.tgz +0 -0
  50. package/components/tryghost-mw-cache-control-5.49.2.tgz +0 -0
  51. package/components/{tryghost-mw-error-handler-5.49.0.tgz → tryghost-mw-error-handler-5.49.2.tgz} +0 -0
  52. package/components/tryghost-mw-session-from-token-5.49.2.tgz +0 -0
  53. package/components/tryghost-mw-update-user-last-seen-5.49.2.tgz +0 -0
  54. package/components/tryghost-mw-version-match-5.49.2.tgz +0 -0
  55. package/components/tryghost-mw-vhost-5.49.2.tgz +0 -0
  56. package/components/{tryghost-oembed-service-5.49.0.tgz → tryghost-oembed-service-5.49.2.tgz} +0 -0
  57. package/components/{tryghost-package-json-5.49.0.tgz → tryghost-package-json-5.49.2.tgz} +0 -0
  58. package/components/tryghost-post-revisions-5.49.2.tgz +0 -0
  59. package/components/tryghost-posts-service-5.49.2.tgz +0 -0
  60. package/components/tryghost-referrers-5.49.2.tgz +0 -0
  61. package/components/tryghost-security-5.49.2.tgz +0 -0
  62. package/components/{tryghost-session-service-5.49.0.tgz → tryghost-session-service-5.49.2.tgz} +0 -0
  63. package/components/{tryghost-settings-path-manager-5.49.0.tgz → tryghost-settings-path-manager-5.49.2.tgz} +0 -0
  64. package/components/{tryghost-slack-notifications-5.49.0.tgz → tryghost-slack-notifications-5.49.2.tgz} +0 -0
  65. package/components/tryghost-staff-service-5.49.2.tgz +0 -0
  66. package/components/{tryghost-stats-service-5.49.0.tgz → tryghost-stats-service-5.49.2.tgz} +0 -0
  67. package/components/{tryghost-tiers-5.49.0.tgz → tryghost-tiers-5.49.2.tgz} +0 -0
  68. package/components/tryghost-update-check-service-5.49.2.tgz +0 -0
  69. package/components/tryghost-verification-trigger-5.49.2.tgz +0 -0
  70. package/components/tryghost-version-notifications-data-service-5.49.2.tgz +0 -0
  71. package/components/{tryghost-webmentions-5.49.0.tgz → tryghost-webmentions-5.49.2.tgz} +0 -0
  72. package/core/built/admin/assets/{chunk.362.6bb7cbc3fd3afda65ae1.js → chunk.124.ede028f827ba942bf7e3.js} +822 -688
  73. package/core/built/admin/assets/{chunk.143.c84e66067cd00cfdfb1a.js → chunk.143.1d467437aed60c459bbb.js} +5 -5
  74. package/core/built/admin/assets/{chunk.178.a05c4695bf385a398033.js → chunk.178.6d55d1f7bc3a5eb2ec4b.js} +4 -4
  75. package/core/built/admin/assets/{ghost-c74cada1daf3e4f04e7ef4dfd2c77eea.js → ghost-9169ef48d0474b34a0a2a01edd29683b.js} +3751 -3659
  76. package/core/built/admin/assets/ghost-dark-b4374a49465902d3cd1a297ed3f5222f.css +1 -0
  77. package/core/built/admin/assets/ghost-e5dfcf346304a62879b8aa8380b500c7.css +1 -0
  78. package/core/built/admin/assets/{vendor-171b41e446763449417a8687279d2270.js → vendor-e0851d527586cb85e37e146ec921136a.js} +97 -88
  79. package/core/built/admin/index.html +5 -5
  80. package/core/frontend/src/cards/css/signup.css +159 -26
  81. package/core/server/api/endpoints/utils/serializers/output/config.js +2 -1
  82. package/core/server/api/endpoints/utils/serializers/output/mappers/collections.js +38 -0
  83. package/core/server/api/endpoints/utils/serializers/output/mappers/index.js +1 -0
  84. package/core/server/run-update-check.js +4 -2
  85. package/core/server/services/email-service/EmailServiceWrapper.js +2 -1
  86. package/core/server/services/members/emails/signin.js +5 -5
  87. package/core/server/services/members/emails/signup-paid.js +9 -9
  88. package/core/server/services/members/emails/signup.js +10 -10
  89. package/core/server/services/members/emails/subscribe.js +10 -10
  90. package/core/server/services/members/emails/update-email.js +8 -8
  91. package/core/server/services/public-config/config.js +2 -1
  92. package/core/server/update-check.js +15 -7
  93. package/core/shared/config/defaults.json +4 -0
  94. package/core/shared/labs.js +2 -1
  95. package/package.json +142 -141
  96. package/yarn.lock +562 -500
  97. package/components/tryghost-adapter-cache-memory-ttl-5.49.0.tgz +0 -0
  98. package/components/tryghost-api-version-compatibility-service-5.49.0.tgz +0 -0
  99. package/components/tryghost-bootstrap-socket-5.49.0.tgz +0 -0
  100. package/components/tryghost-collections-5.49.0.tgz +0 -0
  101. package/components/tryghost-constants-5.49.0.tgz +0 -0
  102. package/components/tryghost-domain-events-5.49.0.tgz +0 -0
  103. package/components/tryghost-dynamic-routing-events-5.49.0.tgz +0 -0
  104. package/components/tryghost-email-analytics-provider-mailgun-5.49.0.tgz +0 -0
  105. package/components/tryghost-email-content-generator-5.49.0.tgz +0 -0
  106. package/components/tryghost-email-events-5.49.0.tgz +0 -0
  107. package/components/tryghost-email-service-5.49.0.tgz +0 -0
  108. package/components/tryghost-event-aware-cache-wrapper-5.49.0.tgz +0 -0
  109. package/components/tryghost-html-to-plaintext-5.49.0.tgz +0 -0
  110. package/components/tryghost-i18n-5.49.0.tgz +0 -0
  111. package/components/tryghost-importer-handler-content-files-5.49.0.tgz +0 -0
  112. package/components/tryghost-in-memory-repository-5.49.0.tgz +0 -0
  113. package/components/tryghost-link-redirects-5.49.0.tgz +0 -0
  114. package/components/tryghost-link-tracking-5.49.0.tgz +0 -0
  115. package/components/tryghost-member-events-5.49.0.tgz +0 -0
  116. package/components/tryghost-mw-api-version-mismatch-5.49.0.tgz +0 -0
  117. package/components/tryghost-mw-cache-control-5.49.0.tgz +0 -0
  118. package/components/tryghost-mw-session-from-token-5.49.0.tgz +0 -0
  119. package/components/tryghost-mw-update-user-last-seen-5.49.0.tgz +0 -0
  120. package/components/tryghost-mw-version-match-5.49.0.tgz +0 -0
  121. package/components/tryghost-mw-vhost-5.49.0.tgz +0 -0
  122. package/components/tryghost-post-revisions-5.49.0.tgz +0 -0
  123. package/components/tryghost-posts-service-5.49.0.tgz +0 -0
  124. package/components/tryghost-referrers-5.49.0.tgz +0 -0
  125. package/components/tryghost-security-5.49.0.tgz +0 -0
  126. package/components/tryghost-staff-service-5.49.0.tgz +0 -0
  127. package/components/tryghost-update-check-service-5.49.0.tgz +0 -0
  128. package/components/tryghost-verification-trigger-5.49.0.tgz +0 -0
  129. package/components/tryghost-version-notifications-data-service-5.49.0.tgz +0 -0
  130. package/core/built/admin/assets/ghost-c4f5365681d093dace25873e79b1e841.css +0 -1
  131. package/core/built/admin/assets/ghost-dark-282e39d72ddcbc4ea45fc80c6580a33e.css +0 -1
  132. /package/core/built/admin/assets/{chunk.362.6bb7cbc3fd3afda65ae1.js.LICENSE.txt → chunk.124.ede028f827ba942bf7e3.js.LICENSE.txt} +0 -0
@@ -1,10 +1,10 @@
1
- module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, siteUrl}) => `
1
+ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain, siteUrl}) => `
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
5
  <meta name="viewport" content="width=device-width">
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7
- <title>📫 Confirm your subscription to ${siteTitle}</title>
7
+ <title>📫 ${t('Confirm your subscription to {{siteTitle}}', {siteTitle, interpolation: {escapeValue: false}})}</title>
8
8
  <style>
9
9
  /* -------------------------------------
10
10
  RESPONSIVE AND MOBILE FRIENDLY STYLES
@@ -107,7 +107,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
107
107
  <div class="content" style="box-sizing: border-box; display: block; Margin: 0 auto; max-width: 600px; padding: 30px 20px;">
108
108
 
109
109
  <!-- START CENTERED WHITE CONTAINER -->
110
- <span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">You're one tap away from subscribing to ${siteTitle}!</span>
110
+ <span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">${t(`You're one tap away from subscribing to {{siteTitle}}!`, {siteTitle, interpolation: {escapeValue: false}})}</span>
111
111
  <table class="main" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; background: #ffffff; border-radius: 8px;">
112
112
 
113
113
  <!-- START MAIN CONTENT AREA -->
@@ -116,8 +116,8 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
116
116
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
117
117
  <tr>
118
118
  <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
119
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there,</p>
120
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">You're one tap away from subscribing to ${siteTitle} — please confirm your email address with this link:</p>
119
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">${t('Hey there,')}</p>
120
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">${t(`You're one tap away from subscribing to {{siteTitle}} — please confirm your email address with this link:`, {siteTitle, interpolation: {escapeValue: false}})}</p>
121
121
  <table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
122
122
  <tbody>
123
123
  <tr>
@@ -125,7 +125,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
125
125
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: auto;">
126
126
  <tbody>
127
127
  <tr>
128
- <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: ${accentColor}; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: ${accentColor}; border: solid 1px ${accentColor}; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: ${accentColor};">Confirm email address</a> </td>
128
+ <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: ${accentColor}; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: ${accentColor}; border: solid 1px ${accentColor}; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: ${accentColor};">${t('Confirm email address')}</a> </td>
129
129
  </tr>
130
130
  </tbody>
131
131
  </table>
@@ -133,10 +133,10 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
133
133
  </tr>
134
134
  </tbody>
135
135
  </table>
136
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 11px;">For your security, the link will expire in 24 hours time.</p>
137
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 30px;">All the best!</p>
136
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 11px;">${t('For your security, the link will expire in 24 hours time.')}</p>
137
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 30px;">${t('All the best!')}</p>
138
138
  <hr/>
139
- <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">You can also copy & paste this URL into your browser:</p>
139
+ <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">${t('You can also copy & paste this URL into your browser:')}</p>
140
140
  <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #3A464C;">${url}</p>
141
141
  </td>
142
142
  </tr>
@@ -148,7 +148,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
148
148
 
149
149
  <tr>
150
150
  <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top; padding-top: 80px;">
151
- <p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">If you did not make this request, you can simply delete this message. <br />You will not be subscribed.</p>
151
+ <p class="small" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; line-height: 16px; font-size: 11px; color: #738A94; font-weight: normal; margin: 0;">${t('If you did not make this request, you can simply delete this message.')} <br />${t('You will not be subscribed.')}</p>
152
152
  </td>
153
153
  </tr>
154
154
  <tr>
@@ -1,10 +1,10 @@
1
- module.exports = ({email, url}) => `
1
+ module.exports = ({t, email, url}) => `
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
5
  <meta name="viewport" content="width=device-width">
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7
- <title>Confirm your email address</title>
7
+ <title>${t('Confirm your email address')}</title>
8
8
  <style>
9
9
  /* -------------------------------------
10
10
  RESPONSIVE AND MOBILE FRIENDLY STYLES
@@ -108,8 +108,8 @@ module.exports = ({email, url}) => `
108
108
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
109
109
  <tr>
110
110
  <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
111
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">Hey there,</p>
112
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">Please confirm your email address with this link:</p>
111
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 24px; margin: 0; margin-bottom: 15px;">${t('Hey there,')}</p>
112
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 32px;">${t('Please confirm your email address with this link:')}</p>
113
113
  <table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
114
114
  <tbody>
115
115
  <tr>
@@ -117,7 +117,7 @@ module.exports = ({email, url}) => `
117
117
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: auto;">
118
118
  <tbody>
119
119
  <tr>
120
- <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: #15212A; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: #15212A; border: solid 1px #15212A; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: #15212A;">Confirm email address</a> </td>
120
+ <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: #15212A; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: #15212A; border: solid 1px #15212A; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: #15212A;">${t('Confirm email address')}</a> </td>
121
121
  </tr>
122
122
  </tbody>
123
123
  </table>
@@ -125,9 +125,9 @@ module.exports = ({email, url}) => `
125
125
  </tr>
126
126
  </tbody>
127
127
  </table>
128
- <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 25px;">For your security, the link will expire in 24 hours time.</p>
128
+ <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px; margin-bottom: 25px;">${t('For your security, the link will expire in 24 hours time.')}</p>
129
129
  <hr/>
130
- <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">You can also copy & paste this URL into your browser:</p>
130
+ <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; color: #3A464C; font-weight: normal; margin: 0; line-height: 24px;">${t('You can also copy & paste this URL into your browser:')}</p>
131
131
  <p style="word-break: break-all; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 15px; line-height: 22px; margin-top: 0; color: #738A94;">${url}</p>
132
132
  </td>
133
133
  </tr>
@@ -143,7 +143,7 @@ module.exports = ({email, url}) => `
143
143
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
144
144
  <tr>
145
145
  <td class="content-block" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; vertical-align: top; padding-bottom: 5px; padding-top: 15px; font-size: 11px; line-height: 16px; color: #738A94; text-align: center;">
146
- If you did not make this request, you can simply delete this message.<br/>This email address will not be used.
146
+ ${t('If you did not make this request, you can simply delete this message.')}<br/>${t('This email address will not be used.')}
147
147
  </td>
148
148
  </tr>
149
149
  <tr>
@@ -21,7 +21,8 @@ module.exports = function getConfigProperties() {
21
21
  tenor: config.get('tenor'),
22
22
  editor: config.get('editor'),
23
23
  pintura: config.get('pintura'),
24
- adminX: config.get('adminX')
24
+ adminX: config.get('adminX'),
25
+ signupForm: config.get('signupForm')
25
26
  };
26
27
 
27
28
  const billingUrl = config.get('hostSettings:billing:enabled') ? config.get('hostSettings:billing:url') : '';
@@ -14,14 +14,22 @@ const UpdateCheckService = require('@tryghost/update-check-service');
14
14
  * Initializes and triggers update check
15
15
  * @param {Object} [options]
16
16
  * @param {Boolean} [options.rethrowErrors] - if true, errors will be thrown instead of logged
17
+ * @param {Boolean} [options.forceUpdate] - if true, the update check will be triggered regardless of the environment or scheudle, defaults to config if no value provided
18
+ * @param {String} [options.updateCheckUrl] - the url to check for updates against, defaults to config if no value provided
17
19
  * @returns {Promise<any>}
18
20
  */
19
- module.exports = async ({rethrowErrors = false} = {}) => {
20
- const allowedCheckEnvironments = ['development', 'production'];
21
+ module.exports = async ({
22
+ rethrowErrors = false,
23
+ forceUpdate = config.get('updateCheck:forceUpdate'),
24
+ updateCheckUrl = config.get('updateCheck:url')
25
+ } = {}) => {
26
+ if (!forceUpdate) {
27
+ const allowedCheckEnvironments = ['development', 'production'];
21
28
 
22
- // CASE: The check will not happen if your NODE_ENV is not in the allowed defined environments.
23
- if (_.indexOf(allowedCheckEnvironments, process.env.NODE_ENV) === -1) {
24
- return;
29
+ // CASE: The check will not happen if your NODE_ENV is not in the allowed defined environments
30
+ if (_.indexOf(allowedCheckEnvironments, process.env.NODE_ENV) === -1) {
31
+ return;
32
+ }
25
33
  }
26
34
 
27
35
  const {GhostMailer} = require('./services/mail');
@@ -47,11 +55,11 @@ module.exports = async ({rethrowErrors = false} = {}) => {
47
55
  mail: config.get('mail'),
48
56
  env: config.get('env'),
49
57
  databaseType: databaseInfo.getEngine(),
50
- checkEndpoint: config.get('updateCheck:url'),
58
+ checkEndpoint: updateCheckUrl,
51
59
  isPrivacyDisabled: config.isPrivacyDisabled('useUpdateCheck'),
52
60
  notificationGroups: config.get('notificationGroups'),
53
61
  siteUrl: urlUtils.urlFor('home', true),
54
- forceUpdate: config.get('updateCheck:forceUpdate'),
62
+ forceUpdate,
55
63
  ghostVersion: ghostVersion.original,
56
64
  rethrowErrors
57
65
  },
@@ -200,6 +200,10 @@
200
200
  "url": "https://cdn.jsdelivr.net/ghost/admin-x-settings@~{version}/dist/admin-x-settings.umd.js",
201
201
  "version": "0.0"
202
202
  },
203
+ "signupForm": {
204
+ "url": "https://cdn.jsdelivr.net/ghost/signup-form@~{version}/umd/signup-form.min.js",
205
+ "version": "0"
206
+ },
203
207
  "tenor": {
204
208
  "googleApiKey": null,
205
209
  "contentFilter": "off"
@@ -42,7 +42,8 @@ const ALPHA_FEATURES = [
42
42
  'imageEditor',
43
43
  'signupCard',
44
44
  'collections',
45
- 'adminXSettings'
45
+ 'adminXSettings',
46
+ 'signupForm'
46
47
  ];
47
48
 
48
49
  module.exports.GA_KEYS = [...GA_FEATURES];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.49.0",
3
+ "version": "5.49.2",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -39,8 +39,9 @@
39
39
  "test:browser:single": "NODE_ENV=testing-browser playwright test",
40
40
  "test:browser:setup": "npx playwright install",
41
41
  "test:browser:record": "NODE_ENV=testing-browser yarn start record-test",
42
- "test:ci": "c8 -c ./.c8rc.e2e.json yarn test:ci:base",
43
- "test:ci:base": "yarn test:e2e -b && yarn test:integration -b && yarn test:regression -b",
42
+ "test:ci:e2e": "c8 -c ./.c8rc.e2e.json -o coverage-e2e yarn test:e2e -b",
43
+ "test:ci:regression": "c8 -c ./.c8rc.e2e.json -o coverage-regression --lines 72 --functions 66 --branches 82 --statements 72 yarn test:regression -b",
44
+ "test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 57 --functions 48 --branches 77 --statements 57 yarn test:integration -b",
44
45
  "test:unit:slow": "yarn test:unit --reporter=mocha-slow-test-reporter",
45
46
  "test:int:slow": "yarn test:integration --reporter=mocha-slow-test-reporter",
46
47
  "test:e2e:slow": "yarn test:e2e --reporter=mocha-slow-test-reporter",
@@ -59,102 +60,102 @@
59
60
  },
60
61
  "dependencies": {
61
62
  "@extractus/oembed-extractor": "3.1.8",
62
- "@sentry/node": "7.50.0",
63
+ "@sentry/node": "7.52.1",
63
64
  "@tryghost/adapter-base-cache": "0.1.5",
64
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.49.0.tgz",
65
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.49.0.tgz",
65
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.49.2.tgz",
66
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.49.2.tgz",
66
67
  "@tryghost/admin-api-schema": "4.3.0",
67
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.49.0.tgz",
68
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.49.0.tgz",
69
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.49.0.tgz",
70
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.49.0.tgz",
68
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.49.2.tgz",
69
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.49.2.tgz",
70
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.49.2.tgz",
71
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.49.2.tgz",
71
72
  "@tryghost/bookshelf-plugins": "0.6.7",
72
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.49.0.tgz",
73
- "@tryghost/collections": "file:components/tryghost-collections-5.49.0.tgz",
73
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.49.2.tgz",
74
+ "@tryghost/collections": "file:components/tryghost-collections-5.49.2.tgz",
74
75
  "@tryghost/color-utils": "0.1.24",
75
76
  "@tryghost/config-url-helpers": "1.0.6",
76
- "@tryghost/constants": "file:components/tryghost-constants-5.49.0.tgz",
77
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.49.0.tgz",
78
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.49.0.tgz",
77
+ "@tryghost/constants": "file:components/tryghost-constants-5.49.2.tgz",
78
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.49.2.tgz",
79
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.49.2.tgz",
79
80
  "@tryghost/database-info": "0.3.17",
80
81
  "@tryghost/debug": "0.1.24",
81
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.49.0.tgz",
82
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.49.0.tgz",
83
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.49.0.tgz",
84
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.49.0.tgz",
85
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.49.0.tgz",
82
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.49.2.tgz",
83
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.49.2.tgz",
84
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.49.2.tgz",
85
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.49.2.tgz",
86
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.49.2.tgz",
86
87
  "@tryghost/email-mock-receiver": "0.3.1",
87
- "@tryghost/email-service": "file:components/tryghost-email-service-5.49.0.tgz",
88
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.49.0.tgz",
88
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.49.2.tgz",
89
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.49.2.tgz",
89
90
  "@tryghost/errors": "1.2.24",
90
- "@tryghost/event-aware-cache-wrapper": "file:components/tryghost-event-aware-cache-wrapper-5.49.0.tgz",
91
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.49.0.tgz",
92
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.49.0.tgz",
91
+ "@tryghost/event-aware-cache-wrapper": "file:components/tryghost-event-aware-cache-wrapper-5.49.2.tgz",
92
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.49.2.tgz",
93
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.49.2.tgz",
93
94
  "@tryghost/helpers": "1.1.77",
94
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.49.0.tgz",
95
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.49.2.tgz",
95
96
  "@tryghost/http-cache-utils": "0.1.9",
96
- "@tryghost/i18n": "file:components/tryghost-i18n-5.49.0.tgz",
97
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.49.2.tgz",
97
98
  "@tryghost/image-transform": "1.2.6",
98
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.49.0.tgz",
99
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.49.0.tgz",
100
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.49.0.tgz",
99
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.49.2.tgz",
100
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.49.2.tgz",
101
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.49.2.tgz",
101
102
  "@tryghost/kg-card-factory": "4.0.8",
102
103
  "@tryghost/kg-default-atoms": "4.0.1",
103
104
  "@tryghost/kg-default-cards": "9.1.0",
104
- "@tryghost/kg-default-nodes": "0.0.42",
105
- "@tryghost/kg-lexical-html-renderer": "0.1.38",
105
+ "@tryghost/kg-default-nodes": "0.0.46",
106
+ "@tryghost/kg-lexical-html-renderer": "0.1.42",
106
107
  "@tryghost/kg-mobiledoc-html-renderer": "6.0.8",
107
108
  "@tryghost/limit-service": "1.2.6",
108
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.49.0.tgz",
109
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.49.0.tgz",
110
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.49.0.tgz",
109
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.49.2.tgz",
110
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.49.2.tgz",
111
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.49.2.tgz",
111
112
  "@tryghost/logging": "2.4.4",
112
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.49.0.tgz",
113
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.49.0.tgz",
114
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.49.0.tgz",
115
- "@tryghost/member-events": "file:components/tryghost-member-events-5.49.0.tgz",
116
- "@tryghost/members-api": "file:components/tryghost-members-api-5.49.0.tgz",
117
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.49.0.tgz",
118
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.49.0.tgz",
119
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.49.0.tgz",
120
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.49.0.tgz",
121
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.49.0.tgz",
122
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.49.0.tgz",
123
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.49.0.tgz",
113
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.49.2.tgz",
114
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.49.2.tgz",
115
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.49.2.tgz",
116
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.49.2.tgz",
117
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.49.2.tgz",
118
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.49.2.tgz",
119
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.49.2.tgz",
120
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.49.2.tgz",
121
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.49.2.tgz",
122
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.49.2.tgz",
123
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.49.2.tgz",
124
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.49.2.tgz",
124
125
  "@tryghost/metrics": "1.0.24",
125
- "@tryghost/milestones": "file:components/tryghost-milestones-5.49.0.tgz",
126
- "@tryghost/minifier": "file:components/tryghost-minifier-5.49.0.tgz",
127
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.49.0.tgz",
128
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.49.0.tgz",
129
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.49.0.tgz",
130
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.49.0.tgz",
131
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.49.0.tgz",
132
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.49.0.tgz",
126
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.49.2.tgz",
127
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.49.2.tgz",
128
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.49.2.tgz",
129
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.49.2.tgz",
130
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.49.2.tgz",
131
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.49.2.tgz",
132
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.49.2.tgz",
133
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.49.2.tgz",
133
134
  "@tryghost/nodemailer": "0.3.35",
134
135
  "@tryghost/nql": "0.11.0",
135
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.49.0.tgz",
136
- "@tryghost/package-json": "file:components/tryghost-package-json-5.49.0.tgz",
137
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.49.0.tgz",
138
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.49.0.tgz",
136
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.49.2.tgz",
137
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.49.2.tgz",
138
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.49.2.tgz",
139
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.49.2.tgz",
139
140
  "@tryghost/pretty-cli": "1.2.36",
140
141
  "@tryghost/promise": "0.3.4",
141
142
  "@tryghost/request": "0.1.39",
142
- "@tryghost/security": "file:components/tryghost-security-5.49.0.tgz",
143
- "@tryghost/session-service": "file:components/tryghost-session-service-5.49.0.tgz",
144
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.49.0.tgz",
145
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.49.0.tgz",
143
+ "@tryghost/security": "file:components/tryghost-security-5.49.2.tgz",
144
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.49.2.tgz",
145
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.49.2.tgz",
146
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.49.2.tgz",
146
147
  "@tryghost/social-urls": "0.1.36",
147
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.49.0.tgz",
148
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.49.0.tgz",
148
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.49.2.tgz",
149
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.49.2.tgz",
149
150
  "@tryghost/string": "0.2.4",
150
- "@tryghost/tiers": "file:components/tryghost-tiers-5.49.0.tgz",
151
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.49.2.tgz",
151
152
  "@tryghost/tpl": "0.1.24",
152
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.49.0.tgz",
153
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.49.2.tgz",
153
154
  "@tryghost/url-utils": "4.4.0",
154
155
  "@tryghost/validator": "0.2.4",
155
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.49.0.tgz",
156
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.49.2.tgz",
156
157
  "@tryghost/version": "0.1.22",
157
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.49.0.tgz",
158
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.49.2.tgz",
158
159
  "@tryghost/zip": "1.1.34",
159
160
  "amperize": "0.6.1",
160
161
  "analytics-node": "6.2.0",
@@ -223,7 +224,7 @@
223
224
  "sqlite3": "5.1.6"
224
225
  },
225
226
  "devDependencies": {
226
- "@playwright/test": "1.33.0",
227
+ "@playwright/test": "1.34.3",
227
228
  "@tryghost/express-test": "0.13.4",
228
229
  "@tryghost/webhook-mock-receiver": "0.2.6",
229
230
  "@types/common-tags": "1.8.1",
@@ -256,76 +257,76 @@
256
257
  "@tryghost/logging": "2.4.4",
257
258
  "moment": "2.24.0",
258
259
  "moment-timezone": "0.5.23",
259
- "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.49.0.tgz",
260
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.49.0.tgz",
261
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.49.0.tgz",
262
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.49.0.tgz",
263
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.49.0.tgz",
264
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.49.0.tgz",
265
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.49.0.tgz",
266
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.49.0.tgz",
267
- "@tryghost/collections": "file:components/tryghost-collections-5.49.0.tgz",
268
- "@tryghost/constants": "file:components/tryghost-constants-5.49.0.tgz",
269
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.49.0.tgz",
270
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.49.0.tgz",
271
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.49.0.tgz",
272
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.49.0.tgz",
273
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.49.0.tgz",
274
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.49.0.tgz",
275
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.49.0.tgz",
276
- "@tryghost/email-events": "file:components/tryghost-email-events-5.49.0.tgz",
277
- "@tryghost/email-service": "file:components/tryghost-email-service-5.49.0.tgz",
278
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.49.0.tgz",
279
- "@tryghost/event-aware-cache-wrapper": "file:components/tryghost-event-aware-cache-wrapper-5.49.0.tgz",
280
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.49.0.tgz",
281
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.49.0.tgz",
282
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.49.0.tgz",
283
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.49.0.tgz",
284
- "@tryghost/i18n": "file:components/tryghost-i18n-5.49.0.tgz",
285
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.49.0.tgz",
286
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.49.0.tgz",
287
- "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.49.0.tgz",
288
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.49.0.tgz",
289
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.49.0.tgz",
290
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.49.0.tgz",
291
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.49.0.tgz",
292
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.49.0.tgz",
293
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.49.0.tgz",
294
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.49.0.tgz",
295
- "@tryghost/member-events": "file:components/tryghost-member-events-5.49.0.tgz",
296
- "@tryghost/members-api": "file:components/tryghost-members-api-5.49.0.tgz",
297
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.49.0.tgz",
298
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.49.0.tgz",
299
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.49.0.tgz",
300
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.49.0.tgz",
301
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.49.0.tgz",
302
- "@tryghost/milestones": "file:components/tryghost-milestones-5.49.0.tgz",
303
- "@tryghost/minifier": "file:components/tryghost-minifier-5.49.0.tgz",
304
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.49.0.tgz",
305
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.49.0.tgz",
306
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.49.0.tgz",
307
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.49.0.tgz",
308
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.49.0.tgz",
309
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.49.0.tgz",
310
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.49.0.tgz",
311
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.49.0.tgz",
312
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.49.0.tgz",
313
- "@tryghost/package-json": "file:components/tryghost-package-json-5.49.0.tgz",
314
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.49.0.tgz",
315
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.49.0.tgz",
316
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.49.0.tgz",
317
- "@tryghost/referrers": "file:components/tryghost-referrers-5.49.0.tgz",
318
- "@tryghost/security": "file:components/tryghost-security-5.49.0.tgz",
319
- "@tryghost/session-service": "file:components/tryghost-session-service-5.49.0.tgz",
320
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.49.0.tgz",
321
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.49.0.tgz",
322
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.49.0.tgz",
323
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.49.0.tgz",
324
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.49.0.tgz",
325
- "@tryghost/tiers": "file:components/tryghost-tiers-5.49.0.tgz",
326
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.49.0.tgz",
327
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.49.0.tgz",
328
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.49.0.tgz",
329
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.49.0.tgz"
260
+ "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.49.2.tgz",
261
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.49.2.tgz",
262
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.49.2.tgz",
263
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.49.2.tgz",
264
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.49.2.tgz",
265
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.49.2.tgz",
266
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.49.2.tgz",
267
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.49.2.tgz",
268
+ "@tryghost/collections": "file:components/tryghost-collections-5.49.2.tgz",
269
+ "@tryghost/constants": "file:components/tryghost-constants-5.49.2.tgz",
270
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.49.2.tgz",
271
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.49.2.tgz",
272
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.49.2.tgz",
273
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.49.2.tgz",
274
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.49.2.tgz",
275
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.49.2.tgz",
276
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.49.2.tgz",
277
+ "@tryghost/email-events": "file:components/tryghost-email-events-5.49.2.tgz",
278
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.49.2.tgz",
279
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.49.2.tgz",
280
+ "@tryghost/event-aware-cache-wrapper": "file:components/tryghost-event-aware-cache-wrapper-5.49.2.tgz",
281
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.49.2.tgz",
282
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.49.2.tgz",
283
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.49.2.tgz",
284
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.49.2.tgz",
285
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.49.2.tgz",
286
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.49.2.tgz",
287
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.49.2.tgz",
288
+ "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.49.2.tgz",
289
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.49.2.tgz",
290
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.49.2.tgz",
291
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.49.2.tgz",
292
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.49.2.tgz",
293
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.49.2.tgz",
294
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.49.2.tgz",
295
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.49.2.tgz",
296
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.49.2.tgz",
297
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.49.2.tgz",
298
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.49.2.tgz",
299
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.49.2.tgz",
300
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.49.2.tgz",
301
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.49.2.tgz",
302
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.49.2.tgz",
303
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.49.2.tgz",
304
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.49.2.tgz",
305
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.49.2.tgz",
306
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.49.2.tgz",
307
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.49.2.tgz",
308
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.49.2.tgz",
309
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.49.2.tgz",
310
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.49.2.tgz",
311
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.49.2.tgz",
312
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.49.2.tgz",
313
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.49.2.tgz",
314
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.49.2.tgz",
315
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.49.2.tgz",
316
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.49.2.tgz",
317
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.49.2.tgz",
318
+ "@tryghost/referrers": "file:components/tryghost-referrers-5.49.2.tgz",
319
+ "@tryghost/security": "file:components/tryghost-security-5.49.2.tgz",
320
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.49.2.tgz",
321
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.49.2.tgz",
322
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.49.2.tgz",
323
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.49.2.tgz",
324
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.49.2.tgz",
325
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.49.2.tgz",
326
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.49.2.tgz",
327
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.49.2.tgz",
328
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.49.2.tgz",
329
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.49.2.tgz",
330
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.49.2.tgz"
330
331
  }
331
332
  }