ghost 5.17.2 → 5.19.0

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 (190) hide show
  1. package/README.md +3 -3
  2. package/components/tryghost-adapter-manager-5.19.0.tgz +0 -0
  3. package/components/{tryghost-api-framework-5.17.2.tgz → tryghost-api-framework-5.19.0.tgz} +0 -0
  4. package/components/tryghost-api-version-compatibility-service-5.19.0.tgz +0 -0
  5. package/components/tryghost-audience-feedback-5.19.0.tgz +0 -0
  6. package/components/tryghost-bootstrap-socket-5.19.0.tgz +0 -0
  7. package/components/tryghost-constants-5.19.0.tgz +0 -0
  8. package/components/{tryghost-custom-theme-settings-service-5.17.2.tgz → tryghost-custom-theme-settings-service-5.19.0.tgz} +0 -0
  9. package/components/tryghost-domain-events-5.19.0.tgz +0 -0
  10. package/components/tryghost-email-analytics-provider-mailgun-5.19.0.tgz +0 -0
  11. package/components/tryghost-email-analytics-service-5.19.0.tgz +0 -0
  12. package/components/tryghost-email-content-generator-5.19.0.tgz +0 -0
  13. package/components/tryghost-express-dynamic-redirects-5.19.0.tgz +0 -0
  14. package/components/tryghost-extract-api-key-5.19.0.tgz +0 -0
  15. package/components/tryghost-html-to-plaintext-5.19.0.tgz +0 -0
  16. package/components/tryghost-job-manager-5.19.0.tgz +0 -0
  17. package/components/tryghost-link-redirects-5.19.0.tgz +0 -0
  18. package/components/tryghost-link-replacer-5.19.0.tgz +0 -0
  19. package/components/tryghost-link-tracking-5.19.0.tgz +0 -0
  20. package/components/tryghost-magic-link-5.19.0.tgz +0 -0
  21. package/components/tryghost-mailgun-client-5.19.0.tgz +0 -0
  22. package/components/tryghost-member-analytics-service-5.19.0.tgz +0 -0
  23. package/components/tryghost-member-attribution-5.19.0.tgz +0 -0
  24. package/components/tryghost-member-events-5.19.0.tgz +0 -0
  25. package/components/tryghost-members-analytics-ingress-5.19.0.tgz +0 -0
  26. package/components/tryghost-members-api-5.19.0.tgz +0 -0
  27. package/components/tryghost-members-csv-5.19.0.tgz +0 -0
  28. package/components/tryghost-members-events-service-5.19.0.tgz +0 -0
  29. package/components/tryghost-members-importer-5.19.0.tgz +0 -0
  30. package/components/tryghost-members-offers-5.19.0.tgz +0 -0
  31. package/components/tryghost-members-payments-5.19.0.tgz +0 -0
  32. package/components/tryghost-members-ssr-5.19.0.tgz +0 -0
  33. package/components/tryghost-members-stripe-service-5.19.0.tgz +0 -0
  34. package/components/tryghost-minifier-5.19.0.tgz +0 -0
  35. package/components/tryghost-mw-api-version-mismatch-5.19.0.tgz +0 -0
  36. package/components/tryghost-mw-cache-control-5.19.0.tgz +0 -0
  37. package/components/{tryghost-mw-error-handler-5.17.2.tgz → tryghost-mw-error-handler-5.19.0.tgz} +0 -0
  38. package/components/tryghost-mw-session-from-token-5.19.0.tgz +0 -0
  39. package/components/tryghost-mw-update-user-last-seen-5.19.0.tgz +0 -0
  40. package/components/tryghost-mw-vhost-5.19.0.tgz +0 -0
  41. package/components/tryghost-oembed-service-5.19.0.tgz +0 -0
  42. package/components/tryghost-package-json-5.19.0.tgz +0 -0
  43. package/components/tryghost-referrers-5.19.0.tgz +0 -0
  44. package/components/tryghost-security-5.19.0.tgz +0 -0
  45. package/components/tryghost-session-service-5.19.0.tgz +0 -0
  46. package/components/tryghost-settings-path-manager-5.19.0.tgz +0 -0
  47. package/components/tryghost-staff-service-5.19.0.tgz +0 -0
  48. package/components/tryghost-stats-service-5.19.0.tgz +0 -0
  49. package/components/tryghost-update-check-service-5.19.0.tgz +0 -0
  50. package/components/tryghost-verification-trigger-5.19.0.tgz +0 -0
  51. package/components/tryghost-version-notifications-data-service-5.19.0.tgz +0 -0
  52. package/content/themes/casper/assets/built/screen.css +1 -1
  53. package/content/themes/casper/assets/built/screen.css.map +1 -1
  54. package/content/themes/casper/assets/css/screen.css +18 -21
  55. package/content/themes/casper/package.json +1 -1
  56. package/core/boot.js +3 -1
  57. package/core/built/admin/assets/{chunk.143.3f2f5cbbd1ef4b1425d9.js → chunk.143.eaf838fbf1470f018bf3.js} +6 -6
  58. package/core/built/admin/assets/{chunk.174.37fefc669899f0fd0064.js → chunk.174.3a133d51d9b45097c101.js} +160 -159
  59. package/core/built/admin/assets/{chunk.178.8fa31be80e639cbd2df2.js → chunk.178.44dae8a74f7f9d606e06.js} +4 -4
  60. package/core/built/admin/assets/{chunk.579.a9bccec4d650a7be727a.js → chunk.613.f1d519ad47e7f9024263.js} +8962 -8890
  61. package/core/built/admin/assets/{chunk.579.a9bccec4d650a7be727a.js.LICENSE.txt → chunk.613.f1d519ad47e7f9024263.js.LICENSE.txt} +0 -0
  62. package/core/built/admin/assets/{ghost-3577dfa3f54651db5ae5b9fd3d9b2824.js → ghost-5ce6f5a730c83c91fc258b12c537ea35.js} +2905 -2866
  63. package/core/built/admin/assets/ghost-982146a4ada3a5af1981d1919ae01d08.css +1 -0
  64. package/core/built/admin/assets/ghost-dark-41929e4857de411a23597a9de49a4e4f.css +1 -0
  65. package/core/built/admin/assets/{vendor-733135cd6cbca8126c6fa223d63a5bf3.css → vendor-3e6947aa681f0fb82b193090e520dc73.css} +24 -92
  66. package/core/built/admin/assets/{vendor-325e038b8609f0979f6578cae7a87f9e.js → vendor-5c7d7063620bec13668c4370145cd4b4.js} +561 -555
  67. package/core/built/admin/index.html +7 -7
  68. package/core/frontend/helpers/t.js +12 -0
  69. package/core/frontend/helpers/tpl/content-cta.hbs +1 -1
  70. package/core/frontend/public/ghost.min.css +1 -1
  71. package/core/frontend/public/robots.txt +1 -0
  72. package/core/frontend/services/sitemap/handler.js +1 -1
  73. package/core/frontend/services/sitemap/index-generator.js +1 -3
  74. package/core/frontend/web/middleware/static-theme.js +2 -0
  75. package/core/server/api/endpoints/feedback-members.js +23 -0
  76. package/core/server/api/endpoints/index.js +5 -1
  77. package/core/server/api/endpoints/utils/serializers/input/posts.js +3 -3
  78. package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +14 -13
  79. package/core/server/data/exporter/table-lists.js +3 -1
  80. package/core/server/data/importer/handlers/json.js +21 -23
  81. package/core/server/data/importer/importers/data/base.js +1 -1
  82. package/core/server/data/migrations/versions/4.0/05-add-members-subscribe-events-table.js +1 -1
  83. package/core/server/data/migrations/versions/4.0/06-populate-members-subscribe-events-table.js +1 -1
  84. package/core/server/data/migrations/versions/4.0/11-add-members-paid-subscription-events-table.js +1 -1
  85. package/core/server/data/migrations/versions/4.0/13-add-members-payment-events-table.js +1 -1
  86. package/core/server/data/migrations/versions/4.0/17-populate-members-status-events-table.js +1 -1
  87. package/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js +1 -1
  88. package/core/server/data/migrations/versions/4.0/25-populate-members-paid-subscription-events-table.js +1 -1
  89. package/core/server/data/migrations/versions/4.11/02-add-email-verification-required-setting.js +1 -1
  90. package/core/server/data/migrations/versions/4.12/01-add-email-only-column-to-posts-meta-table.js +1 -1
  91. package/core/server/data/migrations/versions/4.3/03-add-default-product.js +1 -1
  92. package/core/server/data/migrations/versions/4.3/04-attach-members-to-product.js +1 -1
  93. package/core/server/data/migrations/versions/4.3/06-add-stripe-prices-table.js +2 -2
  94. package/core/server/data/migrations/versions/4.3/08-migrate-members-signup-setting.js +1 -1
  95. package/core/server/data/migrations/versions/4.33/2022-01-14-11-51-add-default-free-tier.js +1 -1
  96. package/core/server/data/migrations/versions/4.42/2022-03-21-17-17-add.js +2 -2
  97. package/core/server/data/migrations/versions/4.43/2022-03-28-19-26-recreate-newsletter-table.js +5 -5
  98. package/core/server/data/migrations/versions/4.46/2022-04-13-13-00-add-default-newsletter.js +1 -1
  99. package/core/server/data/migrations/versions/4.46/2022-04-20-08-39-map-subscribers-to-default-newsletter.js +1 -1
  100. package/core/server/data/migrations/versions/4.7/03-add-labs-setting.js +1 -1
  101. package/core/server/data/migrations/versions/4.8/03-add-default-product-portal-products.js +1 -1
  102. package/core/server/data/migrations/versions/4.8/04-migrate-show-newsletter-header-setting.js +1 -1
  103. package/core/server/data/migrations/versions/5.0/2022-05-06-13-22-add-frontend-integration.js +1 -1
  104. package/core/server/data/migrations/versions/5.17/2022-09-29-12-39-add-track-clicks-column-to-emails.js +2 -2
  105. package/core/server/data/migrations/versions/5.19/2022-09-02-20-25-add-columns-to-products-table.js +19 -0
  106. package/core/server/data/migrations/versions/5.19/2022-09-02-20-52-backfill-new-product-columns.js +37 -0
  107. package/core/server/data/migrations/versions/5.19/2022-10-10-06-58-add-subscriptions-table.js +19 -0
  108. package/core/server/data/migrations/versions/5.19/2022-10-10-10-05-add-members-feedback-table.js +10 -0
  109. package/core/server/data/migrations/versions/5.19/2022-10-11-10-38-add-feedback-enabled-column-to-newsletters.js +7 -0
  110. package/core/server/data/schema/commands.js +3 -3
  111. package/core/server/data/schema/fixtures/fixtures.json +4 -1
  112. package/core/server/data/schema/schema.js +90 -24
  113. package/core/server/data/schema/validator.js +1 -1
  114. package/core/server/models/base/bookshelf.js +3 -4
  115. package/core/server/models/base/plugins/data-manipulation.js +1 -1
  116. package/core/server/models/base/plugins/events.js +1 -1
  117. package/core/server/models/base/utils.js +1 -1
  118. package/core/server/models/member-feedback.js +22 -0
  119. package/core/server/models/newsletter.js +3 -2
  120. package/core/server/models/post.js +24 -0
  121. package/core/server/models/settings.js +1 -1
  122. package/core/server/models/user.js +1 -1
  123. package/core/server/services/audience-feedback/FeedbackRepository.js +67 -0
  124. package/core/server/services/audience-feedback/index.js +33 -0
  125. package/core/server/services/bulk-email/bulk-email-processor.js +7 -1
  126. package/core/server/services/mail/GhostMailer.js +17 -1
  127. package/core/server/services/mega/feedback-buttons.js +69 -0
  128. package/core/server/services/mega/mega.js +1 -1
  129. package/core/server/services/mega/post-email-serializer.js +24 -4
  130. package/core/server/services/mega/template.js +3 -0
  131. package/core/server/services/members/middleware.js +40 -0
  132. package/core/server/services/notifications/notifications.js +1 -1
  133. package/core/server/services/settings/settings-service.js +1 -1
  134. package/core/server/services/themes/storage.js +1 -1
  135. package/core/server/services/webhooks/serialize.js +1 -1
  136. package/core/server/web/admin/app.js +2 -0
  137. package/core/server/web/api/endpoints/admin/routes.js +1 -2
  138. package/core/server/web/members/app.js +12 -0
  139. package/core/shared/config/defaults.json +1 -1
  140. package/core/shared/labs.js +6 -4
  141. package/package.json +117 -117
  142. package/yarn.lock +4867 -1572
  143. package/components/tryghost-adapter-manager-5.17.2.tgz +0 -0
  144. package/components/tryghost-api-version-compatibility-service-5.17.2.tgz +0 -0
  145. package/components/tryghost-bootstrap-socket-5.17.2.tgz +0 -0
  146. package/components/tryghost-constants-5.17.2.tgz +0 -0
  147. package/components/tryghost-domain-events-5.17.2.tgz +0 -0
  148. package/components/tryghost-email-analytics-provider-mailgun-5.17.2.tgz +0 -0
  149. package/components/tryghost-email-analytics-service-5.17.2.tgz +0 -0
  150. package/components/tryghost-email-content-generator-5.17.2.tgz +0 -0
  151. package/components/tryghost-express-dynamic-redirects-5.17.2.tgz +0 -0
  152. package/components/tryghost-extract-api-key-5.17.2.tgz +0 -0
  153. package/components/tryghost-html-to-plaintext-5.17.2.tgz +0 -0
  154. package/components/tryghost-job-manager-5.17.2.tgz +0 -0
  155. package/components/tryghost-link-redirects-5.17.2.tgz +0 -0
  156. package/components/tryghost-link-replacer-5.17.2.tgz +0 -0
  157. package/components/tryghost-link-tracking-5.17.2.tgz +0 -0
  158. package/components/tryghost-magic-link-5.17.2.tgz +0 -0
  159. package/components/tryghost-mailgun-client-5.17.2.tgz +0 -0
  160. package/components/tryghost-member-analytics-service-5.17.2.tgz +0 -0
  161. package/components/tryghost-member-attribution-5.17.2.tgz +0 -0
  162. package/components/tryghost-member-events-5.17.2.tgz +0 -0
  163. package/components/tryghost-members-analytics-ingress-5.17.2.tgz +0 -0
  164. package/components/tryghost-members-api-5.17.2.tgz +0 -0
  165. package/components/tryghost-members-csv-5.17.2.tgz +0 -0
  166. package/components/tryghost-members-events-service-5.17.2.tgz +0 -0
  167. package/components/tryghost-members-importer-5.17.2.tgz +0 -0
  168. package/components/tryghost-members-offers-5.17.2.tgz +0 -0
  169. package/components/tryghost-members-payments-5.17.2.tgz +0 -0
  170. package/components/tryghost-members-ssr-5.17.2.tgz +0 -0
  171. package/components/tryghost-members-stripe-service-5.17.2.tgz +0 -0
  172. package/components/tryghost-minifier-5.17.2.tgz +0 -0
  173. package/components/tryghost-mw-api-version-mismatch-5.17.2.tgz +0 -0
  174. package/components/tryghost-mw-cache-control-5.17.2.tgz +0 -0
  175. package/components/tryghost-mw-session-from-token-5.17.2.tgz +0 -0
  176. package/components/tryghost-mw-update-user-last-seen-5.17.2.tgz +0 -0
  177. package/components/tryghost-mw-vhost-5.17.2.tgz +0 -0
  178. package/components/tryghost-oembed-service-5.17.2.tgz +0 -0
  179. package/components/tryghost-package-json-5.17.2.tgz +0 -0
  180. package/components/tryghost-referrers-5.17.2.tgz +0 -0
  181. package/components/tryghost-security-5.17.2.tgz +0 -0
  182. package/components/tryghost-session-service-5.17.2.tgz +0 -0
  183. package/components/tryghost-settings-path-manager-5.17.2.tgz +0 -0
  184. package/components/tryghost-staff-service-5.17.2.tgz +0 -0
  185. package/components/tryghost-stats-service-5.17.2.tgz +0 -0
  186. package/components/tryghost-update-check-service-5.17.2.tgz +0 -0
  187. package/components/tryghost-verification-trigger-5.17.2.tgz +0 -0
  188. package/components/tryghost-version-notifications-data-service-5.17.2.tgz +0 -0
  189. package/core/built/admin/assets/ghost-597fb8e8b1b91dd0ac4d9f2d75bd67fb.css +0 -1
  190. package/core/built/admin/assets/ghost-dark-e4ccecd9903d35d360d71fe859cbb3bf.css +0 -1
@@ -1228,18 +1228,12 @@ ol .occluded-content {
1228
1228
  background-color: #2d3748CD;
1229
1229
  background-color: var(--epm-backdrop-background);
1230
1230
  opacity: 0;
1231
- -webkit-animation: 0.3s ease 0s forwards epm-backdrop-in;
1232
- animation: 0.3s ease 0s forwards epm-backdrop-in;
1233
- -webkit-animation: var(--epm-animation-backdrop-in);
1234
- animation: var(--epm-animation-backdrop-in);
1235
- -webkit-animation-delay: 0s;
1236
- animation-delay: 0s;
1237
- -webkit-animation-delay: var(--epm-animation-backdrop-in-delay);
1238
- animation-delay: var(--epm-animation-backdrop-in-delay);
1239
- -webkit-animation-duration: 0.3s;
1240
- animation-duration: 0.3s;
1241
- -webkit-animation-duration: var(--epm-animation-backdrop-in-duration);
1242
- animation-duration: var(--epm-animation-backdrop-in-duration);
1231
+ animation: 0.3s ease 0s forwards epm-backdrop-in;
1232
+ animation: var(--epm-animation-backdrop-in);
1233
+ animation-delay: 0s;
1234
+ animation-delay: var(--epm-animation-backdrop-in-delay);
1235
+ animation-duration: 0.3s;
1236
+ animation-duration: var(--epm-animation-backdrop-in-duration);
1243
1237
  }
1244
1238
 
1245
1239
  .epm-modal-container {
@@ -1258,65 +1252,38 @@ ol .occluded-content {
1258
1252
  margin: auto;
1259
1253
  transform: translate(0, -30vh) scale(1.1);
1260
1254
  opacity: 0;
1261
- -webkit-animation: 0.3s ease-out 0s forwards epm-modal-in;
1262
- animation: 0.3s ease-out 0s forwards epm-modal-in;
1263
- -webkit-animation: var(--epm-animation-modal-in);
1264
- animation: var(--epm-animation-modal-in);
1265
- -webkit-animation-delay: 0s;
1266
- animation-delay: 0s;
1267
- -webkit-animation-delay: var(--epm-animation-modal-in-delay);
1268
- animation-delay: var(--epm-animation-modal-in-delay);
1269
- -webkit-animation-duration: 0.3s;
1270
- animation-duration: 0.3s;
1271
- -webkit-animation-duration: var(--epm-animation-modal-in-duration);
1272
- animation-duration: var(--epm-animation-modal-in-duration);
1255
+ animation: 0.3s ease-out 0s forwards epm-modal-in;
1256
+ animation: var(--epm-animation-modal-in);
1257
+ animation-delay: 0s;
1258
+ animation-delay: var(--epm-animation-modal-in-delay);
1259
+ animation-duration: 0.3s;
1260
+ animation-duration: var(--epm-animation-modal-in-duration);
1273
1261
  -webkit-overflow-scrolling: touch; /* momentum-based scrolling for Safari on iOS */
1274
1262
  }
1275
1263
 
1276
1264
  .epm-backdrop.epm-out {
1277
1265
  opacity: 1;
1278
- -webkit-animation: 0.18s ease 0s forwards epm-backdrop-out;
1279
- animation: 0.18s ease 0s forwards epm-backdrop-out;
1280
- -webkit-animation: var(--epm-animation-backdrop-out);
1281
- animation: var(--epm-animation-backdrop-out);
1282
- -webkit-animation-delay: 0s;
1283
- animation-delay: 0s;
1284
- -webkit-animation-delay: var(--epm-animation-backdrop-out-delay);
1285
- animation-delay: var(--epm-animation-backdrop-out-delay);
1286
- -webkit-animation-duration: 0.18s;
1287
- animation-duration: 0.18s;
1288
- -webkit-animation-duration: var(--epm-animation-backdrop-out-duration);
1289
- animation-duration: var(--epm-animation-backdrop-out-duration);
1266
+ animation: 0.18s ease 0s forwards epm-backdrop-out;
1267
+ animation: var(--epm-animation-backdrop-out);
1268
+ animation-delay: 0s;
1269
+ animation-delay: var(--epm-animation-backdrop-out-delay);
1270
+ animation-duration: 0.18s;
1271
+ animation-duration: var(--epm-animation-backdrop-out-duration);
1290
1272
  pointer-events: none;
1291
1273
  }
1292
1274
 
1293
1275
  .epm-modal.epm-out {
1294
1276
  transform: translate(0, 0) scale(1);
1295
1277
  opacity: 1;
1296
- -webkit-animation: 0.18s ease-out 0s forwards epm-modal-out;
1297
- animation: 0.18s ease-out 0s forwards epm-modal-out;
1298
- -webkit-animation: var(--epm-animation-modal-out);
1299
- animation: var(--epm-animation-modal-out);
1300
- -webkit-animation-delay: 0s;
1301
- animation-delay: 0s;
1302
- -webkit-animation-delay: var(--epm-animation-modal-out-delay);
1303
- animation-delay: var(--epm-animation-modal-out-delay);
1304
- -webkit-animation-duration: 0.18s;
1305
- animation-duration: 0.18s;
1306
- -webkit-animation-duration: var(--epm-animation-modal-out-duration);
1307
- animation-duration: var(--epm-animation-modal-out-duration);
1278
+ animation: 0.18s ease-out 0s forwards epm-modal-out;
1279
+ animation: var(--epm-animation-modal-out);
1280
+ animation-delay: 0s;
1281
+ animation-delay: var(--epm-animation-modal-out-delay);
1282
+ animation-duration: 0.18s;
1283
+ animation-duration: var(--epm-animation-modal-out-duration);
1308
1284
  pointer-events: none;
1309
1285
  }
1310
1286
 
1311
- @-webkit-keyframes epm-backdrop-in {
1312
- 0% {
1313
- opacity: 0;
1314
- }
1315
- 100% {
1316
- opacity: 1;
1317
- }
1318
- }
1319
-
1320
1287
  @keyframes epm-backdrop-in {
1321
1288
  0% {
1322
1289
  opacity: 0;
@@ -1326,15 +1293,6 @@ ol .occluded-content {
1326
1293
  }
1327
1294
  }
1328
1295
 
1329
- @-webkit-keyframes epm-backdrop-out {
1330
- 0% {
1331
- opacity: 1;
1332
- }
1333
- 100% {
1334
- opacity: 0;
1335
- }
1336
- }
1337
-
1338
1296
  @keyframes epm-backdrop-out {
1339
1297
  0% {
1340
1298
  opacity: 1;
@@ -1344,21 +1302,6 @@ ol .occluded-content {
1344
1302
  }
1345
1303
  }
1346
1304
 
1347
- @-webkit-keyframes epm-modal-in {
1348
- 0% {
1349
- transform: translate(0, -30vh) scale(1.1);
1350
- opacity: 0;
1351
- }
1352
- 72% {
1353
- transform: translate(0, 0) scale(0.99);
1354
- opacity: 1;
1355
- }
1356
- 100% {
1357
- transform: translate(0, 0) scale(1);
1358
- opacity: 1;
1359
- }
1360
- }
1361
-
1362
1305
  @keyframes epm-modal-in {
1363
1306
  0% {
1364
1307
  transform: translate(0, -30vh) scale(1.1);
@@ -1374,17 +1317,6 @@ ol .occluded-content {
1374
1317
  }
1375
1318
  }
1376
1319
 
1377
- @-webkit-keyframes epm-modal-out {
1378
- 0% {
1379
- transform: translate(0, 0) scale(1);
1380
- opacity: 1;
1381
- }
1382
- 100% {
1383
- transform: translate(0, -10vh) scale(0.8);
1384
- opacity: 0;
1385
- }
1386
- }
1387
-
1388
1320
  @keyframes epm-modal-out {
1389
1321
  0% {
1390
1322
  transform: translate(0, 0) scale(1);