ghost 5.129.2 → 6.0.0-alpha.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 (286) hide show
  1. package/components/tryghost-i18n-6.0.0-alpha.1.tgz +0 -0
  2. package/core/boot.js +0 -2
  3. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +2 -2
  4. package/core/built/admin/assets/admin-x-activitypub/{index-B12913rO.mjs → index-BhgdXgH_.mjs} +2 -2
  5. package/core/built/admin/assets/admin-x-activitypub/{index-B7EmcyVj.mjs → index-rDFm98Ub.mjs} +15498 -15418
  6. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-l2Ex2555.mjs → CodeEditorView-CA2VVtOE.mjs} +2 -2
  7. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +3 -3
  8. package/core/built/admin/assets/admin-x-settings/{index-C6P_16OJ.mjs → index-Dl3F40x5.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/index-KA2tjCkS.mjs +30462 -0
  10. package/core/built/admin/assets/admin-x-settings/{modals-CY1xx4Em.mjs → modals-B0zezufO.mjs} +2185 -2183
  11. package/core/built/admin/assets/{chunk.524.c8313bccd308920abf9c.js → chunk.524.996c1c4d269fa6a50e90.js} +7 -7
  12. package/core/built/admin/assets/{chunk.582.e4feab981886cfc91835.js → chunk.582.75cf44e5d1b925adf16d.js} +9 -9
  13. package/core/built/admin/assets/{chunk.728.214803966b81ffdb1acd.js → chunk.728.985c45ad584b4b91ca60.js} +124 -124
  14. package/core/built/admin/assets/{ghost-db9fcb8c1f65776f3ee11c39f19a660b.js → ghost-5a5b2112df68dfaf6813ce38cad16847.js} +29 -30
  15. package/core/built/admin/assets/posts/posts.js +6641 -6621
  16. package/core/built/admin/assets/stats/stats.js +12770 -12724
  17. package/core/built/admin/index.html +4 -4
  18. package/core/frontend/helpers/get.js +4 -2
  19. package/core/frontend/helpers/ghost_head.js +71 -77
  20. package/core/frontend/helpers/match.js +3 -0
  21. package/core/frontend/meta/canonical-url.js +1 -7
  22. package/core/frontend/meta/context-object.js +1 -1
  23. package/core/frontend/meta/get-meta.js +1 -4
  24. package/core/frontend/meta/og-image.js +1 -1
  25. package/core/frontend/meta/og-type.js +0 -2
  26. package/core/frontend/meta/schema.js +20 -1
  27. package/core/frontend/meta/twitter-image.js +1 -1
  28. package/core/frontend/meta/url.js +1 -12
  29. package/core/frontend/services/rendering/context.js +0 -8
  30. package/core/server/api/endpoints/index.js +0 -4
  31. package/core/server/api/endpoints/session.js +0 -9
  32. package/core/server/api/endpoints/utils/serializers/input/settings.js +3 -3
  33. package/core/server/api/endpoints/utils/serializers/input/utils/settings-filter-type-group-mapper.js +0 -1
  34. package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-group-mapper.js +3 -2
  35. package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-type-mapper.js +3 -2
  36. package/core/server/api/endpoints/utils/serializers/output/all.js +1 -1
  37. package/core/server/api/endpoints/utils/serializers/output/config.js +2 -1
  38. package/core/server/api/endpoints/utils/serializers/output/index.js +0 -4
  39. package/core/server/api/endpoints/utils/serializers/output/mappers/snippets.js +1 -5
  40. package/core/server/api/endpoints/utils/serializers/output/members.js +0 -2
  41. package/core/server/api/endpoints/utils/validators/input/index.js +0 -4
  42. package/core/server/data/importer/importers/data/Base.js +1 -3
  43. package/core/server/data/importer/importers/data/SettingsImporter.js +1 -3
  44. package/core/server/data/migrations/utils/index.js +1 -4
  45. package/core/server/data/migrations/utils/permissions.js +14 -6
  46. package/core/server/data/migrations/utils/settings.js +39 -22
  47. package/core/server/data/migrations/versions/4.47/2022-05-03-15-30-final-v4.js +2 -0
  48. package/core/server/data/migrations/versions/4.47/2022-05-04-10-03-no-op.js +6 -0
  49. package/core/server/data/migrations/versions/5.100/2024-11-06-04-45-15-add-activitypub-integration.js +4 -2
  50. package/core/server/data/migrations/versions/5.113/2025-03-07-12-24-00-add-super-editor.js +4 -2
  51. package/core/server/data/migrations/versions/5.130/2025-07-11-14-14-54-add-explore-settings.js +16 -0
  52. package/core/server/data/migrations/versions/5.3/2022-07-06-07-58-add-ghost-explore-integration-role.js +4 -2
  53. package/core/server/data/migrations/versions/5.3/2022-07-06-09-17-add-ghost-explore-integration.js +4 -2
  54. package/core/server/data/migrations/versions/5.3/2022-07-06-09-26-add-ghost-explore-integration-api-key.js +4 -2
  55. package/core/server/data/migrations/versions/5.40/2023-03-21-18-42-add-self-serve-integration-role.js +4 -2
  56. package/core/server/data/migrations/versions/5.40/2023-03-21-18-52-add-self-serve-integration.js +4 -2
  57. package/core/server/data/migrations/versions/5.40/2023-03-21-19-02-add-self-serve-integration-api-key.js +4 -2
  58. package/core/server/data/migrations/versions/5.63/2023-09-13-13-03-10-add-ghost-core-content-integration.js +4 -2
  59. package/core/server/data/migrations/versions/5.63/2023-09-13-13-34-11-add-ghost-core-content-integration-key.js +4 -2
  60. package/core/server/data/migrations/versions/6.0/2025-06-20-01-41-54-remove-updated-by-column.js +46 -0
  61. package/core/server/data/migrations/versions/6.0/2025-06-20-13-41-55-remove-created-by-column.js +47 -0
  62. package/core/server/data/migrations/versions/6.0/2025-06-23-09-49-25-add-missing-member-uuids.js +22 -0
  63. package/core/server/data/migrations/versions/6.0/2025-06-23-10-03-26-members-nullable-uuid.js +5 -0
  64. package/core/server/data/migrations/versions/6.0/2025-06-24-09-19-42-use-object-id-for-hardcoded-user-id.js +95 -0
  65. package/core/server/data/migrations/versions/6.0/2025-06-25-15-03-29-remove-amp-from-settings.js +6 -0
  66. package/core/server/data/migrations/versions/6.0/2025-06-30-13-59-10-remove-mail-events-table.js +3 -0
  67. package/core/server/data/migrations/versions/6.0/2025-06-30-14-00-00-update-feature-image-alt-length.js +25 -0
  68. package/core/server/data/schema/default-settings/default-settings.json +18 -13
  69. package/core/server/data/schema/fixtures/FixtureManager.js +128 -5
  70. package/core/server/data/schema/fixtures/fixtures.json +4 -6
  71. package/core/server/data/schema/fixtures/index.js +3 -1
  72. package/core/server/data/schema/schema.js +20 -65
  73. package/core/server/data/seeders/DataGenerator.js +11 -2
  74. package/core/server/data/seeders/importers/EmailsImporter.js +1 -3
  75. package/core/server/data/seeders/importers/LabelsImporter.js +1 -3
  76. package/core/server/data/seeders/importers/MembersImporter.js +0 -1
  77. package/core/server/data/seeders/importers/MembersStripeCustomersImporter.js +1 -2
  78. package/core/server/data/seeders/importers/MembersStripeCustomersSubscriptionsImporter.js +0 -1
  79. package/core/server/data/seeders/importers/PostsImporter.js +0 -1
  80. package/core/server/data/seeders/importers/RolesUsersImporter.js +6 -1
  81. package/core/server/data/seeders/importers/TagsImporter.js +1 -2
  82. package/core/server/data/seeders/importers/UsersImporter.js +1 -2
  83. package/core/server/data/tinybird/README.md +9 -14
  84. package/core/server/models/base/bookshelf.js +8 -1
  85. package/core/server/models/base/plugins/events.js +0 -28
  86. package/core/server/models/base/plugins/user-type.js +10 -36
  87. package/core/server/models/post.js +25 -10
  88. package/core/server/models/relations/authors.js +2 -2
  89. package/core/server/models/settings.js +1 -14
  90. package/core/server/models/user.js +33 -6
  91. package/core/server/services/activitypub/ActivityPubService.js +23 -4
  92. package/core/server/services/activitypub/ActivityPubService.ts +27 -8
  93. package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -14
  94. package/core/server/services/explore-ping/ExplorePingService.js +44 -33
  95. package/core/server/services/link-redirection/README.md +1 -1
  96. package/core/server/services/mentions/MentionSendingService.js +1 -1
  97. package/core/server/services/public-config/config.js +4 -0
  98. package/core/server/services/themes/installer.js +17 -3
  99. package/core/server/services/update-check/UpdateCheckService.js +18 -2
  100. package/core/server/services/url/config.js +0 -2
  101. package/core/server/web/api/app.js +4 -0
  102. package/core/server/web/api/endpoints/admin/middleware.js +8 -9
  103. package/core/server/web/api/endpoints/admin/routes.js +0 -2
  104. package/core/server/web/comments/routes.js +3 -0
  105. package/core/server/web/shared/middleware/index.js +4 -0
  106. package/core/server/web/shared/middleware/max-limit-cap.js +27 -0
  107. package/core/server/web/shared/middleware/pretty-urls.js +3 -1
  108. package/core/server/web/shared/middleware/redirect-amp-urls.js +36 -0
  109. package/core/shared/config/defaults.json +2 -0
  110. package/core/shared/config/env/config.production.json +4 -0
  111. package/core/shared/config/overrides.json +1 -4
  112. package/core/shared/labs.js +5 -6
  113. package/core/shared/max-limit-cap.js +61 -0
  114. package/package.json +7 -8
  115. package/tsconfig.tsbuildinfo +1 -1
  116. package/yarn.lock +203 -261
  117. package/components/tryghost-i18n-5.129.2.tgz +0 -0
  118. package/core/built/admin/assets/admin-x-settings/index-DoLRADbr.mjs +0 -30308
  119. package/core/built/admin/assets/img/amp-d7b72aae3315fda95921fb575dfca100.svg +0 -4
  120. package/core/frontend/apps/amp/index.js +0 -30
  121. package/core/frontend/apps/amp/lib/helpers/amp_analytics.js +0 -32
  122. package/core/frontend/apps/amp/lib/helpers/amp_components.js +0 -48
  123. package/core/frontend/apps/amp/lib/helpers/amp_content.js +0 -214
  124. package/core/frontend/apps/amp/lib/helpers/amp_style.js +0 -8
  125. package/core/frontend/apps/amp/lib/router.js +0 -95
  126. package/core/frontend/apps/amp/lib/views/amp.hbs +0 -1046
  127. package/core/frontend/meta/amp-url.js +0 -14
  128. package/core/server/api/endpoints/mail-events.js +0 -17
  129. package/core/server/api/endpoints/utils/serializers/output/mail-events.js +0 -9
  130. package/core/server/api/endpoints/utils/validators/input/mail-events.js +0 -7
  131. package/core/server/data/migrations/utils/constants.js +0 -3
  132. package/core/server/data/migrations/versions/4.0/01-update-mobiledoc.js +0 -61
  133. package/core/server/data/migrations/versions/4.0/02-add-status-column-to-members.js +0 -11
  134. package/core/server/data/migrations/versions/4.0/03-populate-status-column-for-members.js +0 -81
  135. package/core/server/data/migrations/versions/4.0/04-drop-apps-related-tables.js +0 -10
  136. package/core/server/data/migrations/versions/4.0/05-add-members-subscribe-events-table.js +0 -9
  137. package/core/server/data/migrations/versions/4.0/06-populate-members-subscribe-events-table.js +0 -53
  138. package/core/server/data/migrations/versions/4.0/07-alter-unique-constraint-for-posts-slug.js +0 -7
  139. package/core/server/data/migrations/versions/4.0/08-add-members-login-events-table.js +0 -7
  140. package/core/server/data/migrations/versions/4.0/09-add-members-email-change-events-table.js +0 -9
  141. package/core/server/data/migrations/versions/4.0/10-add-members-status-events-table.js +0 -9
  142. package/core/server/data/migrations/versions/4.0/11-add-members-paid-subscription-events-table.js +0 -12
  143. package/core/server/data/migrations/versions/4.0/12-delete-apps-related-settings-keys.js +0 -16
  144. package/core/server/data/migrations/versions/4.0/13-add-members-payment-events-table.js +0 -10
  145. package/core/server/data/migrations/versions/4.0/14-remove-orphaned-stripe-records.js +0 -36
  146. package/core/server/data/migrations/versions/4.0/15-add-frontmatter-column-to-meta.js +0 -7
  147. package/core/server/data/migrations/versions/4.0/16-refactor-slack-setting.js +0 -96
  148. package/core/server/data/migrations/versions/4.0/17-populate-members-status-events-table.js +0 -41
  149. package/core/server/data/migrations/versions/4.0/18-transform-urls-absolute-to-transform-ready.js +0 -201
  150. package/core/server/data/migrations/versions/4.0/19-remove-labs-members-setting.js +0 -10
  151. package/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js +0 -41
  152. package/core/server/data/migrations/versions/4.0/21-sanitize-email-batches-provider-id.js +0 -8
  153. package/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js +0 -87
  154. package/core/server/data/migrations/versions/4.0/23-regenerate-posts-html.js +0 -66
  155. package/core/server/data/migrations/versions/4.0/24-add-missing-email-permissions.js +0 -36
  156. package/core/server/data/migrations/versions/4.0/25-populate-members-paid-subscription-events-table.js +0 -129
  157. package/core/server/data/migrations/versions/4.0/26-add-cascade-on-delete.js +0 -76
  158. package/core/server/data/migrations/versions/4.0/27-add-primary-key-brute-migrations-lock.js +0 -9
  159. package/core/server/data/migrations/versions/4.0/28-add-webhook-intergrations-foreign-key.js +0 -16
  160. package/core/server/data/migrations/versions/4.0/29-fix-foreign-key-for-members-stripe-customers-subscriptions.js +0 -35
  161. package/core/server/data/migrations/versions/4.0/30-set-default-accent-color.js +0 -21
  162. package/core/server/data/migrations/versions/4.1/01-fix-backup-content-permission-typo.js +0 -15
  163. package/core/server/data/migrations/versions/4.1/02-add-unique-constraint-for-member-stripe-tables.js +0 -21
  164. package/core/server/data/migrations/versions/4.11/01-add-oauth-user-data.js +0 -12
  165. package/core/server/data/migrations/versions/4.11/02-add-email-verification-required-setting.js +0 -43
  166. package/core/server/data/migrations/versions/4.12/01-add-email-only-column-to-posts-meta-table.js +0 -7
  167. package/core/server/data/migrations/versions/4.12/02-fix-member-statuses.js +0 -39
  168. package/core/server/data/migrations/versions/4.13/01-add-members-stripe-connect-auth-permission-to-administrators.js +0 -6
  169. package/core/server/data/migrations/versions/4.13/02-add-members-products-events-table.js +0 -33
  170. package/core/server/data/migrations/versions/4.14/01-fix-comped-member-statuses.js +0 -73
  171. package/core/server/data/migrations/versions/4.14/02-fix-free-members-status-events.js +0 -61
  172. package/core/server/data/migrations/versions/4.15/01-add-temp-members-analytic-events-table.js +0 -12
  173. package/core/server/data/migrations/versions/4.16/01-add-custom-theme-settings-table.js +0 -9
  174. package/core/server/data/migrations/versions/4.17/01-add-custom-theme-settings-permissions.js +0 -21
  175. package/core/server/data/migrations/versions/4.17/02-add-offers-table.js +0 -19
  176. package/core/server/data/migrations/versions/4.17/03-add-offers-permissions.js +0 -35
  177. package/core/server/data/migrations/versions/4.19/01-add-active-column-to-offers.js +0 -7
  178. package/core/server/data/migrations/versions/4.19/02-add-offer-redemptions-table.js +0 -8
  179. package/core/server/data/migrations/versions/4.2/01-fix-incorrect-mrr-delta-events.js +0 -13
  180. package/core/server/data/migrations/versions/4.20/01-remove-offer-redemptions-table.js +0 -19
  181. package/core/server/data/migrations/versions/4.20/02-remove-offers-table.js +0 -30
  182. package/core/server/data/migrations/versions/4.20/03-add-offers-table.js +0 -21
  183. package/core/server/data/migrations/versions/4.20/04-add-offer-redemptions-table.js +0 -9
  184. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +0 -44
  185. package/core/server/data/migrations/versions/4.22/01-add-is-launch-complete-setting.js +0 -8
  186. package/core/server/data/migrations/versions/4.22/02-update-launch-complete-setting-from-user-data.js +0 -39
  187. package/core/server/data/migrations/versions/4.23/01-truncate-offer-names.js +0 -59
  188. package/core/server/data/migrations/versions/4.3/01-add-products-table.js +0 -9
  189. package/core/server/data/migrations/versions/4.3/02-add-members-products-table.js +0 -8
  190. package/core/server/data/migrations/versions/4.3/03-add-default-product.js +0 -39
  191. package/core/server/data/migrations/versions/4.3/04-attach-members-to-product.js +0 -50
  192. package/core/server/data/migrations/versions/4.3/05-add-stripe-products-table.js +0 -9
  193. package/core/server/data/migrations/versions/4.3/06-add-stripe-prices-table.js +0 -15
  194. package/core/server/data/migrations/versions/4.3/07-add-products-permissions.js +0 -29
  195. package/core/server/data/migrations/versions/4.3/08-migrate-members-signup-setting.js +0 -109
  196. package/core/server/data/migrations/versions/4.3/09-add-price-id-column-to-subscriptions-table.js +0 -10
  197. package/core/server/data/migrations/versions/4.3/10-populate-stripe-price-id-in-subscriptions.js +0 -20
  198. package/core/server/data/migrations/versions/4.33/2022-01-14-11-50-add-type-column-to-products.js +0 -12
  199. package/core/server/data/migrations/versions/4.33/2022-01-14-11-51-add-default-free-tier.js +0 -40
  200. package/core/server/data/migrations/versions/4.33/2022-01-18-09-07-remove-duplicate-offer-redemptions.js +0 -46
  201. package/core/server/data/migrations/versions/4.33/2022-01-19-10-43-add-active-column-to-products-table.js +0 -7
  202. package/core/server/data/migrations/versions/4.34/2022-01-25-13-53-add-welcome-page-url-column-to-products.js +0 -7
  203. package/core/server/data/migrations/versions/4.35/2022-01-20-05-55-add-post-products-table.js +0 -8
  204. package/core/server/data/migrations/versions/4.35/2022-01-30-15-17-set-welcome-page-url-from-settings.js +0 -45
  205. package/core/server/data/migrations/versions/4.35/2022-02-01-11-48-update-email-recipient-filter-column-type.js +0 -19
  206. package/core/server/data/migrations/versions/4.35/2022-02-01-12-03-update-recipient-filter-column-type.js +0 -19
  207. package/core/server/data/migrations/versions/4.35/2022-02-02-10-38-add-default-content-visibility-tiers-setting.js +0 -8
  208. package/core/server/data/migrations/versions/4.35/2022-02-02-13-10-transform-specific-tiers-default-content-visibility.js +0 -147
  209. package/core/server/data/migrations/versions/4.35/2022-02-04-04-34-populate-empty-portal-products.js +0 -60
  210. package/core/server/data/migrations/versions/4.36/2022-02-07-14-34-add-last-seen-at-column-to-members.js +0 -10
  211. package/core/server/data/migrations/versions/4.37/2022-02-21-09-53-backfill-members-last-seen-at-column.js +0 -32
  212. package/core/server/data/migrations/versions/4.38/2022-03-01-08-46-add-visibility-to-tiers.js +0 -11
  213. package/core/server/data/migrations/versions/4.38/2022-03-03-16-12-add-visibility-to-tiers.js +0 -8
  214. package/core/server/data/migrations/versions/4.38/2022-03-03-16-17-drop-tiers-visible-column.js +0 -7
  215. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-free-products-visibility-column.js +0 -66
  216. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-products-visibility-column.js +0 -36
  217. package/core/server/data/migrations/versions/4.4/01-restore-free-members-signup-setting-from-backup.js +0 -99
  218. package/core/server/data/migrations/versions/4.4/02-migrate-members-signup-access.js +0 -126
  219. package/core/server/data/migrations/versions/4.40/2022-03-07-14-37-add-members-cancel-events-table.js +0 -8
  220. package/core/server/data/migrations/versions/4.40/2022-03-15-06-40-add-offers-admin-integration-permission-roles.js +0 -23
  221. package/core/server/data/migrations/versions/4.40/2022-03-15-06-40-add-tiers-admin-integration-permission-roles.js +0 -20
  222. package/core/server/data/migrations/versions/4.42/2022-03-21-17-17-add.js +0 -25
  223. package/core/server/data/migrations/versions/4.42/2022-03-30-15-44-add-newsletter-permissions.js +0 -28
  224. package/core/server/data/migrations/versions/4.43/2022-03-28-19-26-recreate-newsletter-table.js +0 -29
  225. package/core/server/data/migrations/versions/4.43/2022-03-29-14-45-add-members-newsletters-table.js +0 -7
  226. package/core/server/data/migrations/versions/4.43/2022-04-01-10-13-add-post-newsletter-relation.js +0 -108
  227. package/core/server/data/migrations/versions/4.43/2022-04-06-09-47-add-type-column-to-paid-subscription-events.js +0 -7
  228. package/core/server/data/migrations/versions/4.43/2022-04-06-14-56-add-email-newsletter-relation.js +0 -8
  229. package/core/server/data/migrations/versions/4.43/2022-04-08-10-45-add-subscription-id-to-mrr-events.js +0 -7
  230. package/core/server/data/migrations/versions/4.44/2022-04-06-15-22-populate-type-column-for-paid-subscription-events.js +0 -21
  231. package/core/server/data/migrations/versions/4.44/2022-04-08-11-54-add-cancelled-events.js +0 -51
  232. package/core/server/data/migrations/versions/4.44/2022-04-11-08-24-add-newsletter-permissions.js +0 -33
  233. package/core/server/data/migrations/versions/4.44/2022-04-11-10-54-add-mrr-to-subscriptions.js +0 -8
  234. package/core/server/data/migrations/versions/4.44/2022-04-12-07-33-fill-mrr.js +0 -29
  235. package/core/server/data/migrations/versions/4.44/2022-04-13-12-00-remove-newsletter-sender-name-not-null-constraint.js +0 -33
  236. package/core/server/data/migrations/versions/4.44/2022-04-15-07-53-add-offer-id-to-subscriptions.js +0 -9
  237. package/core/server/data/migrations/versions/4.45/2022-04-19-12-23-backfill-subscriptions-offers.js +0 -60
  238. package/core/server/data/migrations/versions/4.45/2022-04-20-11-25-add-newsletter-read-permission.js +0 -9
  239. package/core/server/data/migrations/versions/4.45/2022-04-21-02-55-add-notifications-key-entry-to-settings-table.js +0 -8
  240. package/core/server/data/migrations/versions/4.46/2022-04-13-12-00-add-created-at-newsletters.js +0 -6
  241. package/core/server/data/migrations/versions/4.46/2022-04-13-12-01-add-updated-at-newsletters.js +0 -6
  242. package/core/server/data/migrations/versions/4.46/2022-04-13-12-02-fill-created-at-newsletters.js +0 -19
  243. package/core/server/data/migrations/versions/4.46/2022-04-13-12-03-drop-nullable-created-at-newsletters.js +0 -3
  244. package/core/server/data/migrations/versions/4.46/2022-04-13-12-08-newsletters-show-header-name.js +0 -7
  245. package/core/server/data/migrations/versions/4.46/2022-04-13-12-57-add-uuid-column-to-newsletters.js +0 -8
  246. package/core/server/data/migrations/versions/4.46/2022-04-13-12-58-fill-uuid-for-newsletters.js +0 -19
  247. package/core/server/data/migrations/versions/4.46/2022-04-13-12-59-drop-nullable-uuid-newsletters.js +0 -3
  248. package/core/server/data/migrations/versions/4.46/2022-04-13-13-00-add-default-newsletter.js +0 -92
  249. package/core/server/data/migrations/versions/4.46/2022-04-20-08-39-map-subscribers-to-default-newsletter.js +0 -66
  250. package/core/server/data/migrations/versions/4.46/2022-04-22-07-43-add-newsletter-id-to-subscribe-events.js +0 -9
  251. package/core/server/data/migrations/versions/4.46/2022-04-27-07-59-set-newsletter-id-subscribe-events.js +0 -31
  252. package/core/server/data/migrations/versions/4.47/2022-05-03-15-30-update-newsletter-sending-options.js +0 -34
  253. package/core/server/data/migrations/versions/4.47/2022-05-04-10-03-transform-newsletter-header-image.js +0 -26
  254. package/core/server/data/migrations/versions/4.5/01-add-stripe-price-description-column.js +0 -7
  255. package/core/server/data/migrations/versions/4.5/02-add-product-description-column.js +0 -7
  256. package/core/server/data/migrations/versions/4.5/03-give-label-read-permissions-to-editors.js +0 -14
  257. package/core/server/data/migrations/versions/4.5/04-remove-unique-constraint-from-product-name.js +0 -13
  258. package/core/server/data/migrations/versions/4.5/05-rename-default-product-to-site-title.js +0 -38
  259. package/core/server/data/migrations/versions/4.6/01-remove-comped-status.js +0 -47
  260. package/core/server/data/migrations/versions/4.7/01-add-monthly-price-column-to-products.js +0 -7
  261. package/core/server/data/migrations/versions/4.7/02-add-yearly-price-column-to-products.js +0 -7
  262. package/core/server/data/migrations/versions/4.7/03-add-labs-setting.js +0 -42
  263. package/core/server/data/migrations/versions/4.8/01-add-feature-image-alt-column-to-posts-meta.js +0 -7
  264. package/core/server/data/migrations/versions/4.8/02-add-feature-image-caption-column-to-posts-meta.js +0 -7
  265. package/core/server/data/migrations/versions/4.8/03-add-default-product-portal-products.js +0 -69
  266. package/core/server/data/migrations/versions/4.8/04-migrate-show-newsletter-header-setting.js +0 -124
  267. package/core/server/data/migrations/versions/4.9/01-add-reset-all-passwords-permission.js +0 -11
  268. package/core/server/data/migrations/versions/4.9/02-add-benefits-table.js +0 -9
  269. package/core/server/data/migrations/versions/4.9/03-add-products-benefits-table.js +0 -8
  270. package/core/server/data/migrations/versions/4.9/04-add-member-segment-to-email-batches.js +0 -7
  271. package/core/server/data/migrations/versions/4.9/05-fix-missed-mobiledoc-url-transforms.js +0 -87
  272. package/core/server/data/migrations/versions/4.9/06-add-comped-status.js +0 -47
  273. package/core/server/data/migrations/versions/4.9/07-update-comped-members-status-events.js +0 -39
  274. package/core/server/models/mail-event.js +0 -12
  275. package/core/server/services/mail-events/BookshelfMailEventRepository.js +0 -40
  276. package/core/server/services/mail-events/InMemoryMailEventRepository.js +0 -10
  277. package/core/server/services/mail-events/InMemoryMailEventRepository.ts +0 -8
  278. package/core/server/services/mail-events/MailEvent.js +0 -20
  279. package/core/server/services/mail-events/MailEvent.ts +0 -10
  280. package/core/server/services/mail-events/MailEventRepository.js +0 -2
  281. package/core/server/services/mail-events/MailEventRepository.ts +0 -5
  282. package/core/server/services/mail-events/MailEventService.js +0 -124
  283. package/core/server/services/mail-events/MailEventService.ts +0 -169
  284. package/core/server/services/mail-events/index.js +0 -21
  285. package/core/server/services/mail-events/libraries.d.ts +0 -2
  286. /package/core/built/admin/assets/{chunk.728.214803966b81ffdb1acd.js.LICENSE.txt → chunk.728.985c45ad584b4b91ca60.js.LICENSE.txt} +0 -0
@@ -1,39 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createTransactionalMigration} = require('../../utils');
3
-
4
- module.exports = createTransactionalMigration(
5
- async function up(knex) {
6
- const userRows = await knex('users').select('accessibility').whereNotNull('accessibility');
7
- const hasLaunchComplete = userRows.find((user) => {
8
- try {
9
- const userAccessibility = JSON.parse(user.accessibility);
10
- return userAccessibility.launchComplete;
11
- } catch (e) {
12
- return false;
13
- }
14
- });
15
- if (hasLaunchComplete) {
16
- logging.info('Updating setting: "editor_is_launch_complete" to "true"');
17
- await knex('settings')
18
- .where({
19
- key: 'editor_is_launch_complete'
20
- })
21
- .update({
22
- value: 'true'
23
- });
24
- } else {
25
- logging.warn('Skipped setting update: "editor_is_launch_complete" setting - is already correct value!');
26
- }
27
- },
28
-
29
- async function down(knex) {
30
- logging.info('Reverting setting: "editor_is_launch_complete" - to "false"');
31
- await knex('settings')
32
- .where({
33
- key: 'editor_is_launch_complete'
34
- })
35
- .update({
36
- value: 'false'
37
- });
38
- }
39
- );
@@ -1,59 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createTransactionalMigration} = require('../../utils');
3
-
4
- /**
5
- * @param {(val: string) => boolean} exists
6
- * @param {string} requested
7
- * @param {string} attempt
8
- * @param {number} n
9
- *
10
- * @returns {string}
11
- */
12
- function getUnique(exists, requested, attempt = requested, n = 1) {
13
- if (!exists(attempt)) {
14
- return attempt;
15
- }
16
- const newAttempt = requested.slice(0, -n.toString().length) + n;
17
- return getUnique(exists, requested, newAttempt, n + 1);
18
- }
19
-
20
- module.exports = createTransactionalMigration(
21
- async function up(knex) {
22
- const allOffers = await knex
23
- .select('id', 'name')
24
- .from('offers');
25
-
26
- const offersNeedingTrunctation = allOffers.filter((row) => {
27
- return row.name.length >= 40;
28
- });
29
-
30
- if (offersNeedingTrunctation.length === 0) {
31
- logging.warn('No Offers found needing truncation');
32
- return;
33
- } else {
34
- logging.info(`Found ${offersNeedingTrunctation.length} Offers needing truncation`);
35
- }
36
-
37
- const truncatedOffers = offersNeedingTrunctation.reduce((offers, row) => {
38
- function exists(name) {
39
- return offers.find(offer => offer.name === name) !== undefined;
40
- }
41
-
42
- const updatedRow = {
43
- id: row.id,
44
- name: getUnique(exists, row.name.slice(0, 40))
45
- };
46
-
47
- return offers.concat(updatedRow);
48
- }, []);
49
-
50
- // eslint-disable-next-line no-restricted-syntax
51
- for (const truncatedOffer of truncatedOffers) {
52
- await knex('offers')
53
- .update('name', truncatedOffer.name)
54
- .where('id', truncatedOffer.id);
55
- }
56
- },
57
- // no-op we've lost the data required to roll this back
58
- async function down() {}
59
- );
@@ -1,9 +0,0 @@
1
- const {addTable} = require('../../utils');
2
-
3
- module.exports = addTable('products', {
4
- id: {type: 'string', maxlength: 24, nullable: false, primary: true},
5
- name: {type: 'string', maxlength: 191, nullable: false, unique: true},
6
- slug: {type: 'string', maxlength: 191, nullable: false, unique: true},
7
- created_at: {type: 'dateTime', nullable: false},
8
- updated_at: {type: 'dateTime', nullable: true}
9
- });
@@ -1,8 +0,0 @@
1
- const {addTable} = require('../../utils');
2
-
3
- module.exports = addTable('members_products', {
4
- id: {type: 'string', maxlength: 24, nullable: false, primary: true},
5
- member_id: {type: 'string', maxlength: 24, nullable: false, references: 'members.id', cascadeDelete: true},
6
- product_id: {type: 'string', maxlength: 24, nullable: false, references: 'products.id', cascadeDelete: true},
7
- sort_order: {type: 'integer', nullable: false, unsigned: true, defaultTo: 0}
8
- });
@@ -1,39 +0,0 @@
1
- const {createTransactionalMigration} = require('../../utils');
2
- const ObjectID = require('bson-objectid').default;
3
- const {slugify} = require('@tryghost/string');
4
- const logging = require('@tryghost/logging');
5
-
6
- module.exports = createTransactionalMigration(
7
- async function up(knex) {
8
- const [result] = await knex
9
- .count('id', {as: 'total'})
10
- .from('products');
11
-
12
- if (result.total !== 0) {
13
- logging.warn(`Not adding default product, a product already exists`);
14
- return;
15
- }
16
-
17
- const productNameSetting = await knex
18
- .select('value')
19
- .from('settings')
20
- .where('key', 'stripe_product_name')
21
- .first();
22
-
23
- const nameSettingHasValue = !!(productNameSetting && productNameSetting.value);
24
- const name = nameSettingHasValue ? productNameSetting.value : 'Ghost Subscription';
25
-
26
- logging.info(`Adding product "${name}"`);
27
- await knex('products')
28
- .insert({
29
- id: ObjectID().toHexString(),
30
- name: name,
31
- slug: slugify(name),
32
- created_at: knex.raw(`CURRENT_TIMESTAMP`)
33
- });
34
- },
35
- async function down(knex) {
36
- logging.info('Removing all products');
37
- await knex('products').del();
38
- }
39
- );
@@ -1,50 +0,0 @@
1
- const {createTransactionalMigration} = require('../../utils');
2
- const ObjectID = require('bson-objectid').default;
3
- const {chunk} = require('lodash');
4
- const logging = require('@tryghost/logging');
5
-
6
- module.exports = createTransactionalMigration(
7
- async function up(knex) {
8
- const membersWithProduct = await knex
9
- .select('id')
10
- .from('members')
11
- .whereIn('status', ['comped', 'paid']);
12
-
13
- if (membersWithProduct.length === 0) {
14
- logging.info(`No members found with product`);
15
- return;
16
- }
17
-
18
- const product = await knex
19
- .select('id', 'name')
20
- .from('products')
21
- .first();
22
-
23
- if (!product) {
24
- logging.warn(`No product found to attach members to`);
25
- return;
26
- }
27
-
28
- logging.info(`Attaching product ${product.name} to ${membersWithProduct.length} members`);
29
- const memberProductRelations = membersWithProduct.map((member) => {
30
- return {
31
- id: ObjectID().toHexString(),
32
- member_id: member.id,
33
- product_id: product.id
34
- };
35
- });
36
-
37
- // SQLite max variables is 999, we have 3 per insert (id, member_id, product_id) so most inserts in a query is 999/3 = 333
38
- const chunkSize = 333;
39
- const memberProductRelationsChunks = chunk(memberProductRelations, chunkSize);
40
-
41
- // eslint-disable-next-line no-restricted-syntax
42
- for (const relations of memberProductRelationsChunks) {
43
- await knex.insert(relations).into('members_products');
44
- }
45
- },
46
- async function down(knex) {
47
- logging.info('Removing all members_products relations');
48
- await knex('members_products').del();
49
- }
50
- );
@@ -1,9 +0,0 @@
1
- const {addTable} = require('../../utils');
2
-
3
- module.exports = addTable('stripe_products', {
4
- id: {type: 'string', maxlength: 24, nullable: false, primary: true},
5
- product_id: {type: 'string', maxlength: 24, nullable: false, unique: false, references: 'products.id', cascadeDelete: true},
6
- stripe_product_id: {type: 'string', maxlength: 255, nullable: false, unique: true},
7
- created_at: {type: 'dateTime', nullable: false},
8
- updated_at: {type: 'dateTime', nullable: true}
9
- });
@@ -1,15 +0,0 @@
1
- const {addTable} = require('../../utils');
2
-
3
- module.exports = addTable('stripe_prices', {
4
- id: {type: 'string', maxlength: 24, nullable: false, primary: true},
5
- stripe_price_id: {type: 'string', maxlength: 255, nullable: false, unique: true},
6
- stripe_product_id: {type: 'string', maxlength: 255, nullable: false, unique: false, references: 'stripe_products.stripe_product_id', cascadeDelete: true},
7
- active: {type: 'boolean', nullable: false},
8
- nickname: {type: 'string', maxlength: 50, nullable: true},
9
- currency: {type: 'string', maxlength: 191, nullable: false},
10
- amount: {type: 'integer', nullable: false},
11
- type: {type: 'string', maxlength: 50, nullable: false, defaultTo: 'recurring', validations: {isIn: [['recurring', 'one_time']]}},
12
- interval: {type: 'string', maxlength: 50, nullable: true},
13
- created_at: {type: 'dateTime', nullable: false},
14
- updated_at: {type: 'dateTime', nullable: true}
15
- });
@@ -1,29 +0,0 @@
1
- const {combineTransactionalMigrations, addPermissionWithRoles} = require('../../utils');
2
-
3
- module.exports = combineTransactionalMigrations(
4
- addPermissionWithRoles({
5
- name: 'Browse Products',
6
- action: 'browse',
7
- object: 'product'
8
- }, ['Administrator', 'Editor', 'Author']),
9
- addPermissionWithRoles({
10
- name: 'Read Products',
11
- action: 'read',
12
- object: 'product'
13
- }, ['Administrator', 'Editor', 'Author']),
14
- addPermissionWithRoles({
15
- name: 'Edit Products',
16
- action: 'edit',
17
- object: 'product'
18
- }, ['Administrator']),
19
- addPermissionWithRoles({
20
- name: 'Add Products',
21
- action: 'add',
22
- object: 'product'
23
- }, ['Administrator']),
24
- addPermissionWithRoles({
25
- name: 'Delete Products',
26
- action: 'destroy',
27
- object: 'product'
28
- }, ['Administrator'])
29
- );
@@ -1,109 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createTransactionalMigration} = require('../../utils');
3
- const ObjectId = require('bson-objectid').default;
4
-
5
- module.exports = createTransactionalMigration(
6
- async function up(connection) {
7
- const oldSetting = await connection('settings')
8
- .where('key', 'members_allow_free_signup')
9
- .select('value', 'created_by', 'updated_by')
10
- .first();
11
-
12
- // no need to create new setting in this case, Ghost will create through default settings
13
- if (!oldSetting) {
14
- logging.warn('Could not find setting `members_allow_free_signup`, skipping update of `members_signup_access` setting');
15
- return;
16
- }
17
-
18
- const newSetting = await connection('settings')
19
- .where('key', 'members_signup_access')
20
- .select('value')
21
- .first();
22
-
23
- const migrateValue = oldSetting.value === 'true' ? 'all' : 'invite';
24
-
25
- if (newSetting) {
26
- // new setting already exists, *update* with migrated value
27
- logging.info('Updating `members_signup_access` setting with value from `members_allow_free_signup`');
28
- await connection('settings')
29
- .where('key', 'members_signup_access')
30
- .update('value', migrateValue);
31
- } else {
32
- // setting does not exist yet, *create* with migrated value
33
- logging.info('Creating `members_signup_access` setting with value from `members_allow_free_signup`');
34
-
35
- const currentTimestamp = connection.raw('CURRENT_TIMESTAMP');
36
-
37
- const newSettingData = {
38
- id: ObjectId().toHexString(),
39
- group: 'members',
40
- key: 'members_signup_access',
41
- value: migrateValue,
42
- type: 'string',
43
- created_at: currentTimestamp,
44
- updated_at: currentTimestamp,
45
- created_by: oldSetting.created_by,
46
- updated_by: oldSetting.updated_by
47
- };
48
-
49
- await connection('settings').insert(newSettingData);
50
- }
51
-
52
- logging.info('Deleting `members_allow_free_signup` setting');
53
- await connection('settings')
54
- .where('key', 'members_allow_free_signup')
55
- .del();
56
- },
57
-
58
- async function down(connection) {
59
- const newSetting = await connection('settings')
60
- .where('key', 'members_signup_access')
61
- .select('value', 'created_by', 'updated_by')
62
- .first();
63
-
64
- const oldSetting = await connection('settings')
65
- .where('key', 'members_allow_free_signup')
66
- .select('value')
67
- .first();
68
-
69
- // if newSetting doesn't exist then the old setting still exists and will be used,
70
- // or it will be created with defaults on next Ghost boot
71
- if (!newSetting) {
72
- logging.warn('Could not find setting `members_signup_access`, skipping rollback of `members_allow_free_signup` setting');
73
- return;
74
- }
75
-
76
- // this can potentially be lossy if going from "nobody" but it matches to the
77
- // most appropriate setting available in earlier versions of Ghost
78
- const rollbackValue = newSetting.value === 'all' ? 'true' : 'false';
79
-
80
- if (oldSetting) {
81
- logging.info('Updating `members_allow_free_signup` based on value from `members_signup_access`');
82
- await connection('settings')
83
- .where('key', 'members_allow_free_signup')
84
- .update('value', rollbackValue);
85
- } else {
86
- logging.info('Creating `members_allow_free_signup` based on value from `members_signup_access`');
87
-
88
- const currentTimestamp = connection.raw('CURRENT_TIMESTAMP');
89
-
90
- await connection('settings')
91
- .insert({
92
- id: ObjectId().toHexString(),
93
- key: 'members_allow_free_signup',
94
- group: 'members',
95
- type: 'boolean',
96
- value: rollbackValue,
97
- created_at: currentTimestamp,
98
- updated_at: currentTimestamp,
99
- created_by: newSetting.created_by,
100
- updated_by: newSetting.updated_by
101
- });
102
- }
103
-
104
- logging.info('Deleting `members_signup_access` setting');
105
- await connection('settings')
106
- .where('key', 'members_signup_access')
107
- .del();
108
- }
109
- );
@@ -1,10 +0,0 @@
1
- const {createAddColumnMigration} = require('../../utils');
2
-
3
- module.exports = createAddColumnMigration('members_stripe_customers_subscriptions', 'stripe_price_id', {
4
- type: 'string',
5
- maxlength: 255,
6
- nullable: false,
7
- unique: false,
8
- defaultTo: '',
9
- index: true
10
- });
@@ -1,20 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createTransactionalMigration} = require('../../utils');
3
-
4
- module.exports = createTransactionalMigration(
5
- async function up(knex) {
6
- logging.info('Populating stripe_price_id from plan id in stripe customer subscriptions table');
7
- await knex('members_stripe_customers_subscriptions')
8
- .update({
9
- stripe_price_id: knex.ref('plan_id')
10
- });
11
- },
12
-
13
- async function down(knex) {
14
- logging.info('Resetting stripe_price_id column to empty in stripe customer subscriptions table');
15
- await knex('members_stripe_customers_subscriptions')
16
- .update({
17
- stripe_price_id: ''
18
- });
19
- }
20
- );
@@ -1,12 +0,0 @@
1
- const utils = require('../../utils');
2
-
3
- module.exports = utils.createAddColumnMigration(
4
- 'products',
5
- 'type',
6
- {
7
- type: 'string',
8
- maxlength: 50,
9
- nullable: false,
10
- defaultTo: 'paid'
11
- }
12
- );
@@ -1,40 +0,0 @@
1
- const {createTransactionalMigration} = require('../../utils');
2
- const ObjectID = require('bson-objectid').default;
3
- const {slugify} = require('@tryghost/string');
4
- const logging = require('@tryghost/logging');
5
-
6
- module.exports = createTransactionalMigration(
7
- async function up(knex) {
8
- const [result] = await knex
9
- .count('id', {as: 'total'})
10
- .from('products')
11
- .where('type', 'free');
12
-
13
- if (result.total !== 0) {
14
- logging.warn(`Not adding default free tier, a free tier already exists`);
15
- return;
16
- }
17
-
18
- const name = 'Free';
19
- const id = ObjectID().toHexString();
20
-
21
- logging.info(`Adding tier "${name}"`);
22
-
23
- // `slugify(id) is used to ensure unique slug here, as existing tiers could be using any name including "Free"
24
- // slugs are not used anywhere user-facing so the value is acceptable
25
- await knex('products')
26
- .insert({
27
- id: id,
28
- name: name,
29
- type: 'free',
30
- slug: slugify(id),
31
- created_at: knex.raw(`CURRENT_TIMESTAMP`)
32
- });
33
- },
34
- async function down(knex) {
35
- logging.info('Removing free tier');
36
- await knex('products')
37
- .where('type', 'free')
38
- .del();
39
- }
40
- );
@@ -1,46 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createTransactionalMigration} = require('../../utils');
3
- const DatabaseInfo = require('@tryghost/database-info');
4
-
5
- module.exports = createTransactionalMigration(
6
- async function up(knex) {
7
- if (!DatabaseInfo.isMySQL(knex)) {
8
- logging.warn('Skipping cleanup of duplicate offer redemptions - database is not MySQL');
9
- return;
10
- }
11
- logging.info('Looking for duplicate offer redemptions.');
12
-
13
- const duplicates = await knex('offer_redemptions')
14
- .select('subscription_id')
15
- .count('subscription_id as count')
16
- .groupBy('subscription_id')
17
- .having('count', '>', 1);
18
-
19
- if (!duplicates.length) {
20
- logging.info('No duplicate offer redemptions found.');
21
- return;
22
- }
23
-
24
- logging.info(`Found ${duplicates.length} duplicate offer redemptions.`);
25
-
26
- // eslint-disable-next-line no-restricted-syntax
27
- for (const duplicate of duplicates) {
28
- const offerRedemptions = await knex('offer_redemptions')
29
- .select('id')
30
- .where('subscription_id', duplicate.subscription_id);
31
-
32
- const [offerRedemptionToKeep, ...offerRedemptionsToDelete] = offerRedemptions;
33
-
34
- logging.info(`Keeping offer redemption ${offerRedemptionToKeep.id}`);
35
-
36
- logging.info(`Deleting ${offerRedemptionsToDelete.length} duplicates`);
37
- await knex('offer_redemptions')
38
- .whereIn('id', offerRedemptionsToDelete.map(x => x.id))
39
- .del();
40
- }
41
- },
42
- async function down() {
43
- logging.warn('Not recreating duplicate offer redemptions');
44
- return;
45
- }
46
- );
@@ -1,7 +0,0 @@
1
- const {createAddColumnMigration} = require('../../utils');
2
-
3
- module.exports = createAddColumnMigration('products', 'active', {
4
- type: 'boolean',
5
- nullable: false,
6
- defaultTo: true
7
- });
@@ -1,7 +0,0 @@
1
- const {createAddColumnMigration} = require('../../utils');
2
-
3
- module.exports = createAddColumnMigration('products', 'welcome_page_url', {
4
- type: 'string',
5
- maxlength: 2000,
6
- nullable: true
7
- });
@@ -1,8 +0,0 @@
1
- const {addTable} = require('../../utils');
2
-
3
- module.exports = addTable('posts_products', {
4
- id: {type: 'string', maxlength: 24, nullable: false, primary: true},
5
- post_id: {type: 'string', maxlength: 24, nullable: false, references: 'posts.id', cascadeDelete: true},
6
- product_id: {type: 'string', maxlength: 24, nullable: false, references: 'products.id', cascadeDelete: true},
7
- sort_order: {type: 'integer', nullable: false, unsigned: true, defaultTo: 0}
8
- });
@@ -1,45 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
-
3
- // For DML - data changes
4
- const {createTransactionalMigration} = require('../../utils');
5
-
6
- module.exports = createTransactionalMigration(
7
- async function up(knex) {
8
- logging.info('Setting welcome_page_url from settings');
9
-
10
- const paidSignupRedirect = await knex('settings')
11
- .select('value')
12
- .where('key', 'members_paid_signup_redirect')
13
- .first();
14
-
15
- const freeSignupRedirect = await knex('settings')
16
- .select('value')
17
- .where('key', 'members_free_signup_redirect')
18
- .first();
19
-
20
- if (paidSignupRedirect) {
21
- logging.info(`Setting paid Tiers welcome_page_url to ${paidSignupRedirect.value}`);
22
-
23
- await knex('products')
24
- .update('welcome_page_url', paidSignupRedirect.value)
25
- .where('type', 'paid');
26
- } else {
27
- logging.info(`No members_paid_signup_redirect setting found`);
28
- }
29
-
30
- if (freeSignupRedirect) {
31
- logging.info(`Setting free Tiers welcome_page_url to ${freeSignupRedirect.value}`);
32
-
33
- await knex('products')
34
- .update('welcome_page_url', freeSignupRedirect.value)
35
- .where('type', 'free');
36
- } else {
37
- logging.info(`No members_free_signup_redirect setting found`);
38
- }
39
- },
40
- async function down(knex) {
41
- logging.info('Setting welcome_page_url to NULL');
42
- await knex('products')
43
- .update('welcome_page_url', null);
44
- }
45
- );
@@ -1,19 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createNonTransactionalMigration} = require('../../utils');
3
- const DatabaseInfo = require('@tryghost/database-info');
4
-
5
- module.exports = createNonTransactionalMigration(
6
- async function up(knex) {
7
- if (DatabaseInfo.isSQLite(knex)) {
8
- logging.warn('Skipping migration for SQLite3');
9
- return;
10
- }
11
- logging.info('Changing posts.email_recipient_filter column from VARCHAR(50) to TEXT');
12
- await knex.schema.alterTable('posts', function (table) {
13
- table.text('email_recipient_filter').alter();
14
- });
15
- },
16
- async function down() {
17
- logging.warn('Not changing posts.email_recipient_filter column');
18
- }
19
- );
@@ -1,19 +0,0 @@
1
- const logging = require('@tryghost/logging');
2
- const {createNonTransactionalMigration} = require('../../utils');
3
- const DatabaseInfo = require('@tryghost/database-info');
4
-
5
- module.exports = createNonTransactionalMigration(
6
- async function up(knex) {
7
- if (DatabaseInfo.isSQLite(knex)) {
8
- logging.warn('Skipping migration for SQLite3');
9
- return;
10
- }
11
- logging.info('Changing emails.recipient_filter column from VARCHAR(50) to TEXT');
12
- await knex.schema.alterTable('emails', function (table) {
13
- table.text('recipient_filter').alter();
14
- });
15
- },
16
- async function down() {
17
- logging.warn('Not changing emails.recipient_filter column');
18
- }
19
- );
@@ -1,8 +0,0 @@
1
- const {addSetting} = require('../../utils');
2
-
3
- module.exports = addSetting({
4
- key: 'default_content_visibility_tiers',
5
- value: '[]',
6
- type: 'array',
7
- group: 'members'
8
- });