ghost 5.90.2 → 5.92.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 (147) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.92.0.tgz +0 -0
  2. package/components/{tryghost-adapter-cache-redis-5.90.2.tgz → tryghost-adapter-cache-redis-5.92.0.tgz} +0 -0
  3. package/components/{tryghost-adapter-manager-5.90.2.tgz → tryghost-adapter-manager-5.92.0.tgz} +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.92.0.tgz +0 -0
  5. package/components/{tryghost-api-framework-5.90.2.tgz → tryghost-api-framework-5.92.0.tgz} +0 -0
  6. package/components/{tryghost-api-version-compatibility-service-5.90.2.tgz → tryghost-api-version-compatibility-service-5.92.0.tgz} +0 -0
  7. package/components/{tryghost-audience-feedback-5.90.2.tgz → tryghost-audience-feedback-5.92.0.tgz} +0 -0
  8. package/components/tryghost-bookshelf-repository-5.92.0.tgz +0 -0
  9. package/components/{tryghost-bootstrap-socket-5.90.2.tgz → tryghost-bootstrap-socket-5.92.0.tgz} +0 -0
  10. package/components/tryghost-collections-5.92.0.tgz +0 -0
  11. package/components/tryghost-constants-5.92.0.tgz +0 -0
  12. package/components/{tryghost-custom-theme-settings-service-5.90.2.tgz → tryghost-custom-theme-settings-service-5.92.0.tgz} +0 -0
  13. package/components/{tryghost-data-generator-5.90.2.tgz → tryghost-data-generator-5.92.0.tgz} +0 -0
  14. package/components/{tryghost-domain-events-5.90.2.tgz → tryghost-domain-events-5.92.0.tgz} +0 -0
  15. package/components/tryghost-donations-5.92.0.tgz +0 -0
  16. package/components/tryghost-dynamic-routing-events-5.92.0.tgz +0 -0
  17. package/components/tryghost-email-addresses-5.92.0.tgz +0 -0
  18. package/components/{tryghost-email-analytics-provider-mailgun-5.90.2.tgz → tryghost-email-analytics-provider-mailgun-5.92.0.tgz} +0 -0
  19. package/components/{tryghost-email-analytics-service-5.90.2.tgz → tryghost-email-analytics-service-5.92.0.tgz} +0 -0
  20. package/components/{tryghost-email-content-generator-5.90.2.tgz → tryghost-email-content-generator-5.92.0.tgz} +0 -0
  21. package/components/{tryghost-email-events-5.90.2.tgz → tryghost-email-events-5.92.0.tgz} +0 -0
  22. package/components/{tryghost-email-service-5.90.2.tgz → tryghost-email-service-5.92.0.tgz} +0 -0
  23. package/components/{tryghost-email-suppression-list-5.90.2.tgz → tryghost-email-suppression-list-5.92.0.tgz} +0 -0
  24. package/components/{tryghost-express-dynamic-redirects-5.90.2.tgz → tryghost-express-dynamic-redirects-5.92.0.tgz} +0 -0
  25. package/components/{tryghost-external-media-inliner-5.90.2.tgz → tryghost-external-media-inliner-5.92.0.tgz} +0 -0
  26. package/components/{tryghost-extract-api-key-5.90.2.tgz → tryghost-extract-api-key-5.92.0.tgz} +0 -0
  27. package/components/{tryghost-ghost-5.90.2.tgz → tryghost-ghost-5.92.0.tgz} +0 -0
  28. package/components/{tryghost-html-to-plaintext-5.90.2.tgz → tryghost-html-to-plaintext-5.92.0.tgz} +0 -0
  29. package/components/tryghost-i18n-5.92.0.tgz +0 -0
  30. package/components/{tryghost-importer-handler-content-files-5.90.2.tgz → tryghost-importer-handler-content-files-5.92.0.tgz} +0 -0
  31. package/components/tryghost-importer-revue-5.92.0.tgz +0 -0
  32. package/components/tryghost-in-memory-repository-5.92.0.tgz +0 -0
  33. package/components/{tryghost-job-manager-5.90.2.tgz → tryghost-job-manager-5.92.0.tgz} +0 -0
  34. package/components/tryghost-link-redirects-5.92.0.tgz +0 -0
  35. package/components/{tryghost-link-replacer-5.90.2.tgz → tryghost-link-replacer-5.92.0.tgz} +0 -0
  36. package/components/{tryghost-link-tracking-5.90.2.tgz → tryghost-link-tracking-5.92.0.tgz} +0 -0
  37. package/components/{tryghost-magic-link-5.90.2.tgz → tryghost-magic-link-5.92.0.tgz} +0 -0
  38. package/components/tryghost-mail-events-5.92.0.tgz +0 -0
  39. package/components/{tryghost-mailgun-client-5.90.2.tgz → tryghost-mailgun-client-5.92.0.tgz} +0 -0
  40. package/components/{tryghost-member-attribution-5.90.2.tgz → tryghost-member-attribution-5.92.0.tgz} +0 -0
  41. package/components/{tryghost-member-events-5.90.2.tgz → tryghost-member-events-5.92.0.tgz} +0 -0
  42. package/components/{tryghost-members-api-5.90.2.tgz → tryghost-members-api-5.92.0.tgz} +0 -0
  43. package/components/tryghost-members-csv-5.92.0.tgz +0 -0
  44. package/components/{tryghost-members-events-service-5.90.2.tgz → tryghost-members-events-service-5.92.0.tgz} +0 -0
  45. package/components/{tryghost-members-importer-5.90.2.tgz → tryghost-members-importer-5.92.0.tgz} +0 -0
  46. package/components/{tryghost-members-offers-5.90.2.tgz → tryghost-members-offers-5.92.0.tgz} +0 -0
  47. package/components/tryghost-members-payments-5.92.0.tgz +0 -0
  48. package/components/tryghost-members-ssr-5.92.0.tgz +0 -0
  49. package/components/tryghost-members-stripe-service-5.92.0.tgz +0 -0
  50. package/components/{tryghost-mentions-email-report-5.90.2.tgz → tryghost-mentions-email-report-5.92.0.tgz} +0 -0
  51. package/components/{tryghost-milestones-5.90.2.tgz → tryghost-milestones-5.92.0.tgz} +0 -0
  52. package/components/{tryghost-minifier-5.90.2.tgz → tryghost-minifier-5.92.0.tgz} +0 -0
  53. package/components/tryghost-model-to-domain-event-interceptor-5.92.0.tgz +0 -0
  54. package/components/{tryghost-mw-api-version-mismatch-5.90.2.tgz → tryghost-mw-api-version-mismatch-5.92.0.tgz} +0 -0
  55. package/components/{tryghost-mw-cache-control-5.90.2.tgz → tryghost-mw-cache-control-5.92.0.tgz} +0 -0
  56. package/components/tryghost-mw-error-handler-5.92.0.tgz +0 -0
  57. package/components/tryghost-mw-session-from-token-5.92.0.tgz +0 -0
  58. package/components/{tryghost-mw-update-user-last-seen-5.90.2.tgz → tryghost-mw-update-user-last-seen-5.92.0.tgz} +0 -0
  59. package/components/{tryghost-mw-version-match-5.90.2.tgz → tryghost-mw-version-match-5.92.0.tgz} +0 -0
  60. package/components/{tryghost-mw-vhost-5.90.2.tgz → tryghost-mw-vhost-5.92.0.tgz} +0 -0
  61. package/components/tryghost-nql-filter-expansions-5.92.0.tgz +0 -0
  62. package/components/{tryghost-oembed-service-5.90.2.tgz → tryghost-oembed-service-5.92.0.tgz} +0 -0
  63. package/components/{tryghost-package-json-5.90.2.tgz → tryghost-package-json-5.92.0.tgz} +0 -0
  64. package/components/tryghost-post-events-5.92.0.tgz +0 -0
  65. package/components/tryghost-post-revisions-5.92.0.tgz +0 -0
  66. package/components/{tryghost-posts-service-5.90.2.tgz → tryghost-posts-service-5.92.0.tgz} +0 -0
  67. package/components/tryghost-recommendations-5.92.0.tgz +0 -0
  68. package/components/tryghost-referrers-5.92.0.tgz +0 -0
  69. package/components/{tryghost-security-5.90.2.tgz → tryghost-security-5.92.0.tgz} +0 -0
  70. package/components/{tryghost-session-service-5.90.2.tgz → tryghost-session-service-5.92.0.tgz} +0 -0
  71. package/components/{tryghost-settings-path-manager-5.90.2.tgz → tryghost-settings-path-manager-5.92.0.tgz} +0 -0
  72. package/components/tryghost-slack-notifications-5.92.0.tgz +0 -0
  73. package/components/tryghost-staff-service-5.92.0.tgz +0 -0
  74. package/components/{tryghost-stats-service-5.90.2.tgz → tryghost-stats-service-5.92.0.tgz} +0 -0
  75. package/components/{tryghost-tiers-5.90.2.tgz → tryghost-tiers-5.92.0.tgz} +0 -0
  76. package/components/tryghost-update-check-service-5.92.0.tgz +0 -0
  77. package/components/{tryghost-verification-trigger-5.90.2.tgz → tryghost-verification-trigger-5.92.0.tgz} +0 -0
  78. package/components/{tryghost-version-notifications-data-service-5.90.2.tgz → tryghost-version-notifications-data-service-5.92.0.tgz} +0 -0
  79. package/components/tryghost-webmentions-5.92.0.tgz +0 -0
  80. package/core/boot.js +7 -1
  81. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +2 -2
  82. package/core/built/admin/assets/admin-x-activitypub/index-5eac6af1.mjs +16465 -0
  83. package/core/built/admin/assets/admin-x-activitypub/modals-62a088d9.mjs +965 -0
  84. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +2 -2
  85. package/core/built/admin/assets/admin-x-demo/index-bfbb9783.mjs +10839 -0
  86. package/core/built/admin/assets/admin-x-demo/{modals-88dc270f.mjs → modals-334b160e.mjs} +2 -2
  87. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-189e8870.mjs → CodeEditorView-6bb10ebd.mjs} +2 -2
  88. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +3 -3
  89. package/core/built/admin/assets/admin-x-settings/{index-ae06bfa7.mjs → index-52f09138.mjs} +2 -2
  90. package/core/built/admin/assets/admin-x-settings/{index-a1f59382.mjs → index-a57eb33d.mjs} +15693 -19234
  91. package/core/built/admin/assets/admin-x-settings/{modals-2c4063aa.mjs → modals-07c66c7d.mjs} +15329 -11102
  92. package/core/built/admin/assets/{chunk.42.eae83e03ed76c8e8c57a.js → chunk.217.2bd17b550359ea58831b.js} +17381 -8760
  93. package/core/built/admin/assets/{chunk.42.eae83e03ed76c8e8c57a.js.LICENSE.txt → chunk.217.2bd17b550359ea58831b.js.LICENSE.txt} +20 -0
  94. package/core/built/admin/assets/{chunk.524.387731e090d67354be96.js → chunk.524.1bc6b183876a00383f90.js} +5 -5
  95. package/core/built/admin/assets/{chunk.582.1be7720523de88ffe16b.js → chunk.582.9682daf3be0962298c43.js} +6 -6
  96. package/core/built/admin/assets/ghost-8c20f019d522f17d318e799568924958.css +1 -0
  97. package/core/built/admin/assets/{ghost-e733775ba236c045dbcdaaa39231c6d8.js → ghost-acdb9966c24d49e97ac26215cb4933e1.js} +210 -105
  98. package/core/built/admin/assets/ghost-dark-b27530aaada81101d641ff1ca5f5df6b.css +1 -0
  99. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +5233 -5221
  100. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +96 -96
  101. package/core/built/admin/index.html +5 -5
  102. package/core/frontend/helpers/ghost_head.js +20 -1
  103. package/core/server/api/endpoints/members.js +6 -0
  104. package/core/server/api/endpoints/utils/serializers/output/config.js +2 -1
  105. package/core/server/data/migrations/versions/5.91/2024-08-28-05-28-22-add-donation-message-column-to-donation-payment-events.js +9 -0
  106. package/core/server/data/schema/schema.js +2 -1
  107. package/core/server/services/public-config/config.js +3 -5
  108. package/core/server/services/recommendations/RecommendationServiceWrapper.js +6 -1
  109. package/core/server/web/api/endpoints/admin/app.js +1 -1
  110. package/core/shared/config/defaults.json +1 -1
  111. package/core/shared/labs.js +1 -4
  112. package/package.json +155 -155
  113. package/yarn.lock +127 -87
  114. package/components/tryghost-adapter-cache-memory-ttl-5.90.2.tgz +0 -0
  115. package/components/tryghost-announcement-bar-settings-5.90.2.tgz +0 -0
  116. package/components/tryghost-bookshelf-repository-5.90.2.tgz +0 -0
  117. package/components/tryghost-collections-5.90.2.tgz +0 -0
  118. package/components/tryghost-constants-5.90.2.tgz +0 -0
  119. package/components/tryghost-donations-5.90.2.tgz +0 -0
  120. package/components/tryghost-dynamic-routing-events-5.90.2.tgz +0 -0
  121. package/components/tryghost-email-addresses-5.90.2.tgz +0 -0
  122. package/components/tryghost-i18n-5.90.2.tgz +0 -0
  123. package/components/tryghost-importer-revue-5.90.2.tgz +0 -0
  124. package/components/tryghost-in-memory-repository-5.90.2.tgz +0 -0
  125. package/components/tryghost-link-redirects-5.90.2.tgz +0 -0
  126. package/components/tryghost-mail-events-5.90.2.tgz +0 -0
  127. package/components/tryghost-members-csv-5.90.2.tgz +0 -0
  128. package/components/tryghost-members-payments-5.90.2.tgz +0 -0
  129. package/components/tryghost-members-ssr-5.90.2.tgz +0 -0
  130. package/components/tryghost-members-stripe-service-5.90.2.tgz +0 -0
  131. package/components/tryghost-model-to-domain-event-interceptor-5.90.2.tgz +0 -0
  132. package/components/tryghost-mw-error-handler-5.90.2.tgz +0 -0
  133. package/components/tryghost-mw-session-from-token-5.90.2.tgz +0 -0
  134. package/components/tryghost-nql-filter-expansions-5.90.2.tgz +0 -0
  135. package/components/tryghost-post-events-5.90.2.tgz +0 -0
  136. package/components/tryghost-post-revisions-5.90.2.tgz +0 -0
  137. package/components/tryghost-recommendations-5.90.2.tgz +0 -0
  138. package/components/tryghost-referrers-5.90.2.tgz +0 -0
  139. package/components/tryghost-slack-notifications-5.90.2.tgz +0 -0
  140. package/components/tryghost-staff-service-5.90.2.tgz +0 -0
  141. package/components/tryghost-update-check-service-5.90.2.tgz +0 -0
  142. package/components/tryghost-webmentions-5.90.2.tgz +0 -0
  143. package/core/built/admin/assets/admin-x-activitypub/index-edb9d9cb.mjs +0 -18741
  144. package/core/built/admin/assets/admin-x-activitypub/modals-1926c917.mjs +0 -1017
  145. package/core/built/admin/assets/admin-x-demo/index-9379b3eb.mjs +0 -15889
  146. package/core/built/admin/assets/ghost-dark-cedf65ab1ef5082419d66cc99a151071.css +0 -1
  147. package/core/built/admin/assets/ghost-e452bcc2710cf5a8372a7f7202661191.css +0 -1
@@ -8,7 +8,7 @@
8
8
  <title>Ghost Admin</title>
9
9
 
10
10
 
11
- <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.90%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%224e5636b008%22%2C%22adminXDemoFilename%22%3A%22admin-x-demo.js%22%2C%22adminXDemoHash%22%3A%22b027d76bc5%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%22326b3ab886%22%2C%22adminXActivitypubFilename%22%3A%22admin-x-activitypub.js%22%2C%22adminXActivitypubHash%22%3A%22543ebf0994%22%7D" />
11
+ <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.92%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%227a9605cc5a%22%2C%22adminXDemoFilename%22%3A%22admin-x-demo.js%22%2C%22adminXDemoHash%22%3A%220f930972a7%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%221264c822b3%22%2C%22adminXActivitypubFilename%22%3A%22admin-x-activitypub.js%22%2C%22adminXActivitypubHash%22%3A%22277437e328%22%7D" />
12
12
 
13
13
  <meta name="HandheldFriendly" content="True" />
14
14
  <meta name="MobileOptimized" content="320" />
@@ -37,7 +37,7 @@
37
37
  </style>
38
38
 
39
39
  <link integrity="" rel="stylesheet" href="assets/vendor-0ede59da8efb5e28fa929557f7ff7154.css">
40
- <link integrity="" rel="stylesheet" href="assets/ghost-e452bcc2710cf5a8372a7f7202661191.css" title="light">
40
+ <link integrity="" rel="stylesheet" href="assets/ghost-8c20f019d522f17d318e799568924958.css" title="light">
41
41
 
42
42
 
43
43
  </head>
@@ -57,8 +57,8 @@
57
57
  <div id="ember-basic-dropdown-wormhole"></div>
58
58
 
59
59
  <script src="assets/vendor-bff75d127fcf4a75c8a83b473bdb308f.js"></script>
60
- <script src="assets/chunk.42.eae83e03ed76c8e8c57a.js"></script>
61
- <script src="assets/chunk.524.387731e090d67354be96.js"></script>
62
- <script src="assets/ghost-e733775ba236c045dbcdaaa39231c6d8.js"></script>
60
+ <script src="assets/chunk.217.2bd17b550359ea58831b.js"></script>
61
+ <script src="assets/chunk.524.1bc6b183876a00383f90.js"></script>
62
+ <script src="assets/ghost-acdb9966c24d49e97ac26215cb4933e1.js"></script>
63
63
  </body>
64
64
  </html>
@@ -46,7 +46,7 @@ function finaliseStructuredData(meta) {
46
46
 
47
47
  function getMembersHelper(data, frontendKey) {
48
48
  // Do not load Portal if both Memberships and Tips & Donations are disabled
49
- if (!settingsCache.get('members_enabled') && !(settingsCache.get('donations_enabled') && labs.isSet('tipsAndDonations'))) {
49
+ if (!settingsCache.get('members_enabled') && !settingsCache.get('donations_enabled')) {
50
50
  return '';
51
51
  }
52
52
 
@@ -141,6 +141,21 @@ function getWebmentionDiscoveryLink() {
141
141
  }
142
142
  }
143
143
 
144
+ function getTinybirdTrackerScript(dataRoot) {
145
+ const scriptUrl = config.get('tinybird:tracker:scriptUrl');
146
+ const endpoint = config.get('tinybird:tracker:endpoint');
147
+ const token = config.get('tinybird:tracker:token');
148
+
149
+ const tbParams = _.map({
150
+ site_uuid: config.get('tinybird:tracker:id'),
151
+ post_uuid: dataRoot.post?.uuid,
152
+ member_uuid: dataRoot.member?.uuid,
153
+ member_status: dataRoot.member?.status
154
+ }, (value, key) => `tb_${key}="${value}"`).join(' ');
155
+
156
+ return `<script defer src="${scriptUrl}" data-host="${endpoint}" data-token="${token}" ${tbParams}></script>`;
157
+ }
158
+
144
159
  /**
145
160
  * **NOTE**
146
161
  * Express adds `_locals`, see https://github.com/expressjs/express/blob/4.15.4/lib/response.js#L962.
@@ -319,6 +334,10 @@ module.exports = async function ghost_head(options) { // eslint-disable-line cam
319
334
  if (!_.isEmpty(tagCodeInjection)) {
320
335
  head.push(tagCodeInjection);
321
336
  }
337
+
338
+ if (config.get('tinybird') && config.get('tinybird:tracker') && config.get('tinybird:tracker:scriptUrl')) {
339
+ head.push(getTinybirdTrackerScript(dataRoot));
340
+ }
322
341
  }
323
342
 
324
343
  debug('end');
@@ -2,6 +2,7 @@
2
2
  // as it is a getter and may change during runtime.
3
3
  const moment = require('moment-timezone');
4
4
  const errors = require('@tryghost/errors');
5
+ const logging = require('@tryghost/logging');
5
6
  const models = require('../../models');
6
7
  const membersService = require('../../services/members');
7
8
 
@@ -11,6 +12,7 @@ const _ = require('lodash');
11
12
 
12
13
  const messages = {
13
14
  memberNotFound: 'Member not found.',
15
+ notSendingWelcomeEmail: 'Email verification required, welcome email is disabled',
14
16
  memberAlreadyExists: {
15
17
  message: 'Member already exists',
16
18
  context: 'Attempting to {action} member with existing email address.'
@@ -115,6 +117,10 @@ const controller = {
115
117
  },
116
118
  permissions: true,
117
119
  async query(frame) {
120
+ if (await membersService.verificationTrigger.checkVerificationRequired()) {
121
+ logging.warn(tpl(messages.notSendingWelcomeEmail));
122
+ frame.options.send_email = false;
123
+ }
118
124
  const member = await membersService.api.memberBREADService.add(frame.data.members[0], frame.options);
119
125
 
120
126
  return member;
@@ -20,7 +20,8 @@ module.exports = {
20
20
  'hostSettings',
21
21
  'tenor',
22
22
  'pintura',
23
- 'signupForm'
23
+ 'signupForm',
24
+ 'stats'
24
25
  ];
25
26
 
26
27
  frame.response = {
@@ -0,0 +1,9 @@
1
+ // For information on writing migrations, see https://www.notion.so/ghost/Database-migrations-eb5b78c435d741d2b34a582d57c24253
2
+
3
+ const {createAddColumnMigration} = require('../../utils');
4
+
5
+ module.exports = createAddColumnMigration('donation_payment_events', 'donation_message', {
6
+ type: 'string',
7
+ maxlength: 255, // as per stripe limitation for custom fields https://docs.stripe.com/payments/checkout/custom-fields
8
+ nullable: true
9
+ });
@@ -766,7 +766,8 @@ module.exports = {
766
766
  referrer_source: {type: 'string', maxlength: 191, nullable: true},
767
767
  referrer_medium: {type: 'string', maxlength: 191, nullable: true},
768
768
  referrer_url: {type: 'string', maxlength: 2000, nullable: true},
769
- created_at: {type: 'dateTime', nullable: false}
769
+ created_at: {type: 'dateTime', nullable: false},
770
+ donation_message: {type: 'string', maxlength: 255, nullable: true} // https://docs.stripe.com/payments/checkout/custom-fields
770
771
  },
771
772
  stripe_products: {
772
773
  id: {type: 'string', maxlength: 24, nullable: false, primary: true},
@@ -19,15 +19,13 @@ module.exports = function getConfigProperties() {
19
19
  emailAnalytics: config.get('emailAnalytics'),
20
20
  hostSettings: config.get('hostSettings'),
21
21
  tenor: config.get('tenor'),
22
- editor: config.get('editor'),
23
22
  pintura: config.get('pintura'),
24
- adminX: config.get('adminX'),
25
23
  signupForm: config.get('signupForm')
26
24
  };
27
25
 
28
- const billingUrl = config.get('hostSettings:billing:enabled') ? config.get('hostSettings:billing:url') : '';
29
- if (billingUrl) {
30
- configProperties.billingUrl = billingUrl;
26
+ // WIP tinybird stats feature - it's entirely config driven instead of using an alpha flag for now
27
+ if (config.get('tinybird') && config.get('tinybird:stats')) {
28
+ configProperties.stats = config.get('tinybird:stats');
31
29
  }
32
30
 
33
31
  return configProperties;
@@ -39,11 +39,16 @@ class RecommendationServiceWrapper {
39
39
  incomingRecommendationService;
40
40
 
41
41
  init() {
42
+ const config = require('../../../shared/config');
43
+ if (config.get('services:recommendations:enabled') === false) {
44
+ logging.info('[Recommendations] Service is disabled via config');
45
+ return;
46
+ }
47
+
42
48
  if (this.repository) {
43
49
  return;
44
50
  }
45
51
 
46
- const config = require('../../../shared/config');
47
52
  const urlUtils = require('../../../shared/url-utils');
48
53
  const models = require('../../models');
49
54
  const sentry = require('../../../shared/sentry');
@@ -39,7 +39,7 @@ module.exports = function setupApiApp() {
39
39
  apiApp.use(routes());
40
40
 
41
41
  apiApp.use(async function nestApp(req, res, next) {
42
- if (labs.isSet('NestPlayground')) {
42
+ if (process.env.GHOST_ENABLE_NEST_FRAMEWORK && labs.isSet('NestPlayground')) {
43
43
  const originalExpressApp = req.app;
44
44
  const app = await GhostNestApp.getApp();
45
45
 
@@ -182,7 +182,7 @@
182
182
  },
183
183
  "portal": {
184
184
  "url": "https://cdn.jsdelivr.net/ghost/portal@~{version}/umd/portal.min.js",
185
- "version": "2.40"
185
+ "version": "2.43"
186
186
  },
187
187
  "sodoSearch": {
188
188
  "url": "https://cdn.jsdelivr.net/ghost/sodo-search@~{version}/umd/sodo-search.min.js",
@@ -41,13 +41,10 @@ const ALPHA_FEATURES = [
41
41
  'emailCustomization',
42
42
  'mailEvents',
43
43
  'collectionsCard',
44
- 'tipsAndDonations',
45
44
  'importMemberTier',
46
45
  'lexicalIndicators',
47
46
  'adminXDemo',
48
- 'contentVisibility',
49
- 'publishFlowEndScreen',
50
- 'postAnalyticsRefresh'
47
+ 'contentVisibility'
51
48
  ];
52
49
 
53
50
  module.exports.GA_KEYS = [...GA_FEATURES];