ghost 5.130.2 → 6.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/components/tryghost-i18n-6.0.0-alpha.2.tgz +0 -0
  2. package/core/boot.js +0 -2
  3. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +1 -1
  4. package/core/built/admin/assets/admin-x-activitypub/{index-B8te98RZ.mjs → index-BZDwG-OG.mjs} +7397 -7385
  5. package/core/built/admin/assets/admin-x-activitypub/{index-C8qwgKWF.mjs → index-DTlSQCGz.mjs} +2 -2
  6. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-CAtv7MlN.mjs → CodeEditorView-CCUvrZhe.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-BVxh86CD.mjs → index-Cubs_8W6.mjs} +8088 -8532
  9. package/core/built/admin/assets/admin-x-settings/{index-DUhmXSBR.mjs → index-D0ejKdD5.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{modals-B5dtfzsB.mjs → modals-DSxs9dLy.mjs} +1676 -1614
  11. package/core/built/admin/assets/{chunk.524.1f2faf572078e5b86b09.js → chunk.524.0953dd72ae1efbabe0de.js} +7 -7
  12. package/core/built/admin/assets/{chunk.582.675905fe8f9be138fb19.js → chunk.582.3caa825c2a91efc48f1d.js} +8 -8
  13. package/core/built/admin/assets/{ghost-280b83af263b51bc4d6ce5bd8f536096.js → ghost-db0f84981913aec8a672c57aa22da07a.js} +40 -45
  14. package/core/built/admin/assets/posts/posts.js +6549 -6537
  15. package/core/built/admin/assets/stats/stats.js +8824 -8812
  16. package/core/built/admin/index.html +3 -3
  17. package/core/frontend/helpers/get.js +4 -2
  18. package/core/frontend/helpers/ghost_head.js +71 -77
  19. package/core/frontend/meta/canonical-url.js +1 -7
  20. package/core/frontend/meta/context-object.js +1 -1
  21. package/core/frontend/meta/get-meta.js +1 -4
  22. package/core/frontend/meta/og-image.js +1 -1
  23. package/core/frontend/meta/og-type.js +0 -2
  24. package/core/frontend/meta/schema.js +1 -1
  25. package/core/frontend/meta/twitter-image.js +1 -1
  26. package/core/frontend/meta/url.js +1 -12
  27. package/core/frontend/services/rendering/context.js +0 -8
  28. package/core/frontend/web/middleware/static-theme.js +20 -1
  29. package/core/server/api/endpoints/index.js +0 -4
  30. package/core/server/api/endpoints/session.js +0 -9
  31. package/core/server/api/endpoints/utils/serializers/input/settings.js +0 -2
  32. package/core/server/api/endpoints/utils/serializers/input/utils/settings-filter-type-group-mapper.js +0 -1
  33. package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-group-mapper.js +0 -1
  34. package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-type-mapper.js +0 -1
  35. package/core/server/api/endpoints/utils/serializers/output/all.js +1 -1
  36. package/core/server/api/endpoints/utils/serializers/output/index.js +0 -4
  37. package/core/server/api/endpoints/utils/serializers/output/mappers/snippets.js +1 -5
  38. package/core/server/api/endpoints/utils/serializers/output/members.js +0 -2
  39. package/core/server/api/endpoints/utils/validators/input/index.js +0 -4
  40. package/core/server/data/importer/importers/data/Base.js +1 -3
  41. package/core/server/data/importer/importers/data/SettingsImporter.js +1 -3
  42. package/core/server/data/migrations/utils/index.js +1 -4
  43. package/core/server/data/migrations/utils/permissions.js +14 -6
  44. package/core/server/data/migrations/utils/settings.js +39 -22
  45. package/core/server/data/migrations/versions/4.47/2022-05-03-15-30-final-v4.js +2 -0
  46. package/core/server/data/migrations/versions/4.47/2022-05-04-10-03-no-op.js +6 -0
  47. package/core/server/data/migrations/versions/5.100/2024-11-06-04-45-15-add-activitypub-integration.js +4 -2
  48. package/core/server/data/migrations/versions/5.113/2025-03-07-12-24-00-add-super-editor.js +4 -2
  49. package/core/server/data/migrations/versions/5.3/2022-07-06-07-58-add-ghost-explore-integration-role.js +4 -2
  50. package/core/server/data/migrations/versions/5.3/2022-07-06-09-17-add-ghost-explore-integration.js +4 -2
  51. package/core/server/data/migrations/versions/5.3/2022-07-06-09-26-add-ghost-explore-integration-api-key.js +4 -2
  52. package/core/server/data/migrations/versions/5.40/2023-03-21-18-42-add-self-serve-integration-role.js +4 -2
  53. package/core/server/data/migrations/versions/5.40/2023-03-21-18-52-add-self-serve-integration.js +4 -2
  54. package/core/server/data/migrations/versions/5.40/2023-03-21-19-02-add-self-serve-integration-api-key.js +4 -2
  55. package/core/server/data/migrations/versions/5.63/2023-09-13-13-03-10-add-ghost-core-content-integration.js +4 -2
  56. package/core/server/data/migrations/versions/5.63/2023-09-13-13-34-11-add-ghost-core-content-integration-key.js +4 -2
  57. package/core/server/data/migrations/versions/6.0/2025-06-20-01-41-54-remove-updated-by-column.js +46 -0
  58. package/core/server/data/migrations/versions/6.0/2025-06-20-13-41-55-remove-created-by-column.js +47 -0
  59. package/core/server/data/migrations/versions/6.0/2025-06-23-09-49-25-add-missing-member-uuids.js +22 -0
  60. package/core/server/data/migrations/versions/6.0/2025-06-23-10-03-26-members-nullable-uuid.js +5 -0
  61. package/core/server/data/migrations/versions/6.0/2025-06-24-09-19-42-use-object-id-for-hardcoded-user-id.js +95 -0
  62. package/core/server/data/migrations/versions/6.0/2025-06-25-15-03-29-remove-amp-from-settings.js +6 -0
  63. package/core/server/data/migrations/versions/6.0/2025-06-30-13-59-10-remove-mail-events-table.js +3 -0
  64. package/core/server/data/migrations/versions/6.0/2025-06-30-14-00-00-update-feature-image-alt-length.js +25 -0
  65. package/core/server/data/schema/default-settings/default-settings.json +0 -13
  66. package/core/server/data/schema/fixtures/FixtureManager.js +128 -5
  67. package/core/server/data/schema/fixtures/fixtures.json +4 -6
  68. package/core/server/data/schema/fixtures/index.js +3 -1
  69. package/core/server/data/schema/schema.js +20 -65
  70. package/core/server/data/seeders/DataGenerator.js +11 -2
  71. package/core/server/data/seeders/importers/EmailsImporter.js +1 -3
  72. package/core/server/data/seeders/importers/LabelsImporter.js +1 -3
  73. package/core/server/data/seeders/importers/MembersImporter.js +0 -1
  74. package/core/server/data/seeders/importers/MembersStripeCustomersImporter.js +1 -2
  75. package/core/server/data/seeders/importers/MembersStripeCustomersSubscriptionsImporter.js +0 -1
  76. package/core/server/data/seeders/importers/PostsImporter.js +0 -1
  77. package/core/server/data/seeders/importers/RolesUsersImporter.js +6 -1
  78. package/core/server/data/seeders/importers/TagsImporter.js +1 -2
  79. package/core/server/data/seeders/importers/UsersImporter.js +1 -2
  80. package/core/server/data/tinybird/ARCHITECTURE.md +0 -4
  81. package/core/server/data/tinybird/DOCS.md +0 -4
  82. package/core/server/models/base/bookshelf.js +8 -1
  83. package/core/server/models/base/plugins/events.js +0 -28
  84. package/core/server/models/base/plugins/user-type.js +10 -36
  85. package/core/server/models/post.js +25 -10
  86. package/core/server/models/relations/authors.js +2 -2
  87. package/core/server/models/settings.js +1 -14
  88. package/core/server/models/user.js +33 -6
  89. package/core/server/services/activitypub/ActivityPubService.js +1 -2
  90. package/core/server/services/activitypub/ActivityPubService.ts +1 -2
  91. package/core/server/services/explore-ping/ExplorePingService.js +3 -1
  92. package/core/server/services/link-redirection/README.md +1 -1
  93. package/core/server/services/mentions/MentionSendingService.js +1 -1
  94. package/core/server/services/settings/SettingsBREADService.js +5 -1
  95. package/core/server/services/settings/settings-service.js +3 -1
  96. package/core/server/services/settings-helpers/SettingsHelpers.js +0 -12
  97. package/core/server/services/update-check/UpdateCheckService.js +18 -2
  98. package/core/server/services/url/config.js +0 -2
  99. package/core/server/web/api/app.js +4 -0
  100. package/core/server/web/api/endpoints/admin/middleware.js +8 -9
  101. package/core/server/web/api/endpoints/admin/routes.js +0 -2
  102. package/core/server/web/comments/routes.js +3 -0
  103. package/core/server/web/shared/middleware/index.js +4 -0
  104. package/core/server/web/shared/middleware/max-limit-cap.js +27 -0
  105. package/core/server/web/shared/middleware/pretty-urls.js +3 -1
  106. package/core/server/web/shared/middleware/redirect-amp-urls.js +36 -0
  107. package/core/shared/config/defaults.json +2 -0
  108. package/core/shared/config/overrides.json +1 -4
  109. package/core/shared/labs.js +2 -6
  110. package/core/shared/max-limit-cap.js +61 -0
  111. package/package.json +5 -6
  112. package/tsconfig.tsbuildinfo +1 -1
  113. package/yarn.lock +18 -107
  114. package/components/tryghost-i18n-5.130.2.tgz +0 -0
  115. package/core/built/admin/assets/img/amp-d7b72aae3315fda95921fb575dfca100.svg +0 -4
  116. package/core/frontend/apps/amp/index.js +0 -30
  117. package/core/frontend/apps/amp/lib/helpers/amp_analytics.js +0 -32
  118. package/core/frontend/apps/amp/lib/helpers/amp_components.js +0 -48
  119. package/core/frontend/apps/amp/lib/helpers/amp_content.js +0 -214
  120. package/core/frontend/apps/amp/lib/helpers/amp_style.js +0 -8
  121. package/core/frontend/apps/amp/lib/router.js +0 -95
  122. package/core/frontend/apps/amp/lib/views/amp.hbs +0 -1046
  123. package/core/frontend/meta/amp-url.js +0 -14
  124. package/core/server/api/endpoints/mail-events.js +0 -17
  125. package/core/server/api/endpoints/utils/serializers/output/mail-events.js +0 -9
  126. package/core/server/api/endpoints/utils/validators/input/mail-events.js +0 -7
  127. package/core/server/data/migrations/utils/constants.js +0 -3
  128. package/core/server/data/migrations/versions/4.0/01-update-mobiledoc.js +0 -61
  129. package/core/server/data/migrations/versions/4.0/02-add-status-column-to-members.js +0 -11
  130. package/core/server/data/migrations/versions/4.0/03-populate-status-column-for-members.js +0 -81
  131. package/core/server/data/migrations/versions/4.0/04-drop-apps-related-tables.js +0 -10
  132. package/core/server/data/migrations/versions/4.0/05-add-members-subscribe-events-table.js +0 -9
  133. package/core/server/data/migrations/versions/4.0/06-populate-members-subscribe-events-table.js +0 -53
  134. package/core/server/data/migrations/versions/4.0/07-alter-unique-constraint-for-posts-slug.js +0 -7
  135. package/core/server/data/migrations/versions/4.0/08-add-members-login-events-table.js +0 -7
  136. package/core/server/data/migrations/versions/4.0/09-add-members-email-change-events-table.js +0 -9
  137. package/core/server/data/migrations/versions/4.0/10-add-members-status-events-table.js +0 -9
  138. package/core/server/data/migrations/versions/4.0/11-add-members-paid-subscription-events-table.js +0 -12
  139. package/core/server/data/migrations/versions/4.0/12-delete-apps-related-settings-keys.js +0 -16
  140. package/core/server/data/migrations/versions/4.0/13-add-members-payment-events-table.js +0 -10
  141. package/core/server/data/migrations/versions/4.0/14-remove-orphaned-stripe-records.js +0 -36
  142. package/core/server/data/migrations/versions/4.0/15-add-frontmatter-column-to-meta.js +0 -7
  143. package/core/server/data/migrations/versions/4.0/16-refactor-slack-setting.js +0 -96
  144. package/core/server/data/migrations/versions/4.0/17-populate-members-status-events-table.js +0 -41
  145. package/core/server/data/migrations/versions/4.0/18-transform-urls-absolute-to-transform-ready.js +0 -201
  146. package/core/server/data/migrations/versions/4.0/19-remove-labs-members-setting.js +0 -10
  147. package/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js +0 -41
  148. package/core/server/data/migrations/versions/4.0/21-sanitize-email-batches-provider-id.js +0 -8
  149. package/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js +0 -87
  150. package/core/server/data/migrations/versions/4.0/23-regenerate-posts-html.js +0 -66
  151. package/core/server/data/migrations/versions/4.0/24-add-missing-email-permissions.js +0 -36
  152. package/core/server/data/migrations/versions/4.0/25-populate-members-paid-subscription-events-table.js +0 -129
  153. package/core/server/data/migrations/versions/4.0/26-add-cascade-on-delete.js +0 -76
  154. package/core/server/data/migrations/versions/4.0/27-add-primary-key-brute-migrations-lock.js +0 -9
  155. package/core/server/data/migrations/versions/4.0/28-add-webhook-intergrations-foreign-key.js +0 -16
  156. package/core/server/data/migrations/versions/4.0/29-fix-foreign-key-for-members-stripe-customers-subscriptions.js +0 -35
  157. package/core/server/data/migrations/versions/4.0/30-set-default-accent-color.js +0 -21
  158. package/core/server/data/migrations/versions/4.1/01-fix-backup-content-permission-typo.js +0 -15
  159. package/core/server/data/migrations/versions/4.1/02-add-unique-constraint-for-member-stripe-tables.js +0 -21
  160. package/core/server/data/migrations/versions/4.11/01-add-oauth-user-data.js +0 -12
  161. package/core/server/data/migrations/versions/4.11/02-add-email-verification-required-setting.js +0 -43
  162. package/core/server/data/migrations/versions/4.12/01-add-email-only-column-to-posts-meta-table.js +0 -7
  163. package/core/server/data/migrations/versions/4.12/02-fix-member-statuses.js +0 -39
  164. package/core/server/data/migrations/versions/4.13/01-add-members-stripe-connect-auth-permission-to-administrators.js +0 -6
  165. package/core/server/data/migrations/versions/4.13/02-add-members-products-events-table.js +0 -33
  166. package/core/server/data/migrations/versions/4.14/01-fix-comped-member-statuses.js +0 -73
  167. package/core/server/data/migrations/versions/4.14/02-fix-free-members-status-events.js +0 -61
  168. package/core/server/data/migrations/versions/4.15/01-add-temp-members-analytic-events-table.js +0 -12
  169. package/core/server/data/migrations/versions/4.16/01-add-custom-theme-settings-table.js +0 -9
  170. package/core/server/data/migrations/versions/4.17/01-add-custom-theme-settings-permissions.js +0 -21
  171. package/core/server/data/migrations/versions/4.17/02-add-offers-table.js +0 -19
  172. package/core/server/data/migrations/versions/4.17/03-add-offers-permissions.js +0 -35
  173. package/core/server/data/migrations/versions/4.19/01-add-active-column-to-offers.js +0 -7
  174. package/core/server/data/migrations/versions/4.19/02-add-offer-redemptions-table.js +0 -8
  175. package/core/server/data/migrations/versions/4.2/01-fix-incorrect-mrr-delta-events.js +0 -13
  176. package/core/server/data/migrations/versions/4.20/01-remove-offer-redemptions-table.js +0 -19
  177. package/core/server/data/migrations/versions/4.20/02-remove-offers-table.js +0 -30
  178. package/core/server/data/migrations/versions/4.20/03-add-offers-table.js +0 -21
  179. package/core/server/data/migrations/versions/4.20/04-add-offer-redemptions-table.js +0 -9
  180. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +0 -44
  181. package/core/server/data/migrations/versions/4.22/01-add-is-launch-complete-setting.js +0 -8
  182. package/core/server/data/migrations/versions/4.22/02-update-launch-complete-setting-from-user-data.js +0 -39
  183. package/core/server/data/migrations/versions/4.23/01-truncate-offer-names.js +0 -59
  184. package/core/server/data/migrations/versions/4.3/01-add-products-table.js +0 -9
  185. package/core/server/data/migrations/versions/4.3/02-add-members-products-table.js +0 -8
  186. package/core/server/data/migrations/versions/4.3/03-add-default-product.js +0 -39
  187. package/core/server/data/migrations/versions/4.3/04-attach-members-to-product.js +0 -50
  188. package/core/server/data/migrations/versions/4.3/05-add-stripe-products-table.js +0 -9
  189. package/core/server/data/migrations/versions/4.3/06-add-stripe-prices-table.js +0 -15
  190. package/core/server/data/migrations/versions/4.3/07-add-products-permissions.js +0 -29
  191. package/core/server/data/migrations/versions/4.3/08-migrate-members-signup-setting.js +0 -109
  192. package/core/server/data/migrations/versions/4.3/09-add-price-id-column-to-subscriptions-table.js +0 -10
  193. package/core/server/data/migrations/versions/4.3/10-populate-stripe-price-id-in-subscriptions.js +0 -20
  194. package/core/server/data/migrations/versions/4.33/2022-01-14-11-50-add-type-column-to-products.js +0 -12
  195. package/core/server/data/migrations/versions/4.33/2022-01-14-11-51-add-default-free-tier.js +0 -40
  196. package/core/server/data/migrations/versions/4.33/2022-01-18-09-07-remove-duplicate-offer-redemptions.js +0 -46
  197. package/core/server/data/migrations/versions/4.33/2022-01-19-10-43-add-active-column-to-products-table.js +0 -7
  198. package/core/server/data/migrations/versions/4.34/2022-01-25-13-53-add-welcome-page-url-column-to-products.js +0 -7
  199. package/core/server/data/migrations/versions/4.35/2022-01-20-05-55-add-post-products-table.js +0 -8
  200. package/core/server/data/migrations/versions/4.35/2022-01-30-15-17-set-welcome-page-url-from-settings.js +0 -45
  201. package/core/server/data/migrations/versions/4.35/2022-02-01-11-48-update-email-recipient-filter-column-type.js +0 -19
  202. package/core/server/data/migrations/versions/4.35/2022-02-01-12-03-update-recipient-filter-column-type.js +0 -19
  203. package/core/server/data/migrations/versions/4.35/2022-02-02-10-38-add-default-content-visibility-tiers-setting.js +0 -8
  204. package/core/server/data/migrations/versions/4.35/2022-02-02-13-10-transform-specific-tiers-default-content-visibility.js +0 -147
  205. package/core/server/data/migrations/versions/4.35/2022-02-04-04-34-populate-empty-portal-products.js +0 -60
  206. package/core/server/data/migrations/versions/4.36/2022-02-07-14-34-add-last-seen-at-column-to-members.js +0 -10
  207. package/core/server/data/migrations/versions/4.37/2022-02-21-09-53-backfill-members-last-seen-at-column.js +0 -32
  208. package/core/server/data/migrations/versions/4.38/2022-03-01-08-46-add-visibility-to-tiers.js +0 -11
  209. package/core/server/data/migrations/versions/4.38/2022-03-03-16-12-add-visibility-to-tiers.js +0 -8
  210. package/core/server/data/migrations/versions/4.38/2022-03-03-16-17-drop-tiers-visible-column.js +0 -7
  211. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-free-products-visibility-column.js +0 -66
  212. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-products-visibility-column.js +0 -36
  213. package/core/server/data/migrations/versions/4.4/01-restore-free-members-signup-setting-from-backup.js +0 -99
  214. package/core/server/data/migrations/versions/4.4/02-migrate-members-signup-access.js +0 -126
  215. package/core/server/data/migrations/versions/4.40/2022-03-07-14-37-add-members-cancel-events-table.js +0 -8
  216. package/core/server/data/migrations/versions/4.40/2022-03-15-06-40-add-offers-admin-integration-permission-roles.js +0 -23
  217. package/core/server/data/migrations/versions/4.40/2022-03-15-06-40-add-tiers-admin-integration-permission-roles.js +0 -20
  218. package/core/server/data/migrations/versions/4.42/2022-03-21-17-17-add.js +0 -25
  219. package/core/server/data/migrations/versions/4.42/2022-03-30-15-44-add-newsletter-permissions.js +0 -28
  220. package/core/server/data/migrations/versions/4.43/2022-03-28-19-26-recreate-newsletter-table.js +0 -29
  221. package/core/server/data/migrations/versions/4.43/2022-03-29-14-45-add-members-newsletters-table.js +0 -7
  222. package/core/server/data/migrations/versions/4.43/2022-04-01-10-13-add-post-newsletter-relation.js +0 -108
  223. package/core/server/data/migrations/versions/4.43/2022-04-06-09-47-add-type-column-to-paid-subscription-events.js +0 -7
  224. package/core/server/data/migrations/versions/4.43/2022-04-06-14-56-add-email-newsletter-relation.js +0 -8
  225. package/core/server/data/migrations/versions/4.43/2022-04-08-10-45-add-subscription-id-to-mrr-events.js +0 -7
  226. package/core/server/data/migrations/versions/4.44/2022-04-06-15-22-populate-type-column-for-paid-subscription-events.js +0 -21
  227. package/core/server/data/migrations/versions/4.44/2022-04-08-11-54-add-cancelled-events.js +0 -51
  228. package/core/server/data/migrations/versions/4.44/2022-04-11-08-24-add-newsletter-permissions.js +0 -33
  229. package/core/server/data/migrations/versions/4.44/2022-04-11-10-54-add-mrr-to-subscriptions.js +0 -8
  230. package/core/server/data/migrations/versions/4.44/2022-04-12-07-33-fill-mrr.js +0 -29
  231. package/core/server/data/migrations/versions/4.44/2022-04-13-12-00-remove-newsletter-sender-name-not-null-constraint.js +0 -33
  232. package/core/server/data/migrations/versions/4.44/2022-04-15-07-53-add-offer-id-to-subscriptions.js +0 -9
  233. package/core/server/data/migrations/versions/4.45/2022-04-19-12-23-backfill-subscriptions-offers.js +0 -60
  234. package/core/server/data/migrations/versions/4.45/2022-04-20-11-25-add-newsletter-read-permission.js +0 -9
  235. package/core/server/data/migrations/versions/4.45/2022-04-21-02-55-add-notifications-key-entry-to-settings-table.js +0 -8
  236. package/core/server/data/migrations/versions/4.46/2022-04-13-12-00-add-created-at-newsletters.js +0 -6
  237. package/core/server/data/migrations/versions/4.46/2022-04-13-12-01-add-updated-at-newsletters.js +0 -6
  238. package/core/server/data/migrations/versions/4.46/2022-04-13-12-02-fill-created-at-newsletters.js +0 -19
  239. package/core/server/data/migrations/versions/4.46/2022-04-13-12-03-drop-nullable-created-at-newsletters.js +0 -3
  240. package/core/server/data/migrations/versions/4.46/2022-04-13-12-08-newsletters-show-header-name.js +0 -7
  241. package/core/server/data/migrations/versions/4.46/2022-04-13-12-57-add-uuid-column-to-newsletters.js +0 -8
  242. package/core/server/data/migrations/versions/4.46/2022-04-13-12-58-fill-uuid-for-newsletters.js +0 -19
  243. package/core/server/data/migrations/versions/4.46/2022-04-13-12-59-drop-nullable-uuid-newsletters.js +0 -3
  244. package/core/server/data/migrations/versions/4.46/2022-04-13-13-00-add-default-newsletter.js +0 -92
  245. package/core/server/data/migrations/versions/4.46/2022-04-20-08-39-map-subscribers-to-default-newsletter.js +0 -66
  246. package/core/server/data/migrations/versions/4.46/2022-04-22-07-43-add-newsletter-id-to-subscribe-events.js +0 -9
  247. package/core/server/data/migrations/versions/4.46/2022-04-27-07-59-set-newsletter-id-subscribe-events.js +0 -31
  248. package/core/server/data/migrations/versions/4.47/2022-05-03-15-30-update-newsletter-sending-options.js +0 -34
  249. package/core/server/data/migrations/versions/4.47/2022-05-04-10-03-transform-newsletter-header-image.js +0 -26
  250. package/core/server/data/migrations/versions/4.5/01-add-stripe-price-description-column.js +0 -7
  251. package/core/server/data/migrations/versions/4.5/02-add-product-description-column.js +0 -7
  252. package/core/server/data/migrations/versions/4.5/03-give-label-read-permissions-to-editors.js +0 -14
  253. package/core/server/data/migrations/versions/4.5/04-remove-unique-constraint-from-product-name.js +0 -13
  254. package/core/server/data/migrations/versions/4.5/05-rename-default-product-to-site-title.js +0 -38
  255. package/core/server/data/migrations/versions/4.6/01-remove-comped-status.js +0 -47
  256. package/core/server/data/migrations/versions/4.7/01-add-monthly-price-column-to-products.js +0 -7
  257. package/core/server/data/migrations/versions/4.7/02-add-yearly-price-column-to-products.js +0 -7
  258. package/core/server/data/migrations/versions/4.7/03-add-labs-setting.js +0 -42
  259. package/core/server/data/migrations/versions/4.8/01-add-feature-image-alt-column-to-posts-meta.js +0 -7
  260. package/core/server/data/migrations/versions/4.8/02-add-feature-image-caption-column-to-posts-meta.js +0 -7
  261. package/core/server/data/migrations/versions/4.8/03-add-default-product-portal-products.js +0 -69
  262. package/core/server/data/migrations/versions/4.8/04-migrate-show-newsletter-header-setting.js +0 -124
  263. package/core/server/data/migrations/versions/4.9/01-add-reset-all-passwords-permission.js +0 -11
  264. package/core/server/data/migrations/versions/4.9/02-add-benefits-table.js +0 -9
  265. package/core/server/data/migrations/versions/4.9/03-add-products-benefits-table.js +0 -8
  266. package/core/server/data/migrations/versions/4.9/04-add-member-segment-to-email-batches.js +0 -7
  267. package/core/server/data/migrations/versions/4.9/05-fix-missed-mobiledoc-url-transforms.js +0 -87
  268. package/core/server/data/migrations/versions/4.9/06-add-comped-status.js +0 -47
  269. package/core/server/data/migrations/versions/4.9/07-update-comped-members-status-events.js +0 -39
  270. package/core/server/models/mail-event.js +0 -12
  271. package/core/server/services/mail-events/BookshelfMailEventRepository.js +0 -40
  272. package/core/server/services/mail-events/InMemoryMailEventRepository.js +0 -10
  273. package/core/server/services/mail-events/InMemoryMailEventRepository.ts +0 -8
  274. package/core/server/services/mail-events/MailEvent.js +0 -20
  275. package/core/server/services/mail-events/MailEvent.ts +0 -10
  276. package/core/server/services/mail-events/MailEventRepository.js +0 -2
  277. package/core/server/services/mail-events/MailEventRepository.ts +0 -5
  278. package/core/server/services/mail-events/MailEventService.js +0 -124
  279. package/core/server/services/mail-events/MailEventService.ts +0 -169
  280. package/core/server/services/mail-events/index.js +0 -21
  281. package/core/server/services/mail-events/libraries.d.ts +0 -2
package/yarn.lock CHANGED
@@ -8958,10 +8958,10 @@
8958
8958
  dependencies:
8959
8959
  "@types/node" "*"
8960
8960
 
8961
- "@types/node@*", "@types/node@22.16.4", "@types/node@>=10.0.0", "@types/node@>=18.0.0", "@types/node@>=8.1.0":
8962
- version "22.16.4"
8963
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.16.4.tgz#00c763ad4d4e45f62d5a270c040ae1a799c7e38a"
8964
- integrity sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==
8961
+ "@types/node@*", "@types/node@22.16.5", "@types/node@>=10.0.0", "@types/node@>=18.0.0", "@types/node@>=8.1.0":
8962
+ version "22.16.5"
8963
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.16.5.tgz#cc46ac3994cd957000d0c11095a0b1dae2ea2368"
8964
+ integrity sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==
8965
8965
  dependencies:
8966
8966
  undici-types "~6.21.0"
8967
8967
 
@@ -10026,23 +10026,6 @@ amdefine@>=0.0.4:
10026
10026
  resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
10027
10027
  integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==
10028
10028
 
10029
- amperize@0.6.1:
10030
- version "0.6.1"
10031
- resolved "https://registry.yarnpkg.com/amperize/-/amperize-0.6.1.tgz#b90079db6d66d4dd33e6584ef88c4df493ed7e03"
10032
- integrity sha512-g36E/XJ5N98VyKh4opL894rlrBejh7aS6emet0HpLKg9IHfbXM3vDMBgwsTQO9M/kY+NZ9mpQU3SW9w8FDM6gw==
10033
- dependencies:
10034
- async "^3.0.1"
10035
- domutils "^2.0.0"
10036
- emits "^3.0.0"
10037
- htmlparser2 "^4.0.0"
10038
- image-size "^0.8.1"
10039
- lodash "^4.17.11"
10040
- probe-image-size "^5.0.0"
10041
- request "^2.83.0"
10042
- request-promise "^4.2.4"
10043
- uuid "^7.0.1"
10044
- validator "^12.0.0"
10045
-
10046
10029
  animejs@3.2.2:
10047
10030
  version "3.2.2"
10048
10031
  resolved "https://registry.yarnpkg.com/animejs/-/animejs-3.2.2.tgz#59be98c58834339d5847f4a70ddba74ac75b6afc"
@@ -10549,7 +10532,7 @@ async@^2.4.1:
10549
10532
  dependencies:
10550
10533
  lodash "^4.17.14"
10551
10534
 
10552
- async@^3.0.0, async@^3.0.1, async@^3.2.3, async@^3.2.6:
10535
+ async@^3.0.0, async@^3.2.3, async@^3.2.6:
10553
10536
  version "3.2.6"
10554
10537
  resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
10555
10538
  integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
@@ -11619,7 +11602,7 @@ blank-object@^1.0.1:
11619
11602
  resolved "https://registry.yarnpkg.com/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9"
11620
11603
  integrity sha512-kXQ19Xhoghiyw66CUiGypnuRpWlbHAzY/+NyvqTEdTfhfQGH1/dbEMYiXju7fYKIFePpzp/y9dsu5Cu/PkmawQ==
11621
11604
 
11622
- bluebird@^3.1.1, bluebird@^3.4.1, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2:
11605
+ bluebird@^3.1.1, bluebird@^3.4.1, bluebird@^3.4.6, bluebird@^3.5.5, bluebird@^3.7.2:
11623
11606
  version "3.7.2"
11624
11607
  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
11625
11608
  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -14885,7 +14868,7 @@ deep-is@^0.1.3, deep-is@~0.1.3:
14885
14868
  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
14886
14869
  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
14887
14870
 
14888
- deepmerge@^4.0.0, deepmerge@^4.2.2:
14871
+ deepmerge@^4.2.2:
14889
14872
  version "4.3.1"
14890
14873
  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
14891
14874
  integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
@@ -15208,7 +15191,7 @@ domhandler@^2.3.0:
15208
15191
  dependencies:
15209
15192
  domelementtype "1"
15210
15193
 
15211
- domhandler@^3.0.0, domhandler@^3.3.0:
15194
+ domhandler@^3.3.0:
15212
15195
  version "3.3.0"
15213
15196
  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a"
15214
15197
  integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==
@@ -15252,7 +15235,7 @@ domutils@^1.5.1, domutils@^1.7.0:
15252
15235
  dom-serializer "0"
15253
15236
  domelementtype "1"
15254
15237
 
15255
- domutils@^2.0.0, domutils@^2.4.2, domutils@^2.5.2:
15238
+ domutils@^2.4.2, domutils@^2.5.2:
15256
15239
  version "2.8.0"
15257
15240
  resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
15258
15241
  integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
@@ -16916,11 +16899,6 @@ ember-truth-helpers@3.1.1, "ember-truth-helpers@^2.1.0 || ^3.0.0", ember-truth-h
16916
16899
  dependencies:
16917
16900
  ember-cli-babel "^7.22.1"
16918
16901
 
16919
- emits@^3.0.0:
16920
- version "3.0.0"
16921
- resolved "https://registry.yarnpkg.com/emits/-/emits-3.0.0.tgz#32752bba95e1707b219562384ab9bb8b1fd62f70"
16922
- integrity sha512-WJSCMaN/qjIkzWy5Ayu0MDENFltcu4zTPPnWqdFPOVBtsENVTN+A3d76G61yuiVALsMK+76MejdPrwmccv/wag==
16923
-
16924
16902
  emittery@^0.13.1:
16925
16903
  version "0.13.1"
16926
16904
  resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
@@ -19984,16 +19962,6 @@ htmlparser2@^3.10.1, htmlparser2@^3.9.1:
19984
19962
  inherits "^2.0.1"
19985
19963
  readable-stream "^3.1.1"
19986
19964
 
19987
- htmlparser2@^4.0.0:
19988
- version "4.1.0"
19989
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78"
19990
- integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==
19991
- dependencies:
19992
- domelementtype "^2.0.1"
19993
- domhandler "^3.0.0"
19994
- domutils "^2.0.0"
19995
- entities "^2.0.0"
19996
-
19997
19965
  htmlparser2@^5.0.0:
19998
19966
  version "5.0.1"
19999
19967
  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7"
@@ -20288,13 +20256,6 @@ image-size@1.2.1, image-size@^1.0.0:
20288
20256
  dependencies:
20289
20257
  queue "6.0.2"
20290
20258
 
20291
- image-size@^0.8.1:
20292
- version "0.8.3"
20293
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.8.3.tgz#f0b568857e034f29baffd37013587f2c0cad8b46"
20294
- integrity sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==
20295
- dependencies:
20296
- queue "6.0.1"
20297
-
20298
20259
  immediate@~3.0.5:
20299
20260
  version "3.0.6"
20300
20261
  resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
@@ -24660,11 +24621,6 @@ next-themes@0.4.6:
24660
24621
  resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.4.6.tgz#8d7e92d03b8fea6582892a50a928c9b23502e8b6"
24661
24622
  integrity sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==
24662
24623
 
24663
- next-tick@^1.0.0:
24664
- version "1.1.0"
24665
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
24666
- integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
24667
-
24668
24624
  nice-try@^1.0.4:
24669
24625
  version "1.0.5"
24670
24626
  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -27231,17 +27187,6 @@ probe-image-size@7.2.3:
27231
27187
  needle "^2.5.2"
27232
27188
  stream-parser "~0.3.1"
27233
27189
 
27234
- probe-image-size@^5.0.0:
27235
- version "5.0.0"
27236
- resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-5.0.0.tgz#1b87d20340ab8fcdb4324ec77fbc8a5f53419878"
27237
- integrity sha512-V6uBYw5eBc5UVIE7MUZD6Nxg0RYuGDWLDenEn0B1WC6PcTvn1xdQ6HLDDuznefsiExC6rNrCz7mFRBo0f3Xekg==
27238
- dependencies:
27239
- deepmerge "^4.0.0"
27240
- inherits "^2.0.3"
27241
- next-tick "^1.0.0"
27242
- request "^2.83.0"
27243
- stream-parser "~0.3.1"
27244
-
27245
27190
  proc-log@^3.0.0:
27246
27191
  version "3.0.0"
27247
27192
  resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8"
@@ -27656,13 +27601,6 @@ queue-tick@^1.0.1:
27656
27601
  resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142"
27657
27602
  integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==
27658
27603
 
27659
- queue@6.0.1:
27660
- version "6.0.1"
27661
- resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791"
27662
- integrity sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==
27663
- dependencies:
27664
- inherits "~2.0.3"
27665
-
27666
27604
  queue@6.0.2:
27667
27605
  version "6.0.2"
27668
27606
  resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65"
@@ -28454,24 +28392,7 @@ reqresnext@^1.7.0:
28454
28392
  lodash "^4.17.21"
28455
28393
  setprototypeof "^1.2.0"
28456
28394
 
28457
- request-promise-core@1.1.4:
28458
- version "1.1.4"
28459
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
28460
- integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
28461
- dependencies:
28462
- lodash "^4.17.19"
28463
-
28464
- request-promise@^4.2.4:
28465
- version "4.2.6"
28466
- resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz#7e7e5b9578630e6f598e3813c0f8eb342a27f0a2"
28467
- integrity sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==
28468
- dependencies:
28469
- bluebird "^3.5.0"
28470
- request-promise-core "1.1.4"
28471
- stealthy-require "^1.1.1"
28472
- tough-cookie "^2.3.3"
28473
-
28474
- "request@>=2.76.0 <3.0.0", request@^2.83.0:
28395
+ "request@>=2.76.0 <3.0.0":
28475
28396
  version "2.88.2"
28476
28397
  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
28477
28398
  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -30055,11 +29976,6 @@ std-env@^3.3.3, std-env@^3.5.0:
30055
29976
  resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1"
30056
29977
  integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==
30057
29978
 
30058
- stealthy-require@^1.1.1:
30059
- version "1.1.1"
30060
- resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
30061
- integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
30062
-
30063
29979
  stop-iteration-iterator@^1.0.0:
30064
29980
  version "1.0.0"
30065
29981
  resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
@@ -31294,14 +31210,6 @@ totalist@^3.0.0:
31294
31210
  resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd"
31295
31211
  integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==
31296
31212
 
31297
- tough-cookie@^2.3.3, tough-cookie@~2.5.0:
31298
- version "2.5.0"
31299
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
31300
- integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
31301
- dependencies:
31302
- psl "^1.1.28"
31303
- punycode "^2.1.1"
31304
-
31305
31213
  tough-cookie@^4.0.0, tough-cookie@^4.1.4:
31306
31214
  version "4.1.4"
31307
31215
  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
@@ -31312,6 +31220,14 @@ tough-cookie@^4.0.0, tough-cookie@^4.1.4:
31312
31220
  universalify "^0.2.0"
31313
31221
  url-parse "^1.5.3"
31314
31222
 
31223
+ tough-cookie@~2.5.0:
31224
+ version "2.5.0"
31225
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
31226
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
31227
+ dependencies:
31228
+ psl "^1.1.28"
31229
+ punycode "^2.1.1"
31230
+
31315
31231
  tr46@^2.1.0:
31316
31232
  version "2.1.0"
31317
31233
  resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"
@@ -32190,11 +32106,6 @@ validator@7.2.0:
32190
32106
  resolved "https://registry.yarnpkg.com/validator/-/validator-7.2.0.tgz#a63dcbaba51d4350bf8df20988e0d5a54d711791"
32191
32107
  integrity sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==
32192
32108
 
32193
- validator@^12.0.0:
32194
- version "12.2.0"
32195
- resolved "https://registry.yarnpkg.com/validator/-/validator-12.2.0.tgz#660d47e96267033fd070096c3b1a6f2db4380a0a"
32196
- integrity sha512-jJfE/DW6tIK1Ek8nCfNFqt8Wb3nzMoAbocBF6/Icgg1ZFSBpObdnwVY2jQj6qUqzhx5jc71fpvBWyLGO7Xl+nQ==
32197
-
32198
32109
  value-or-function@^4.0.0:
32199
32110
  version "4.0.0"
32200
32111
  resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-4.0.0.tgz#70836b6a876a010dc3a2b884e7902e9db064378d"
@@ -1,4 +0,0 @@
1
- <svg width="256" height="256" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
2
- <title>amp</title>
3
- <path d="m171.887 116.28-53.696 89.36h-9.728l9.617-58.227-30.2.047a4.854 4.854 0 0 1-4.855-4.855c0-1.152 1.07-3.102 1.07-3.102l53.52-89.254 9.9.043-9.86 58.317 30.413-.043a4.854 4.854 0 0 1 4.855 4.855c0 1.088-.427 2.044-1.033 2.854l.004.004-.007.001zM128 0C57.306 0 0 57.3 0 128s57.306 128 128 128 128-57.306 128-128S198.7 0 128 0z" fill="#0379C4" fill-rule="evenodd"/>
4
- </svg>
@@ -1,30 +0,0 @@
1
- const path = require('path');
2
-
3
- const router = require('./lib/router');
4
- const urlUtils = require('../../../shared/url-utils');
5
-
6
- // Dirty requires
7
- const settingsCache = require('../../../shared/settings-cache');
8
-
9
- function ampRouter(req, res) {
10
- if (settingsCache.get('amp') === true) {
11
- return router.apply(this, arguments);
12
- } else {
13
- // routeKeywords.amp: 'amp'
14
- let redirectUrl = req.originalUrl.replace(/\/amp\//, '/');
15
-
16
- urlUtils.redirect301(res, redirectUrl);
17
- }
18
- }
19
-
20
- module.exports = {
21
- activate: function activate(ghost) {
22
- // routeKeywords.amp: 'amp'
23
- let ampRoute = '*/amp/';
24
-
25
- ghost.routeService.registerRouter(ampRoute, ampRouter);
26
- ghost.helperService.registerDir(path.resolve(__dirname, './lib/helpers'));
27
- // we use the {{ghost_head}} helper, but call it {{amp_ghost_head}}, so it's consistent
28
- ghost.helperService.registerAlias('amp_ghost_head', 'ghost_head');
29
- }
30
- };
@@ -1,32 +0,0 @@
1
- // # Amp Components Helper
2
- // Usage: `{{amp_analytics}}`
3
- //
4
- // Outputs inline scripts used for analytics
5
- const {settingsCache} = require('../../../../services/proxy');
6
- const {SafeString} = require('../../../../services/handlebars');
7
-
8
- function ampComponents() {
9
- let components = [];
10
-
11
- const ampGtagId = settingsCache.get('amp_gtag_id');
12
- if (ampGtagId) {
13
- components.push(`
14
- <amp-analytics type="gtag" data-credentials="include">
15
- <script type="application/json">
16
- {
17
- "vars" : {
18
- "gtag_id": "${ampGtagId}",
19
- "config" : {
20
- "${ampGtagId}": { "groups": "default" }
21
- }
22
- }
23
- }
24
- </script>
25
- </amp-analytics>
26
- `);
27
- }
28
-
29
- return new SafeString(components.join('\n'));
30
- }
31
-
32
- module.exports = ampComponents;
@@ -1,48 +0,0 @@
1
- // # Amp Components Helper
2
- // Usage: `{{amp_components}}`
3
- //
4
- // Reads through the AMP HTML and adds neccessary scripts
5
- // for each extended component
6
- // If more components need to be added, we can add more scripts.
7
- // Here's the list of all supported extended components: https://www.ampproject.org/docs/reference/extended.html
8
- // By default supported AMP HTML tags (no additional script tag necessary):
9
- // amp-img, amp-ad, amp-embed, amp-video and amp-pixel.
10
- // (less) dirty requires
11
- const {settingsCache} = require('../../../../services/proxy');
12
- const {SafeString} = require('../../../../services/handlebars');
13
-
14
- function ampComponents() {
15
- let components = [];
16
- let html = this.post && this.post.html || this.html;
17
-
18
- if (!html) {
19
- return;
20
- }
21
-
22
- if (html.indexOf('.gif') !== -1) {
23
- components.push('<script async custom-element="amp-anim" src="https://cdn.ampproject.org/v0/amp-anim-0.1.js"></script>');
24
- }
25
-
26
- let iframeCount = (html.match(/(<iframe)(.*?\s*?)(<\/iframe>)/gi) || []).length;
27
- let youtubeCount = (html.match(/(<iframe)(.*?\s*?)(youtu.be\/|youtube(-nocookie)?.com\/(v\/|.*u\/\w\/|embed\/|.*v=))(.*?\s*?)(<\/iframe>)/gi) || []).length;
28
-
29
- if (youtubeCount) {
30
- components.push('<script async custom-element="amp-youtube" src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"></script>');
31
- }
32
-
33
- if (iframeCount > youtubeCount) {
34
- components.push('<script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script>');
35
- }
36
-
37
- if (html.indexOf('<audio') !== -1) {
38
- components.push('<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>');
39
- }
40
-
41
- if (settingsCache.get('amp_gtag_id')) {
42
- components.push('<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>');
43
- }
44
-
45
- return new SafeString(components.join('\n'));
46
- }
47
-
48
- module.exports = ampComponents;
@@ -1,214 +0,0 @@
1
- // # Amp Content Helper
2
- // Usage: `{{amp_content}}`
3
- //
4
- // Turns content html into a safestring so that the user doesn't have to
5
- // escape it or tell handlebars to leave it alone with a triple-brace.
6
- //
7
- // Converts normal HTML into AMP HTML with Amperize module and uses a cache to return it from
8
- // there if available. The cacheId is a combination of `updated_at` and the `slug`.
9
- const {DateTime} = require('luxon');
10
- const errors = require('@tryghost/errors');
11
- const logging = require('@tryghost/logging');
12
-
13
- const {SafeString} = require('../../../../services/handlebars');
14
-
15
- const amperizeCache = {};
16
- let allowedAMPTags = [];
17
- let allowedAMPAttributes = {};
18
- let amperize = null;
19
- let ampHTML = '';
20
- let cleanHTML = '';
21
-
22
- allowedAMPTags = ['html', 'body', 'article', 'section', 'nav', 'aside', 'h1', 'h2',
23
- 'h3', 'h4', 'h5', 'h6', 'header', 'footer', 'address', 'p', 'hr',
24
- 'pre', 'blockquote', 'ol', 'ul', 'li', 'dl', 'dt', 'dd', 'figure',
25
- 'figcaption', 'div', 'main', 'a', 'em', 'strong', 'small', 's', 'cite',
26
- 'q', 'dfn', 'abbr', 'data', 'time', 'code', 'var', 'samp', 'kbd', 'sub',
27
- 'sup', 'i', 'b', 'u', 'mark', 'ruby', 'rb', 'rt', 'rtc', 'rp', 'bdi',
28
- 'bdo', 'span', 'br', 'wbr', 'ins', 'del', 'source', 'track', 'svg', 'g',
29
- 'path', 'glyph', 'glyphref', 'marker', 'view', 'circle', 'line', 'polygon',
30
- 'polyline', 'rect', 'text', 'textpath', 'tref', 'tspan', 'clippath',
31
- 'filter', 'lineargradient', 'radialgradient', 'mask', 'pattern', 'vkern',
32
- 'hkern', 'defs', 'stop', 'use', 'foreignobject', 'symbol', 'desc', 'title',
33
- 'table', 'caption', 'colgroup', 'col', 'tbody', 'thead', 'tfoot', 'tr', 'td',
34
- 'th', 'button', 'noscript', 'acronym', 'center', 'dir', 'hgroup', 'listing',
35
- 'multicol', 'nextid', 'nobr', 'spacer', 'strike', 'tt', 'xmp', 'amp-img',
36
- 'amp-video', 'amp-ad', 'amp-embed', 'amp-anim', 'amp-iframe', 'amp-youtube',
37
- 'amp-pixel', 'amp-audio', 'O:P'];
38
-
39
- allowedAMPAttributes = {
40
- '*': ['itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype', 'accesskey', 'class', 'dir', 'draggable',
41
- 'id', 'lang', 'tabindex', 'title', 'translate', 'aria-*', 'role', 'placeholder', 'fallback', 'lightbox',
42
- 'overflow', 'amp-access', 'amp-access-*', 'i-amp-access-id', 'data-*'],
43
- h1: ['align'],
44
- h2: ['align'],
45
- h3: ['align'],
46
- h4: ['align'],
47
- h5: ['align'],
48
- h6: ['align'],
49
- p: ['align'],
50
- blockquote: ['align'],
51
- ol: ['reversed', 'start', 'type'],
52
- li: ['value'],
53
- div: ['align'],
54
- a: ['href', 'hreflang', 'rel', 'role', 'tabindex', 'target', 'download', 'media', 'type', 'border', 'name'],
55
- time: ['datetime'],
56
- bdo: ['dir'],
57
- ins: ['datetime'],
58
- del: ['datetime'],
59
- source: ['src', 'srcset', 'sizes', 'media', 'type', 'kind', 'label', 'srclang'],
60
- track: ['src', 'default', 'kind', 'label', 'srclang'],
61
- svg: ['*'],
62
- g: ['*'],
63
- glyph: ['*'],
64
- glyphref: ['*'],
65
- marker: ['*'],
66
- path: ['*'],
67
- view: ['*'],
68
- circle: ['*'],
69
- line: ['*'],
70
- polygon: ['*'],
71
- polyline: ['*'],
72
- rect: ['*'],
73
- text: ['*'],
74
- textpath: ['*'],
75
- tref: ['*'],
76
- tspan: ['*'],
77
- clippath: ['*'],
78
- filter: ['*'],
79
- hkern: ['*'],
80
- lineargradient: ['*'],
81
- mask: ['*'],
82
- pattern: ['*'],
83
- radialgradient: ['*'],
84
- stop: ['*'],
85
- vkern: ['*'],
86
- defs: ['*'],
87
- symbol: ['*'],
88
- use: ['*'],
89
- foreignobject: ['*'],
90
- desc: ['*'],
91
- title: ['*'],
92
- table: ['sortable', 'align', 'border', 'bgcolor', 'cellpadding', 'cellspacing', 'width'],
93
- colgroup: ['span'],
94
- col: ['span'],
95
- tr: ['align', 'bgcolor', 'height', 'valign'],
96
- td: ['align', 'bgcolor', 'height', 'valign', 'colspan', 'headers', 'rowspan'],
97
- th: ['align', 'bgcolor', 'height', 'valign', 'colspan', 'headers', 'rowspan', 'abbr', 'scope', 'sorted'],
98
- button: ['disabled', 'name', 'role', 'tabindex', 'type', 'value', 'formtarget'],
99
- // built ins
100
- 'amp-img': ['media', 'noloading', 'alt', 'attribution', 'placeholder', 'src', 'srcset', 'width', 'height', 'layout'],
101
- 'amp-pixel': ['src'],
102
- 'amp-video': ['src', 'srcset', 'media', 'noloading', 'width', 'height', 'layout', 'alt', 'attribution',
103
- 'autoplay', 'controls', 'loop', 'muted', 'poster', 'preload'],
104
- 'amp-embed': ['media', 'noloading', 'width', 'height', 'layout', 'type', 'data-*', 'json'],
105
- 'amp-ad': ['media', 'noloading', 'width', 'height', 'layout', 'type', 'data-*', 'json'],
106
- // extended components we support
107
- 'amp-anim': ['media', 'noloading', 'alt', 'attribution', 'placeholder', 'src', 'srcset', 'width', 'height', 'layout'],
108
- 'amp-audio': ['src', 'width', 'height', 'autoplay', 'loop', 'muted', 'controls'],
109
- 'amp-iframe': ['src', 'srcdoc', 'width', 'height', 'layout', 'frameborder', 'allowfullscreen', 'allowtransparency',
110
- 'sandbox', 'referrerpolicy'],
111
- 'amp-youtube': ['src', 'layout', 'frameborder', 'autoplay', 'loop', 'data-videoid', 'data-live-channelid', 'width', 'height']
112
- };
113
-
114
- function getAmperizeHTML(html, post) {
115
- if (!html) {
116
- return;
117
- }
118
-
119
- let Amperize = require('amperize');
120
-
121
- amperize = amperize || new Amperize();
122
-
123
- let cacheDateTime;
124
- let postDateTime;
125
-
126
- if (amperizeCache[post.id]) {
127
- const {updated_at: ampCacheUpdatedAt} = amperizeCache[post.id];
128
- const {updated_at: postUpdatedAt} = post;
129
-
130
- cacheDateTime = DateTime.fromJSDate(new Date(ampCacheUpdatedAt));
131
- postDateTime = DateTime.fromJSDate(new Date(postUpdatedAt));
132
- }
133
-
134
- if (!amperizeCache[post.id] || cacheDateTime.diff(postDateTime).valueOf() < 0) {
135
- return new Promise((resolve) => {
136
- amperize.parse(html, (err, res) => {
137
- if (err) {
138
- if (err.src) {
139
- // This is a valid 500 GhostError because it means the amperize parser is unable to handle some Ghost HTML.
140
- logging.error(new errors.InternalServerError({
141
- message: `AMP HTML couldn't be parsed: ${err.src}`,
142
- code: 'AMP_PARSER_ERROR',
143
- err: err,
144
- context: post.url,
145
- help: 'Please share this error on GitHub or https://forum.ghost.org'
146
- }));
147
- } else {
148
- logging.error(new errors.InternalServerError({err, code: 'AMP_PARSER_ERROR'}));
149
- }
150
-
151
- // save it in cache to prevent multiple calls to Amperize until
152
- // content is updated.
153
- amperizeCache[post.id] = {updated_at: post.updated_at, amp: html};
154
- // return the original html on an error
155
- return resolve(html);
156
- }
157
-
158
- amperizeCache[post.id] = {updated_at: post.updated_at, amp: res};
159
- return resolve(amperizeCache[post.id].amp);
160
- });
161
- });
162
- }
163
-
164
- return Promise.resolve(amperizeCache[post.id].amp);
165
- }
166
-
167
- module.exports = async function amp_content() { // eslint-disable-line camelcase
168
- let sanitizeHtml = require('sanitize-html');
169
- let cheerio = require('cheerio');
170
-
171
- try {
172
- const response = await getAmperizeHTML(this.html, this);
173
- let $ = null;
174
-
175
- // our Amperized HTML
176
- ampHTML = response ?? '';
177
-
178
- // Use cheerio to traverse through HTML and make little clean-ups
179
- $ = cheerio.load(ampHTML);
180
-
181
- // We have to remove source children in video, as source is allowed for audio,
182
- // but causes validation errors in video, because video will be stripped out.
183
- // @TODO: remove this, when Amperize support video transform
184
- $('video').children('source').remove();
185
- $('video').children('track').remove();
186
-
187
- // Case: AMP parsing failed and we returned the regular HTML,
188
- // then we have to remove remaining, invalid HTML tags.
189
- $('audio').children('source').remove();
190
- $('audio').children('track').remove();
191
-
192
- $('amp-youtube').attr('layout', 'responsive');
193
- $('amp-youtube').attr('height', '350');
194
- $('amp-youtube').attr('width', '600');
195
-
196
- ampHTML = $.html();
197
-
198
- // @TODO: remove this, when Amperize supports HTML sanitizing
199
- cleanHTML = sanitizeHtml(ampHTML, {
200
- allowedTags: allowedAMPTags,
201
- allowedAttributes: allowedAMPAttributes,
202
- selfClosing: ['source', 'track', 'br']
203
- });
204
-
205
- return new SafeString(cleanHTML);
206
- } catch (error) {
207
- logging.error(error);
208
-
209
- // Return an empty safe string
210
- return new SafeString('');
211
- }
212
- };
213
-
214
- module.exports.async = true;
@@ -1,8 +0,0 @@
1
- const {SafeString, escapeExpression} = require('../../../../services/handlebars');
2
-
3
- module.exports = function amp_style(options) { // eslint-disable-line camelcase
4
- if (options.data.site.accent_color) {
5
- const accentColor = escapeExpression(options.data.site.accent_color);
6
- return new SafeString(`:root {--ghost-accent-color: ${accentColor};}`);
7
- }
8
- };