ghost 5.48.1 → 5.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.49.1.tgz +0 -0
  2. package/components/tryghost-adapter-cache-redis-5.49.1.tgz +0 -0
  3. package/components/tryghost-adapter-manager-5.49.1.tgz +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.49.1.tgz +0 -0
  5. package/components/{tryghost-api-framework-5.48.1.tgz → tryghost-api-framework-5.49.1.tgz} +0 -0
  6. package/components/tryghost-api-version-compatibility-service-5.49.1.tgz +0 -0
  7. package/components/tryghost-audience-feedback-5.49.1.tgz +0 -0
  8. package/components/tryghost-bootstrap-socket-5.49.1.tgz +0 -0
  9. package/components/tryghost-collections-5.49.1.tgz +0 -0
  10. package/components/tryghost-constants-5.49.1.tgz +0 -0
  11. package/components/tryghost-custom-theme-settings-service-5.49.1.tgz +0 -0
  12. package/components/{tryghost-data-generator-5.48.1.tgz → tryghost-data-generator-5.49.1.tgz} +0 -0
  13. package/components/tryghost-domain-events-5.49.1.tgz +0 -0
  14. package/components/tryghost-dynamic-routing-events-5.49.1.tgz +0 -0
  15. package/components/tryghost-email-analytics-provider-mailgun-5.49.1.tgz +0 -0
  16. package/components/tryghost-email-analytics-service-5.49.1.tgz +0 -0
  17. package/components/tryghost-email-content-generator-5.49.1.tgz +0 -0
  18. package/components/tryghost-email-events-5.49.1.tgz +0 -0
  19. package/components/tryghost-email-service-5.49.1.tgz +0 -0
  20. package/components/tryghost-email-suppression-list-5.49.1.tgz +0 -0
  21. package/components/tryghost-event-aware-cache-wrapper-5.49.1.tgz +0 -0
  22. package/components/tryghost-express-dynamic-redirects-5.49.1.tgz +0 -0
  23. package/components/tryghost-external-media-inliner-5.49.1.tgz +0 -0
  24. package/components/tryghost-extract-api-key-5.49.1.tgz +0 -0
  25. package/components/tryghost-html-to-plaintext-5.49.1.tgz +0 -0
  26. package/components/tryghost-i18n-5.49.1.tgz +0 -0
  27. package/components/tryghost-importer-handler-content-files-5.49.1.tgz +0 -0
  28. package/components/tryghost-importer-revue-5.49.1.tgz +0 -0
  29. package/components/tryghost-in-memory-repository-5.49.1.tgz +0 -0
  30. package/components/tryghost-job-manager-5.49.1.tgz +0 -0
  31. package/components/tryghost-link-redirects-5.49.1.tgz +0 -0
  32. package/components/tryghost-link-replacer-5.49.1.tgz +0 -0
  33. package/components/tryghost-link-tracking-5.49.1.tgz +0 -0
  34. package/components/{tryghost-magic-link-5.48.1.tgz → tryghost-magic-link-5.49.1.tgz} +0 -0
  35. package/components/tryghost-mailgun-client-5.49.1.tgz +0 -0
  36. package/components/tryghost-member-attribution-5.49.1.tgz +0 -0
  37. package/components/tryghost-member-events-5.49.1.tgz +0 -0
  38. package/components/{tryghost-members-api-5.48.1.tgz → tryghost-members-api-5.49.1.tgz} +0 -0
  39. package/components/tryghost-members-csv-5.49.1.tgz +0 -0
  40. package/components/tryghost-members-events-service-5.49.1.tgz +0 -0
  41. package/components/{tryghost-members-importer-5.48.1.tgz → tryghost-members-importer-5.49.1.tgz} +0 -0
  42. package/components/tryghost-members-offers-5.49.1.tgz +0 -0
  43. package/components/tryghost-members-payments-5.49.1.tgz +0 -0
  44. package/components/tryghost-members-ssr-5.49.1.tgz +0 -0
  45. package/components/{tryghost-members-stripe-service-5.48.1.tgz → tryghost-members-stripe-service-5.49.1.tgz} +0 -0
  46. package/components/tryghost-mentions-email-report-5.49.1.tgz +0 -0
  47. package/components/tryghost-milestones-5.49.1.tgz +0 -0
  48. package/components/tryghost-minifier-5.49.1.tgz +0 -0
  49. package/components/tryghost-mw-api-version-mismatch-5.49.1.tgz +0 -0
  50. package/components/tryghost-mw-cache-control-5.49.1.tgz +0 -0
  51. package/components/{tryghost-mw-error-handler-5.48.1.tgz → tryghost-mw-error-handler-5.49.1.tgz} +0 -0
  52. package/components/tryghost-mw-session-from-token-5.49.1.tgz +0 -0
  53. package/components/tryghost-mw-update-user-last-seen-5.49.1.tgz +0 -0
  54. package/components/tryghost-mw-version-match-5.49.1.tgz +0 -0
  55. package/components/tryghost-mw-vhost-5.49.1.tgz +0 -0
  56. package/components/tryghost-oembed-service-5.49.1.tgz +0 -0
  57. package/components/tryghost-package-json-5.49.1.tgz +0 -0
  58. package/components/tryghost-post-revisions-5.49.1.tgz +0 -0
  59. package/components/tryghost-posts-service-5.49.1.tgz +0 -0
  60. package/components/tryghost-referrers-5.49.1.tgz +0 -0
  61. package/components/tryghost-security-5.49.1.tgz +0 -0
  62. package/components/tryghost-session-service-5.49.1.tgz +0 -0
  63. package/components/tryghost-settings-path-manager-5.49.1.tgz +0 -0
  64. package/components/tryghost-slack-notifications-5.49.1.tgz +0 -0
  65. package/components/{tryghost-staff-service-5.48.1.tgz → tryghost-staff-service-5.49.1.tgz} +0 -0
  66. package/components/tryghost-stats-service-5.49.1.tgz +0 -0
  67. package/components/{tryghost-tiers-5.48.1.tgz → tryghost-tiers-5.49.1.tgz} +0 -0
  68. package/components/tryghost-update-check-service-5.49.1.tgz +0 -0
  69. package/components/tryghost-verification-trigger-5.49.1.tgz +0 -0
  70. package/components/tryghost-version-notifications-data-service-5.49.1.tgz +0 -0
  71. package/components/tryghost-webmentions-5.49.1.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.7ffa4fa3e2ad37094023.js → chunk.143.c6e8ef2a5f6e62446120.js} +5 -5
  74. package/core/built/admin/assets/{chunk.178.b0604abd844e7e089a22.js → chunk.178.fa0781a33de6cfc8d401.js} +4 -4
  75. package/core/built/admin/assets/{ghost-f902f5e70d4a27fb3c35f775e50e65ff.js → ghost-9169ef48d0474b34a0a2a01edd29683b.js} +3753 -3651
  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 +6 -6
  80. package/core/frontend/src/cards/css/signup.css +316 -0
  81. package/core/server/api/endpoints/collections.js +115 -0
  82. package/core/server/api/endpoints/index.js +4 -0
  83. package/core/server/api/endpoints/utils/serializers/output/config.js +2 -1
  84. package/core/server/api/endpoints/utils/serializers/output/mappers/collections.js +38 -0
  85. package/core/server/api/endpoints/utils/serializers/output/mappers/index.js +1 -0
  86. package/core/server/run-update-check.js +7 -2
  87. package/core/server/services/collections/index.js +22 -0
  88. package/core/server/services/members/content-gating.js +1 -1
  89. package/core/server/services/members/emails/signin.js +5 -5
  90. package/core/server/services/members/emails/signup-paid.js +9 -9
  91. package/core/server/services/members/emails/signup.js +10 -10
  92. package/core/server/services/members/emails/subscribe.js +10 -10
  93. package/core/server/services/members/emails/update-email.js +8 -8
  94. package/core/server/services/public-config/config.js +2 -1
  95. package/core/server/update-check.js +15 -7
  96. package/core/server/web/api/endpoints/admin/routes.js +7 -0
  97. package/core/shared/config/defaults.json +4 -0
  98. package/core/shared/labs.js +2 -2
  99. package/package.json +142 -140
  100. package/yarn.lock +664 -1025
  101. package/components/tryghost-adapter-cache-memory-ttl-5.48.1.tgz +0 -0
  102. package/components/tryghost-adapter-cache-redis-5.48.1.tgz +0 -0
  103. package/components/tryghost-adapter-manager-5.48.1.tgz +0 -0
  104. package/components/tryghost-announcement-bar-settings-5.48.1.tgz +0 -0
  105. package/components/tryghost-api-version-compatibility-service-5.48.1.tgz +0 -0
  106. package/components/tryghost-audience-feedback-5.48.1.tgz +0 -0
  107. package/components/tryghost-bootstrap-socket-5.48.1.tgz +0 -0
  108. package/components/tryghost-collections-5.48.1.tgz +0 -0
  109. package/components/tryghost-constants-5.48.1.tgz +0 -0
  110. package/components/tryghost-custom-theme-settings-service-5.48.1.tgz +0 -0
  111. package/components/tryghost-domain-events-5.48.1.tgz +0 -0
  112. package/components/tryghost-dynamic-routing-events-5.48.1.tgz +0 -0
  113. package/components/tryghost-email-analytics-provider-mailgun-5.48.1.tgz +0 -0
  114. package/components/tryghost-email-analytics-service-5.48.1.tgz +0 -0
  115. package/components/tryghost-email-content-generator-5.48.1.tgz +0 -0
  116. package/components/tryghost-email-events-5.48.1.tgz +0 -0
  117. package/components/tryghost-email-service-5.48.1.tgz +0 -0
  118. package/components/tryghost-email-suppression-list-5.48.1.tgz +0 -0
  119. package/components/tryghost-event-aware-cache-wrapper-5.48.1.tgz +0 -0
  120. package/components/tryghost-express-dynamic-redirects-5.48.1.tgz +0 -0
  121. package/components/tryghost-external-media-inliner-5.48.1.tgz +0 -0
  122. package/components/tryghost-extract-api-key-5.48.1.tgz +0 -0
  123. package/components/tryghost-html-to-plaintext-5.48.1.tgz +0 -0
  124. package/components/tryghost-i18n-5.48.1.tgz +0 -0
  125. package/components/tryghost-importer-handler-content-files-5.48.1.tgz +0 -0
  126. package/components/tryghost-importer-revue-5.48.1.tgz +0 -0
  127. package/components/tryghost-in-memory-repository-5.48.1.tgz +0 -0
  128. package/components/tryghost-job-manager-5.48.1.tgz +0 -0
  129. package/components/tryghost-link-redirects-5.48.1.tgz +0 -0
  130. package/components/tryghost-link-replacer-5.48.1.tgz +0 -0
  131. package/components/tryghost-link-tracking-5.48.1.tgz +0 -0
  132. package/components/tryghost-mailgun-client-5.48.1.tgz +0 -0
  133. package/components/tryghost-member-attribution-5.48.1.tgz +0 -0
  134. package/components/tryghost-member-events-5.48.1.tgz +0 -0
  135. package/components/tryghost-members-csv-5.48.1.tgz +0 -0
  136. package/components/tryghost-members-events-service-5.48.1.tgz +0 -0
  137. package/components/tryghost-members-offers-5.48.1.tgz +0 -0
  138. package/components/tryghost-members-payments-5.48.1.tgz +0 -0
  139. package/components/tryghost-members-ssr-5.48.1.tgz +0 -0
  140. package/components/tryghost-mentions-email-report-5.48.1.tgz +0 -0
  141. package/components/tryghost-milestones-5.48.1.tgz +0 -0
  142. package/components/tryghost-minifier-5.48.1.tgz +0 -0
  143. package/components/tryghost-mw-api-version-mismatch-5.48.1.tgz +0 -0
  144. package/components/tryghost-mw-cache-control-5.48.1.tgz +0 -0
  145. package/components/tryghost-mw-session-from-token-5.48.1.tgz +0 -0
  146. package/components/tryghost-mw-update-user-last-seen-5.48.1.tgz +0 -0
  147. package/components/tryghost-mw-version-match-5.48.1.tgz +0 -0
  148. package/components/tryghost-mw-vhost-5.48.1.tgz +0 -0
  149. package/components/tryghost-oembed-service-5.48.1.tgz +0 -0
  150. package/components/tryghost-package-json-5.48.1.tgz +0 -0
  151. package/components/tryghost-post-revisions-5.48.1.tgz +0 -0
  152. package/components/tryghost-posts-service-5.48.1.tgz +0 -0
  153. package/components/tryghost-referrers-5.48.1.tgz +0 -0
  154. package/components/tryghost-security-5.48.1.tgz +0 -0
  155. package/components/tryghost-session-service-5.48.1.tgz +0 -0
  156. package/components/tryghost-settings-path-manager-5.48.1.tgz +0 -0
  157. package/components/tryghost-slack-notifications-5.48.1.tgz +0 -0
  158. package/components/tryghost-stats-service-5.48.1.tgz +0 -0
  159. package/components/tryghost-update-check-service-5.48.1.tgz +0 -0
  160. package/components/tryghost-verification-trigger-5.48.1.tgz +0 -0
  161. package/components/tryghost-version-notifications-data-service-5.48.1.tgz +0 -0
  162. package/components/tryghost-webmentions-5.48.1.tgz +0 -0
  163. package/core/built/admin/assets/ghost-4f32549fd7f27543889f729a10be18b4.css +0 -1
  164. package/core/built/admin/assets/ghost-dark-99e343e4c1fcf9b6c1bde9dea2b50c6f.css +0 -1
  165. /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>🙌 Thank you for signing up to ${siteTitle}!</title>
7
+ <title>🙌 ${t('Thank you for signing up 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;">Thank you for 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('Thank you for 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; line-height: 24px; margin: 0; margin-bottom: 32px;">Thank you for subscribing to ${siteTitle}. Tap the link below to be automatically signed in:</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; line-height: 24px; margin: 0; margin-bottom: 32px;">${t('Thank you for subscribing to {{siteTitle}}. Tap the link below to be automatically signed in:', {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};">Sign in</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('Sign in')}</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; line-height: 24px; margin: 0; 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; line-height: 24px; margin: 0; margin-bottom: 30px;">See you soon!</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; line-height: 24px; margin: 0; 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; line-height: 24px; margin: 0; margin-bottom: 30px;">${t('See you soon!')}</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; line-height: 24px; margin: 0;">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; line-height: 24px; margin: 0;">${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>
@@ -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>🙌 Complete your sign up to ${siteTitle}!</title>
7
+ <title>🙌 ${t('Complete your sign up 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;">Complete signup for ${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('Complete signup for {{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; line-height: 24px; margin: 0; margin-bottom: 32px;">Tap the link below to complete the signup process for ${siteTitle}, and be automatically signed in:</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; line-height: 24px; margin: 0; margin-bottom: 32px;">${t('Tap the link below to complete the signup process for {{siteTitle}}, and be automatically signed in:', {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 signup</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 signup')}</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; line-height: 24px; margin: 0; 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; line-height: 24px; margin: 0; margin-bottom: 30px;">See you soon!</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; line-height: 24px; margin: 0; 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; line-height: 24px; margin: 0; margin-bottom: 30px;">${t('See you soon!')}</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; line-height: 24px; margin: 0;">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; line-height: 24px; margin: 0;">${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. You will not be signed up, and no account will be created for you.</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.')} ${t('You will not be signed up, and no account will be created for you.')}</p>
152
152
  </td>
153
153
  </tr>
154
154
  <tr>
@@ -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
  },
@@ -18,6 +18,13 @@ module.exports = function apiRoutes() {
18
18
  // ## Public
19
19
  router.get('/site', mw.publicAdminApi, http(api.site.read));
20
20
 
21
+ // ## Collections
22
+ router.get('/collections', mw.authAdminApi, labs.enabledMiddleware('collections'), http(api.collections.browse));
23
+ router.get('/collections/:id', mw.authAdminApi, labs.enabledMiddleware('collections'), http(api.collections.read));
24
+ router.post('/collections', mw.authAdminApi, labs.enabledMiddleware('collections'), http(api.collections.add));
25
+ router.put('/collections/:id', mw.authAdminApi, labs.enabledMiddleware('collections'), http(api.collections.edit));
26
+ router.del('/collections/:id', mw.authAdminApi, labs.enabledMiddleware('collections'), http(api.collections.destroy));
27
+
21
28
  // ## Configuration
22
29
  router.get('/config', mw.authAdminApi, http(api.config.read));
23
30
 
@@ -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"
@@ -32,7 +32,6 @@ const BETA_FEATURES = [
32
32
 
33
33
  const ALPHA_FEATURES = [
34
34
  'urlCache',
35
- 'migrateApp',
36
35
  'lexicalEditor',
37
36
  'lexicalMultiplayer',
38
37
  'websockets',
@@ -43,7 +42,8 @@ const ALPHA_FEATURES = [
43
42
  'imageEditor',
44
43
  'signupCard',
45
44
  'collections',
46
- 'adminXSettings'
45
+ 'adminXSettings',
46
+ 'signupForm'
47
47
  ];
48
48
 
49
49
  module.exports.GA_KEYS = [...GA_FEATURES];