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
@@ -37,7 +37,7 @@
37
37
  </style>
38
38
 
39
39
  <link integrity="" rel="stylesheet" href="assets/vendor-3e6947aa681f0fb82b193090e520dc73.css">
40
- <link integrity="" rel="stylesheet" href="assets/ghost-c4f5365681d093dace25873e79b1e841.css" title="light">
40
+ <link integrity="" rel="stylesheet" href="assets/ghost-e5dfcf346304a62879b8aa8380b500c7.css" title="light">
41
41
 
42
42
 
43
43
  </head>
@@ -56,9 +56,9 @@
56
56
 
57
57
  <div id="ember-basic-dropdown-wormhole"></div>
58
58
 
59
- <script src="assets/vendor-171b41e446763449417a8687279d2270.js"></script>
60
- <script src="assets/chunk.362.6bb7cbc3fd3afda65ae1.js"></script>
61
- <script src="assets/chunk.143.c84e66067cd00cfdfb1a.js"></script>
62
- <script src="assets/ghost-c74cada1daf3e4f04e7ef4dfd2c77eea.js"></script>
59
+ <script src="assets/vendor-e0851d527586cb85e37e146ec921136a.js"></script>
60
+ <script src="assets/chunk.124.ede028f827ba942bf7e3.js"></script>
61
+ <script src="assets/chunk.143.1d467437aed60c459bbb.js"></script>
62
+ <script src="assets/ghost-9169ef48d0474b34a0a2a01edd29683b.js"></script>
63
63
  </body>
64
64
  </html>
@@ -3,23 +3,16 @@
3
3
  box-sizing: border-box;
4
4
  }
5
5
 
6
- .kg-signup-card {
7
- min-height: 40vh;
8
- }
9
-
10
- .kg-signup-card.kg-width-wide {
11
- min-height: 60vh;
12
- }
13
-
14
- .kg-signup-card.kg-width-full {
15
- min-height: 80vh;
16
- }
17
-
18
6
  .kg-signup-card a,
19
7
  .kg-signup-card a span {
20
8
  color: currentColor;
21
9
  }
22
10
 
11
+ .kg-signup-card.kg-layout-split {
12
+ display: grid;
13
+ grid-template-columns: 1fr 1fr;
14
+ }
15
+
23
16
  .kg-signup-card-container {
24
17
  position: relative;
25
18
  display: flex;
@@ -27,12 +20,24 @@
27
20
  align-items: flex-start;
28
21
  justify-content: center;
29
22
  height: 100%;
30
- padding: 12vmin 6em;
23
+ padding: 4vmax;
31
24
  background-size: cover;
32
25
  background-position: center;
33
26
  text-align: left;
34
27
  }
35
28
 
29
+ .kg-width-wide .kg-signup-card-container {
30
+ padding: 6.4vmax;
31
+ }
32
+
33
+ .kg-width-full .kg-signup-card-container {
34
+ padding: 9.6vmax 7.2vmax;
35
+ }
36
+
37
+ .kg-layout-split .kg-signup-card-container {
38
+ padding: 9.6vmax 4vmax;
39
+ }
40
+
36
41
  .kg-signup-card-container.align-center {
37
42
  align-items: center;
38
43
  text-align: center;
@@ -42,6 +47,10 @@
42
47
  background-color: var(--ghost-accent-color);
43
48
  }
44
49
 
50
+ .kg-signup-card.kg-swapped .kg-signup-card-container {
51
+ grid-row: 1;
52
+ }
53
+
45
54
  .kg-signup-card.kg-style-image h2.kg-signup-card-heading,
46
55
  .kg-signup-card.kg-style-image h3.kg-signup-card-subheading,
47
56
  .kg-signup-card.kg-style-image .kg-signup-card-button {
@@ -49,12 +58,27 @@
49
58
  }
50
59
 
51
60
 
61
+ /* Split layout image */
62
+
63
+ .kg-signup-card-image {
64
+ object-fit: cover;
65
+ object-position: center;
66
+ /* this will force the image to follow the signup card height */
67
+ height: 0;
68
+ min-height: 100%;
69
+ /**/
70
+ }
71
+
72
+ .kg-signup-card-image.kg-style-accent {
73
+ background-color: var(--ghost-accent-color);
74
+ }
75
+
52
76
  /* Heading */
53
77
 
54
78
  .kg-signup-card h2.kg-signup-card-heading {
55
- font-size: 4em;
79
+ font-size: 4.8vmin;
56
80
  font-weight: 700;
57
- line-height: 1.1em;
81
+ line-height: 1em;
58
82
  letter-spacing: -0.01em;
59
83
  margin: 0;
60
84
  }
@@ -64,13 +88,16 @@
64
88
  }
65
89
 
66
90
  .kg-signup-card.kg-width-wide h2.kg-signup-card-heading {
67
- font-size: 5em;
91
+ font-size: 6vmin;
68
92
  }
69
93
 
70
94
  .kg-signup-card.kg-width-full h2.kg-signup-card-heading {
71
- font-size: 6em;
95
+ font-size: 8vmin;
72
96
  }
73
97
 
98
+ .kg-signup-card.kg-width-full.kg-layout-split h2.kg-signup-card-heading {
99
+ font-size: 6.4vmin;
100
+ }
74
101
 
75
102
  /* Subheading */
76
103
 
@@ -102,32 +129,59 @@
102
129
  font-size: 1.75em;
103
130
  }
104
131
 
132
+ .kg-signup-card.kg-width-full.kg-layout-split h3.kg-signup-card-subheading {
133
+ font-size: 1.5em;
134
+ }
105
135
 
106
136
  /* Subscribe form */
107
137
 
108
138
  .kg-signup-card-form {
109
- display: flex;
110
- margin: 2.8em 0 0;
139
+ position: relative;
140
+ width: 100%;
141
+ }
142
+
143
+ .kg-signup-card-heading + .kg-signup-card-form,
144
+ .kg-signup-card-subheading + .kg-signup-card-form {
145
+ margin: 2.4vmax 0 0;
146
+ }
147
+
148
+ .kg-width-wide .kg-signup-card-heading + .kg-signup-card-form,
149
+ .kg-width-wide .kg-signup-card-subheading + .kg-signup-card-form {
150
+ margin: 3.2vmax 0 0;
111
151
  }
112
152
 
113
- .kg-width-regular .kg-signup-card-form {
114
- margin: 2em 0 0;
153
+ .kg-width-full .kg-signup-card-heading + .kg-signup-card-form,
154
+ .kg-width-full .kg-signup-card-subheading + .kg-signup-card-form {
155
+ margin: 4vmax 0 0;
115
156
  }
116
157
 
117
- .kg-width-full .kg-signup-card-form {
118
- margin: 4em 0 0;
158
+ .kg-signup-card-fields {
159
+ display: flex;
160
+ }
161
+
162
+ .align-center .kg-signup-card-fields {
163
+ justify-content: center;
119
164
  }
120
165
 
121
166
  .kg-signup-card-input {
122
- min-width: 300px;
167
+ width: 100%;
123
168
  border: solid 1px;
124
169
  padding: 12px 16px;
125
170
  font-size: 1.1em;
126
171
  }
127
172
 
173
+ .kg-width-wide .kg-signup-card-input,
174
+ .kg-width-full .kg-signup-card-input:not(.kg-layout-split .kg-signup-card-input) {
175
+ max-width: 400px;
176
+ }
177
+
178
+ .kg-signup-card-input.kg-style-accent {
179
+ border-color: var(--ghost-accent-color);
180
+ }
181
+
128
182
  .kg-signup-card-button {
129
183
  display: flex;
130
- position: static;
184
+ position: relative;
131
185
  align-items: center;
132
186
  outline: none;
133
187
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
@@ -175,9 +229,88 @@
175
229
  margin-top: 2em;
176
230
  }
177
231
 
232
+ /* Subscribe form states */
233
+
234
+ .kg-signup-card-success,
235
+ .kg-signup-card-error {
236
+ display: none;
237
+ }
238
+
239
+ .kg-signup-card-form.success .kg-signup-card-fields {
240
+ display: none;
241
+ }
242
+
243
+ .kg-signup-card-form.success .kg-signup-card-success {
244
+ display: flex;
245
+ align-items: center;
246
+ height: 3em;
247
+ font-size: 1.25em;
248
+ font-weight: 500;
249
+ line-height: 1.4em;
250
+ }
251
+
252
+ .kg-signup-card-form.error .kg-signup-card-error {
253
+ display: block;
254
+ position: absolute;
255
+ top: -32px;
256
+ }
257
+
258
+ .kg-signup-card-button-loading {
259
+ position: absolute;
260
+ inset: 0;
261
+ align-items: center;
262
+ justify-content: center;
263
+ display: none;
264
+ }
265
+
266
+ .kg-signup-card-form.loading .kg-signup-card-button-loading {
267
+ display: flex;
268
+ }
178
269
 
179
270
  /* Disclaimer */
180
271
 
181
272
  .kg-signup-card-disclaimer {
182
- margin: .8em 0 0;
273
+ margin: 1rem 0 0;
274
+ }
275
+
276
+ .kg-signup-card-form.success + .kg-signup-card-disclaimer {
277
+ visibility: hidden;
183
278
  }
279
+
280
+
281
+ /* Responsive styles */
282
+
283
+ @media (max-width: 640px) {
284
+ .kg-signup-card.kg-layout-split {
285
+ grid-template-columns: 1fr;
286
+ }
287
+
288
+ .kg-width-wide .kg-signup-card-container {
289
+ padding: 6.4vmax 4vmax;
290
+ }
291
+
292
+ .kg-width-full .kg-signup-card-container {
293
+ padding: 9.6vmax 4vmax;
294
+ }
295
+
296
+ .kg-signup-card-image {
297
+ height: auto;
298
+ min-height: unset;
299
+ aspect-ratio: 1 / 1;
300
+ }
301
+
302
+ .kg-signup-card-input {
303
+ font-size: inherit;
304
+ }
305
+ .kg-signup-card.kg-width-wide .kg-signup-card-button,
306
+ .kg-signup-card.kg-width-full .kg-signup-card-button {
307
+ font-size: 1em;
308
+ }
309
+
310
+ .kg-signup-card h3.kg-signup-card-subheading,
311
+ .kg-signup-card.kg-width-wide h3.kg-signup-card-subheading,
312
+ .kg-signup-card.kg-width-full h3.kg-signup-card-subheading,
313
+ .kg-signup-card.kg-width-full.kg-layout-split h3.kg-signup-card-subheading {
314
+ font-size: 1.1em;
315
+ }
316
+ }
@@ -21,7 +21,8 @@ module.exports = {
21
21
  'tenor',
22
22
  'editor',
23
23
  'pintura',
24
- 'adminX'
24
+ 'adminX',
25
+ 'signupForm'
25
26
  ];
26
27
 
27
28
  frame.response = {
@@ -0,0 +1,38 @@
1
+ /**
2
+ *
3
+ * @param {import('@tryghost/collections').Collection} collection
4
+ *
5
+ * @returns {SerializedCollection}
6
+ */
7
+ const mapper = (collection) => {
8
+ const json = collection.toJSON();
9
+
10
+ const serialized = {
11
+ id: json.id,
12
+ title: json.title,
13
+ slug: json.slug,
14
+ description: json.description,
15
+ type: json.type,
16
+ filter: json.filter,
17
+ feature_image: json.featureImage,
18
+ created_at: json.createdAt.toISOString().replace(/\d{3}Z$/, '000Z'),
19
+ updated_at: json.updatedAt.toISOString().replace(/\d{3}Z$/, '000Z')
20
+ };
21
+
22
+ return serialized;
23
+ };
24
+
25
+ module.exports = mapper;
26
+
27
+ /**
28
+ * @typedef {Object} SerializedCollection
29
+ * @prop {string} id
30
+ * @prop {string} title
31
+ * @prop {string} slug
32
+ * @prop {string} description
33
+ * @prop {string} type
34
+ * @prop {string} filter
35
+ * @prop {string} feature_image
36
+ * @prop {string} created_at
37
+ * @prop {string} updated_at
38
+ */
@@ -3,6 +3,7 @@ module.exports = {
3
3
  activityFeedEvents: require('./activity-feed-events'),
4
4
  authors: require('./authors'),
5
5
  comments: require('./comments'),
6
+ collections: require('./collections'),
6
7
  emails: require('./emails'),
7
8
  emailBatches: require('./email-batches'),
8
9
  emailFailures: require('./email-failures'),
@@ -1,4 +1,4 @@
1
- const {parentPort} = require('worker_threads');
1
+ const {parentPort, workerData} = require('worker_threads');
2
2
 
3
3
  const postParentPortMessage = (message) => {
4
4
  if (parentPort) {
@@ -46,7 +46,9 @@ if (parentPort) {
46
46
  // Finished INIT
47
47
 
48
48
  await updateCheck({
49
- rethrowErrors: true
49
+ rethrowErrors: true,
50
+ forceUpdate: workerData.forceUpdate,
51
+ updateCheckUrl: workerData.updateCheckUrl
50
52
  });
51
53
 
52
54
  postParentPortMessage(`Ran update check`);
@@ -94,7 +94,8 @@ class EmailServiceWrapper {
94
94
  emailSegmenter,
95
95
  emailRenderer,
96
96
  db,
97
- sentry
97
+ sentry,
98
+ debugStorageFilePath: configService.getContentPath('data')
98
99
  });
99
100
 
100
101
  this.renderer = emailRenderer;
@@ -4,7 +4,7 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
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>🔑 ${t('Secure sign in link for {{siteTitle}}', {siteTitle})}</title>
7
+ <title>🔑 ${t('Secure sign in link for {{siteTitle}}', {siteTitle, interpolation: {escapeValue: false}})}</title>
8
8
  <style>
9
9
  /* -------------------------------------
10
10
  RESPONSIVE AND MOBILE FRIENDLY STYLES
@@ -107,7 +107,7 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
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 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;">${t('Welcome back to {{siteTitle}}!', {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('Welcome back 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 -->
@@ -117,7 +117,7 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
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
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('Welcome back! Use this link to securely sign in to your {{siteTitle}} account:', {siteTitle})}</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('Welcome back! Use this link to securely sign in to your {{siteTitle}} account:', {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 = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
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};">${t('Sign in to {{siteTitle}}', {siteTitle})}</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 to {{siteTitle}}', {siteTitle, interpolation: {escapeValue: false}})}</a> </td>
129
129
  </tr>
130
130
  </tbody>
131
131
  </table>
@@ -145,7 +145,7 @@ module.exports = ({t, siteTitle, email, url, accentColor = '#15212A', siteDomain
145
145
 
146
146
  <tr>
147
147
  <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;">
148
- <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 safely ignore this email.</p>
148
+ <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 safely ignore this email.')}</p>
149
149
  </td>
150
150
  </tr>
151
151
  <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>🙌 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>