ghost 4.37.0 → 4.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.c8rc.json +1 -1
  2. package/README.md +26 -18
  3. package/content/themes/casper/LICENSE +1 -1
  4. package/content/themes/casper/README.md +1 -1
  5. package/content/themes/casper/assets/built/global.css +1 -1
  6. package/content/themes/casper/assets/built/global.css.map +1 -1
  7. package/content/themes/casper/assets/built/screen.css +1 -1
  8. package/content/themes/casper/assets/built/screen.css.map +1 -1
  9. package/content/themes/casper/assets/css/global.css +14 -6
  10. package/content/themes/casper/assets/css/screen.css +9 -1
  11. package/content/themes/casper/package.json +2 -2
  12. package/content/themes/casper/partials/post-card.hbs +1 -1
  13. package/content/themes/casper/post.hbs +18 -19
  14. package/content/themes/casper/yarn.lock +186 -217
  15. package/core/built/assets/{chunk.3.4906cf0b01d6d8e33374.js → chunk.3.6e2ed2d00856e12bd81a.js} +19 -19
  16. package/core/built/assets/ghost-dark-498ff8339a89bb68c3f78f59bee4146e.css +1 -0
  17. package/core/built/assets/ghost.min-77b93478f83b0def6ddc5a4f23ce963e.css +1 -0
  18. package/core/built/assets/{ghost.min-c1938f6ee696bf08bd6bf93cac341ea2.js → ghost.min-e6559d901897066aa6a6d4145e3728ed.js} +466 -413
  19. package/core/built/assets/icons/{event-changed-subscription.svg → event-subscriptions.svg} +0 -1
  20. package/core/built/assets/icons/eye.svg +4 -1
  21. package/core/built/assets/icons/member-add.svg +3 -0
  22. package/core/built/assets/icons/member.svg +3 -0
  23. package/core/built/assets/icons/pin.svg +4 -1
  24. package/core/built/assets/{vendor.min-6dc30be68238b5c55df0cdc1f2dc8b8d.js → vendor.min-c39476bced9adb98ee2b292d01c7a8f4.js} +2303 -1372
  25. package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
  26. package/core/frontend/apps/private-blogging/lib/views/private.hbs +9 -10
  27. package/core/frontend/helpers/get.js +4 -0
  28. package/core/frontend/helpers/match.js +12 -0
  29. package/core/frontend/helpers/prev_post.js +11 -1
  30. package/core/frontend/helpers/tiers.js +59 -0
  31. package/core/frontend/helpers/tpl/content-cta.hbs +1 -1
  32. package/core/frontend/public/ghost.css +205 -143
  33. package/core/frontend/services/routing/router-manager.js +1 -1
  34. package/core/frontend/views/unsubscribe.hbs +28 -33
  35. package/core/frontend/web/middleware/error-handler.js +2 -2
  36. package/core/frontend/web/site.js +10 -0
  37. package/core/server/api/canary/authentication.js +7 -0
  38. package/core/server/api/canary/index.js +4 -0
  39. package/core/server/api/canary/members.js +9 -2
  40. package/core/server/api/canary/products.js +3 -6
  41. package/core/server/api/canary/tiers-public.js +34 -0
  42. package/core/server/api/canary/tiers.js +6 -7
  43. package/core/server/api/canary/utils/serializers/input/pages.js +1 -1
  44. package/core/server/api/canary/utils/serializers/input/posts.js +1 -1
  45. package/core/server/api/canary/utils/serializers/output/email-posts.js +7 -1
  46. package/core/server/api/canary/utils/serializers/output/pages.js +9 -2
  47. package/core/server/api/canary/utils/serializers/output/posts.js +8 -2
  48. package/core/server/api/canary/utils/serializers/output/preview.js +7 -1
  49. package/core/server/api/canary/utils/serializers/output/products.js +3 -1
  50. package/core/server/api/canary/utils/serializers/output/tiers.js +4 -2
  51. package/core/server/api/canary/utils/serializers/output/utils/mapper.js +17 -7
  52. package/core/server/api/shared/serializers/handle.js +2 -2
  53. package/core/server/api/v2/utils/serializers/input/pages.js +1 -1
  54. package/core/server/api/v2/utils/serializers/input/posts.js +1 -1
  55. package/core/server/api/v3/utils/serializers/input/pages.js +1 -1
  56. package/core/server/api/v3/utils/serializers/input/posts.js +1 -1
  57. package/core/server/data/db/connection.js +3 -2
  58. package/core/server/data/importer/import-manager.js +152 -113
  59. package/core/server/data/migrations/versions/3.29/01-remove-duplicate-subscriptions.js +2 -1
  60. package/core/server/data/migrations/versions/3.29/02-remove-duplicate-customers.js +2 -1
  61. package/core/server/data/migrations/versions/3.29/03-remove-orphaned-customers.js +2 -1
  62. package/core/server/data/migrations/versions/3.29/04-remove-orphaned-subscriptions.js +2 -1
  63. package/core/server/data/migrations/versions/3.29/05-add-member-constraints.js +3 -2
  64. package/core/server/data/migrations/versions/3.39/06-add-email-recipient-index.js +4 -3
  65. package/core/server/data/migrations/versions/4.0/14-remove-orphaned-stripe-records.js +2 -1
  66. package/core/server/data/migrations/versions/4.0/26-add-cascade-on-delete.js +2 -1
  67. package/core/server/data/migrations/versions/4.0/29-fix-foreign-key-for-members-stripe-customers-subscriptions.js +2 -1
  68. package/core/server/data/migrations/versions/4.1/02-add-unique-constraint-for-member-stripe-tables.js +2 -1
  69. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +3 -2
  70. package/core/server/data/migrations/versions/4.33/2022-01-14-11-51-add-default-free-tier.js +3 -0
  71. package/core/server/data/migrations/versions/4.33/2022-01-18-09-07-remove-duplicate-offer-redemptions.js +2 -2
  72. package/core/server/data/migrations/versions/4.35/2022-02-01-11-48-update-email-recipient-filter-column-type.js +2 -1
  73. package/core/server/data/migrations/versions/4.35/2022-02-01-12-03-update-recipient-filter-column-type.js +2 -1
  74. package/core/server/data/migrations/versions/4.37/2022-02-21-09-53-backfill-members-last-seen-at-column.js +3 -2
  75. package/core/server/data/migrations/versions/4.38/2022-03-01-08-46-add-visibility-to-tiers.js +11 -0
  76. package/core/server/data/migrations/versions/4.38/2022-03-03-16-12-add-visibility-to-tiers.js +8 -0
  77. package/core/server/data/migrations/versions/4.38/2022-03-03-16-17-drop-tiers-visible-column.js +7 -0
  78. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-free-products-visibility-column.js +66 -0
  79. package/core/server/data/migrations/versions/4.39/2022-03-07-10-57-update-products-visibility-column.js +36 -0
  80. package/core/server/data/schema/clients/index.js +1 -1
  81. package/core/server/data/schema/clients/mysql.js +4 -4
  82. package/core/server/data/schema/commands.js +42 -50
  83. package/core/server/data/schema/default-settings/default-settings.json +2 -2
  84. package/core/server/data/schema/fixtures/fixtures.json +18 -161
  85. package/core/server/data/schema/schema.js +7 -0
  86. package/core/server/frontend/ghost.min.css +1 -1
  87. package/core/server/lib/image/image-size.js +12 -4
  88. package/core/server/models/base/plugins/generate-slug.js +13 -1
  89. package/core/server/models/base/plugins/raw-knex.js +1 -1
  90. package/core/server/models/post.js +16 -6
  91. package/core/server/models/product.js +2 -1
  92. package/core/server/models/user.js +1 -1
  93. package/core/server/services/auth/api-key/admin.js +15 -6
  94. package/core/server/services/auth/setup.js +34 -13
  95. package/core/server/services/email-analytics/lib/event-processor.js +18 -1
  96. package/core/server/services/mega/mega.js +4 -4
  97. package/core/server/services/mega/template.js +1 -1
  98. package/core/server/services/members/content-gating.js +1 -1
  99. package/core/server/services/members/middleware.js +4 -0
  100. package/core/server/services/members/service.js +13 -1
  101. package/core/server/services/posts/posts-service.js +1 -1
  102. package/core/server/services/url/UrlGenerator.js +1 -1
  103. package/core/server/services/webhooks/webhooks-service.js +2 -0
  104. package/core/server/views/maintenance.html +2 -2
  105. package/core/server/web/admin/views/default-prod.html +4 -4
  106. package/core/server/web/admin/views/default.html +4 -4
  107. package/core/server/web/api/app.js +3 -0
  108. package/core/server/web/api/canary/admin/middleware.js +2 -0
  109. package/core/server/web/api/canary/content/routes.js +1 -0
  110. package/core/server/web/members/app.js +1 -1
  111. package/core/server/web/parent/backend.js +2 -1
  112. package/core/server/web/shared/middleware/uncapitalise.js +3 -2
  113. package/core/shared/config/defaults.json +2 -2
  114. package/core/shared/config/utils.js +5 -1
  115. package/core/shared/labs.js +8 -9
  116. package/core/shared/url-utils.js +4 -1
  117. package/package.json +56 -52
  118. package/yarn.lock +809 -607
  119. package/core/built/assets/ghost-dark-d54723f7267e66fa2595f897076e86c2.css +0 -1
  120. package/core/built/assets/ghost.min-02a5f8954bd85fe28817b8c8b111b8aa.css +0 -1
  121. package/core/built/assets/icons/event-started-subscription.svg +0 -6
  122. package/core/built/assets/icons/locked-email-back.svg +0 -1
  123. package/core/built/assets/icons/locked-email-front.svg +0 -1
  124. package/core/built/assets/icons/locked-email-lock.svg +0 -1
  125. package/core/built/assets/img/ghost-logo-de2acf283f53ba1fd1149928faeaaa74.png +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "4.37.0",
3
+ "version": "4.39.0",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -29,7 +29,8 @@
29
29
  "test": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js --timeout=60000",
30
30
  "test:all": "yarn test:unit && yarn test:integration && yarn test:e2e && yarn lint",
31
31
  "test:debug": "DEBUG=ghost:test* yarn test",
32
- "test:unit": "c8 mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/unit' --timeout=2000",
32
+ "test:unit": "c8 yarn test:unit:base",
33
+ "test:unit:base": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/unit' --timeout=2000",
33
34
  "test:integration": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/integration' --timeout=5000",
34
35
  "test:e2e": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/e2e-api' './test/e2e-frontend' './test/e2e-server' --timeout=10000",
35
36
  "test:regression": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000",
@@ -54,66 +55,69 @@
54
55
  "cli": "^1.17.0"
55
56
  },
56
57
  "dependencies": {
57
- "@nexes/nql": "0.6.0",
58
- "@sentry/node": "6.18.0",
59
- "@tryghost/adapter-manager": "0.2.27",
60
- "@tryghost/admin-api-schema": "2.10.0",
61
- "@tryghost/bookshelf-plugins": "0.3.9",
62
- "@tryghost/bootstrap-socket": "0.2.16",
63
- "@tryghost/color-utils": "0.1.7",
64
- "@tryghost/config-url-helpers": "0.1.4",
65
- "@tryghost/constants": "1.0.1",
58
+ "@sentry/node": "6.18.2",
59
+ "@tryghost/adapter-manager": "0.2.28",
60
+ "@tryghost/admin-api-schema": "2.11.0",
61
+ "@tryghost/bookshelf-plugins": "0.3.11",
62
+ "@tryghost/bootstrap-socket": "0.2.17",
63
+ "@tryghost/color-utils": "0.1.10",
64
+ "@tryghost/config-url-helpers": "0.1.5",
65
+ "@tryghost/constants": "1.0.2",
66
66
  "@tryghost/custom-theme-settings-service": "0.3.1",
67
- "@tryghost/database-info": "0.1.0",
67
+ "@tryghost/database-info": "0.2.4",
68
68
  "@tryghost/debug": "0.1.13",
69
+ "@tryghost/domain-events": "0.1.8",
69
70
  "@tryghost/email-analytics-provider-mailgun": "1.0.7",
70
71
  "@tryghost/email-analytics-service": "1.0.5",
71
- "@tryghost/errors": "1.2.3",
72
- "@tryghost/express-dynamic-redirects": "0.2.5",
73
- "@tryghost/helpers": "1.1.56",
74
- "@tryghost/image-transform": "1.0.27",
75
- "@tryghost/job-manager": "0.8.19",
72
+ "@tryghost/errors": "1.2.5",
73
+ "@tryghost/express-dynamic-redirects": "0.2.6",
74
+ "@tryghost/helpers": "1.1.59",
75
+ "@tryghost/image-transform": "1.0.28",
76
+ "@tryghost/job-manager": "0.8.20",
76
77
  "@tryghost/kg-card-factory": "3.1.2",
77
78
  "@tryghost/kg-default-atoms": "3.1.1",
78
79
  "@tryghost/kg-default-cards": "5.16.1",
79
80
  "@tryghost/kg-markdown-html-renderer": "5.1.4",
80
81
  "@tryghost/kg-mobiledoc-html-renderer": "5.3.4",
81
- "@tryghost/limit-service": "1.0.9",
82
+ "@tryghost/limit-service": "1.0.10",
82
83
  "@tryghost/logging": "2.0.4",
83
- "@tryghost/magic-link": "1.0.19",
84
- "@tryghost/members-api": "5.0.3",
85
- "@tryghost/members-importer": "0.5.2",
86
- "@tryghost/members-offers": "0.10.7",
87
- "@tryghost/members-ssr": "1.0.21",
88
- "@tryghost/members-stripe-service": "0.8.3",
89
- "@tryghost/metrics": "1.0.5",
90
- "@tryghost/minifier": "0.1.10",
91
- "@tryghost/mw-error-handler": "0.1.2",
92
- "@tryghost/mw-session-from-token": "0.1.27",
93
- "@tryghost/nodemailer": "0.3.13",
94
- "@tryghost/package-json": "1.0.15",
95
- "@tryghost/promise": "0.1.14",
96
- "@tryghost/request": "0.1.15",
97
- "@tryghost/root-utils": "0.3.10",
98
- "@tryghost/security": "0.2.14",
99
- "@tryghost/session-service": "0.1.37",
100
- "@tryghost/settings-path-manager": "0.1.3",
101
- "@tryghost/social-urls": "0.1.28",
102
- "@tryghost/string": "0.1.22",
84
+ "@tryghost/magic-link": "1.0.20",
85
+ "@tryghost/member-events": "0.4.0",
86
+ "@tryghost/members-api": "5.1.1",
87
+ "@tryghost/members-events-service": "0.3.1",
88
+ "@tryghost/members-importer": "0.5.3",
89
+ "@tryghost/members-offers": "0.10.8",
90
+ "@tryghost/members-ssr": "1.0.22",
91
+ "@tryghost/members-stripe-service": "0.9.0",
92
+ "@tryghost/metrics": "1.0.6",
93
+ "@tryghost/minifier": "0.1.11",
94
+ "@tryghost/mw-error-handler": "0.1.4",
95
+ "@tryghost/mw-session-from-token": "0.1.28",
96
+ "@tryghost/nodemailer": "0.3.14",
97
+ "@tryghost/nql": "0.9.0",
98
+ "@tryghost/package-json": "1.0.16",
99
+ "@tryghost/promise": "0.1.15",
100
+ "@tryghost/request": "0.1.17",
101
+ "@tryghost/root-utils": "0.3.11",
102
+ "@tryghost/security": "0.2.15",
103
+ "@tryghost/session-service": "0.1.38",
104
+ "@tryghost/settings-path-manager": "0.1.4",
105
+ "@tryghost/social-urls": "0.1.29",
106
+ "@tryghost/string": "0.1.23",
103
107
  "@tryghost/tpl": "0.1.12",
104
108
  "@tryghost/update-check-service": "0.3.1",
105
- "@tryghost/url-utils": "2.0.5",
106
- "@tryghost/validator": "0.1.13",
107
- "@tryghost/verification-trigger": "0.1.4",
109
+ "@tryghost/url-utils": "2.0.8",
110
+ "@tryghost/validator": "0.1.15",
111
+ "@tryghost/verification-trigger": "0.1.5",
108
112
  "@tryghost/version": "0.1.11",
109
- "@tryghost/vhost-middleware": "1.0.21",
110
- "@tryghost/zip": "1.1.19",
113
+ "@tryghost/vhost-middleware": "1.0.22",
114
+ "@tryghost/zip": "1.1.20",
111
115
  "amperize": "0.6.1",
112
116
  "analytics-node": "6.0.0",
113
117
  "bluebird": "3.7.2",
114
118
  "body-parser": "1.19.2",
115
119
  "bookshelf": "1.2.0",
116
- "bookshelf-relations": "2.3.0",
120
+ "bookshelf-relations": "2.4.0",
117
121
  "brute-knex": "4.0.1",
118
122
  "bson-objectid": "2.0.2",
119
123
  "bthreads": "0.5.1",
@@ -145,7 +149,7 @@
145
149
  "juice": "8.0.0",
146
150
  "keypair": "1.0.4",
147
151
  "knex": "0.21.21",
148
- "knex-migrator": "4.1.3",
152
+ "knex-migrator": "4.2.2",
149
153
  "lodash": "4.17.21",
150
154
  "luxon": "2.3.1",
151
155
  "mailgun-js": "0.22.0",
@@ -161,14 +165,14 @@
161
165
  "moment": "2.24.0",
162
166
  "moment-timezone": "0.5.23",
163
167
  "multer": "1.4.4",
164
- "mysql": "2.18.1",
168
+ "mysql2": "2.3.3",
165
169
  "nconf": "0.11.3",
166
170
  "node-jose": "2.1.0",
167
171
  "oembed-parser": "1.4.9",
168
172
  "passport": "0.5.2",
169
173
  "passport-google-oauth": "2.0.0",
170
174
  "path-match": "1.2.4",
171
- "probe-image-size": "5.0.0",
175
+ "probe-image-size": "7.2.3",
172
176
  "rss": "1.2.2",
173
177
  "sanitize-html": "2.7.0",
174
178
  "semver": "7.3.5",
@@ -183,12 +187,12 @@
183
187
  },
184
188
  "devDependencies": {
185
189
  "@lodder/grunt-postcss": "3.1.1",
186
- "@playwright/test": "1.19.1",
187
- "@tryghost/express-test": "0.6.0",
190
+ "@playwright/test": "1.19.2",
191
+ "@tryghost/express-test": "0.6.1",
188
192
  "c8": "7.11.0",
189
193
  "coffeescript": "2.6.1",
190
- "cssnano": "5.0.17",
191
- "eslint": "8.9.0",
194
+ "cssnano": "5.1.2",
195
+ "eslint": "8.10.0",
192
196
  "eslint-plugin-ghost": "2.13.0",
193
197
  "grunt": "1.4.1",
194
198
  "grunt-bg-shell": "2.3.3",
@@ -207,7 +211,7 @@
207
211
  "mock-knex": "0.4.10",
208
212
  "nock": "13.2.4",
209
213
  "papaparse": "5.3.1",
210
- "postcss": "8.4.6",
214
+ "postcss": "8.4.8",
211
215
  "rewire": "6.0.0",
212
216
  "should": "13.2.3",
213
217
  "sinon": "13.0.1",