ghost 5.4.0 → 5.6.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.
- package/PRIVACY.md +3 -2
- package/components/tryghost-adapter-manager-0.0.0.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-0.0.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-0.0.0.tgz +0 -0
- package/components/tryghost-constants-0.0.0.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-0.0.0.tgz +0 -0
- package/components/tryghost-domain-events-0.0.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-0.0.0.tgz +0 -0
- package/components/tryghost-email-analytics-service-0.0.0.tgz +0 -0
- package/components/tryghost-email-content-generator-0.0.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-0.0.0.tgz +0 -0
- package/components/tryghost-extract-api-key-0.0.0.tgz +0 -0
- package/components/tryghost-job-manager-0.0.0.tgz +0 -0
- package/components/tryghost-magic-link-0.0.0.tgz +0 -0
- package/components/tryghost-member-analytics-service-0.0.0.tgz +0 -0
- package/components/tryghost-member-events-0.0.0.tgz +0 -0
- package/components/tryghost-members-analytics-ingress-0.0.0.tgz +0 -0
- package/components/tryghost-members-api-0.0.0.tgz +0 -0
- package/components/tryghost-members-csv-0.0.0.tgz +0 -0
- package/components/tryghost-members-events-service-0.0.0.tgz +0 -0
- package/components/tryghost-members-importer-0.0.0.tgz +0 -0
- package/components/tryghost-members-offers-0.0.0.tgz +0 -0
- package/components/tryghost-members-payments-0.0.0.tgz +0 -0
- package/components/tryghost-members-ssr-0.0.0.tgz +0 -0
- package/components/tryghost-members-stripe-service-0.0.0.tgz +0 -0
- package/components/tryghost-minifier-0.0.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-0.0.0.tgz +0 -0
- package/components/tryghost-mw-error-handler-0.0.0.tgz +0 -0
- package/components/tryghost-mw-session-from-token-0.0.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-0.0.0.tgz +0 -0
- package/components/tryghost-mw-vhost-0.0.0.tgz +0 -0
- package/components/tryghost-package-json-0.0.0.tgz +0 -0
- package/components/tryghost-security-0.0.0.tgz +0 -0
- package/components/tryghost-session-service-0.0.0.tgz +0 -0
- package/components/tryghost-settings-path-manager-0.0.0.tgz +0 -0
- package/components/tryghost-update-check-service-0.0.0.tgz +0 -0
- package/components/tryghost-verification-trigger-0.0.0.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-0.0.0.tgz +0 -0
- package/content/themes/casper/assets/built/global.css +1 -1
- package/content/themes/casper/assets/built/global.css.map +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/built/screen.css.map +1 -1
- package/content/themes/casper/assets/css/screen.css +9 -1
- package/content/themes/casper/gulpfile.js +1 -1
- package/content/themes/casper/package.json +9 -9
- package/content/themes/casper/yarn.lock +1154 -1249
- package/core/boot.js +6 -1
- package/core/built/assets/{chunk.3.dc389a0f93cb5fabd695.js → chunk.3.33097bb5eb150719bdd2.js} +19 -19
- package/core/built/assets/fonts/Inter.ttf +0 -0
- package/core/built/assets/ghost-dark-1bdd57aba1fa4a23388121740454dab2.css +1 -0
- package/core/built/assets/{ghost.min-36b64813b14c45075770658269d4b478.js → ghost.min-31bd482d1bcfe706448bc6f401481a28.js} +3001 -2874
- package/core/built/assets/ghost.min-b0576e0e36343533e70992f3e5bb02bb.css +1 -0
- package/core/built/assets/icons/event-comment.svg +3 -0
- package/core/built/assets/{vendor.min-be0129c9c6897c9f10425e2402881d77.js → vendor.min-3dd40d3052381526f38fd290d13baa47.js} +2394 -924
- package/core/frontend/helpers/comments.js +39 -14
- package/core/frontend/helpers/ghost_head.js +22 -4
- package/core/frontend/utils/frontend-apps.js +33 -0
- package/core/server/api/endpoints/{comments-comments.js → comments-members.js} +24 -43
- package/core/server/api/endpoints/index.js +2 -6
- package/core/server/api/endpoints/utils/serializers/output/config.js +2 -1
- package/core/server/api/endpoints/utils/serializers/output/mappers/activity-feed-events.js +17 -0
- package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +18 -0
- package/core/server/api/endpoints/utils/serializers/output/mappers/index.js +1 -0
- package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +11 -0
- package/core/server/api/endpoints/utils/serializers/output/members.js +12 -1
- package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +4 -0
- package/core/server/data/exporter/table-lists.js +2 -1
- package/core/server/data/migrations/versions/5.3/2022-07-06-09-17-add-ghost-explore-integration.js +0 -1
- package/core/server/data/migrations/versions/5.3/2022-07-06-09-26-add-ghost-explore-integration-api-key.js +0 -1
- package/core/server/data/migrations/versions/5.5/2022-07-18-14-29-add-comment-reporting-permissions.js +10 -0
- package/core/server/data/migrations/versions/5.5/2022-07-18-14-31-drop-reports-reason.js +3 -0
- package/core/server/data/migrations/versions/5.5/2022-07-18-14-32-drop-nullable-member-id-from-likes.js +4 -0
- package/core/server/data/migrations/versions/5.5/2022-07-18-14-33-fix-comments-on-delete-foreign-keys.js +119 -0
- package/core/server/data/migrations/versions/5.5/2022-07-21-08-56-add-jobs-table.js +11 -0
- package/core/server/data/migrations/versions/5.6/2022-07-27-13-40-change-explore-type.js +24 -0
- package/core/server/data/schema/commands.js +7 -2
- package/core/server/data/schema/fixtures/fixtures.json +6 -1
- package/core/server/data/schema/schema.js +12 -4
- package/core/server/ghost-server.js +0 -22
- package/core/server/models/comment-report.js +34 -0
- package/core/server/models/comment.js +8 -7
- package/core/server/models/job.js +9 -0
- package/core/server/services/bulk-email/bulk-email-processor.js +6 -0
- package/core/server/services/comments/controller.js +82 -0
- package/core/server/services/comments/email-templates/new-comment-reply.hbs +2 -2
- package/core/server/services/comments/email-templates/new-comment-reply.txt.js +7 -8
- package/core/server/services/comments/email-templates/new-comment.hbs +2 -2
- package/core/server/services/comments/email-templates/new-comment.txt.js +7 -6
- package/core/server/services/comments/email-templates/report.hbs +199 -0
- package/core/server/services/comments/email-templates/report.txt.js +16 -0
- package/core/server/services/comments/emails.js +57 -1
- package/core/server/services/comments/index.js +6 -1
- package/core/server/services/comments/service.js +291 -9
- package/core/server/services/jobs/job-service.js +24 -1
- package/core/server/services/mail/GhostMailer.js +1 -0
- package/core/server/services/mega/email-preview.js +5 -1
- package/core/server/services/mega/mega.js +2 -4
- package/core/server/services/mega/post-email-serializer.js +97 -2
- package/core/server/services/mega/segment-parser.js +10 -1
- package/core/server/services/members/api.js +2 -1
- package/core/server/services/members/service.js +9 -4
- package/core/server/services/public-config/config.js +2 -1
- package/core/server/services/settings/settings-bread-service.js +1 -1
- package/core/server/services/stripe/service.js +9 -1
- package/core/server/web/admin/views/default-prod.html +4 -4
- package/core/server/web/admin/views/default.html +4 -4
- package/core/server/web/api/testmode/jobs/graceful-job.js +2 -2
- package/core/server/web/api/testmode/routes.js +14 -0
- package/core/server/web/comments/routes.js +10 -8
- package/core/shared/config/defaults.json +12 -7
- package/core/shared/config/env/config.testing.json +3 -2
- package/core/shared/labs.js +3 -1
- package/package.json +92 -59
- package/yarn.lock +1821 -2011
- package/core/built/assets/ghost-dark-739c1f5546bd048eeeb253965ef36712.css +0 -1
- package/core/built/assets/ghost.min-5211776b9497f36fac8c9e5f2584cbcc.css +0 -1
|
@@ -189,7 +189,8 @@ function createApiInstance(config) {
|
|
|
189
189
|
StripeProduct: models.StripeProduct,
|
|
190
190
|
StripePrice: models.StripePrice,
|
|
191
191
|
Product: models.Product,
|
|
192
|
-
Settings: models.Settings
|
|
192
|
+
Settings: models.Settings,
|
|
193
|
+
Comment: models.Comment
|
|
193
194
|
},
|
|
194
195
|
stripeAPIService: stripeService.api,
|
|
195
196
|
offersAPI: offersService.api,
|
|
@@ -148,10 +148,15 @@ module.exports = {
|
|
|
148
148
|
}
|
|
149
149
|
})();
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
151
|
+
const membersMigrationJobName = 'members-migrations';
|
|
152
|
+
if (!(await jobsService.hasExecutedSuccessfully(membersMigrationJobName))) {
|
|
153
|
+
jobsService.addOneOffJob({
|
|
154
|
+
name: membersMigrationJobName,
|
|
155
|
+
offloaded: false,
|
|
156
|
+
job: stripeService.migrations.execute.bind(stripeService.migrations)
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
await jobsService.awaitCompletion(membersMigrationJobName);
|
|
155
160
|
}
|
|
156
161
|
},
|
|
157
162
|
contentGating: require('./content-gating'),
|
|
@@ -18,7 +18,8 @@ module.exports = function getConfigProperties() {
|
|
|
18
18
|
mailgunIsConfigured: !!(config.get('bulkEmail') && config.get('bulkEmail').mailgun),
|
|
19
19
|
emailAnalytics: config.get('emailAnalytics'),
|
|
20
20
|
hostSettings: config.get('hostSettings'),
|
|
21
|
-
tenor: config.get('tenor')
|
|
21
|
+
tenor: config.get('tenor'),
|
|
22
|
+
editor: config.get('editor')
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
const billingUrl = config.get('hostSettings:billing:enabled') ? config.get('hostSettings:billing:url') : '';
|
|
@@ -297,7 +297,7 @@ class SettingsBREADService {
|
|
|
297
297
|
if (EMAIL_KEYS.includes(setting.key)) {
|
|
298
298
|
const email = setting.value;
|
|
299
299
|
const key = setting.key;
|
|
300
|
-
const hasChanged = getSetting(setting) !== email;
|
|
300
|
+
const hasChanged = getSetting(setting).value !== email;
|
|
301
301
|
|
|
302
302
|
if (await this.requiresEmailVerification({email, hasChanged})) {
|
|
303
303
|
emailsToVerify.push({email, key});
|
|
@@ -25,7 +25,15 @@ const debouncedConfigureApi = _.debounce(() => {
|
|
|
25
25
|
|
|
26
26
|
module.exports = new StripeService({
|
|
27
27
|
membersService,
|
|
28
|
-
models: _.pick(models, [
|
|
28
|
+
models: _.pick(models, [
|
|
29
|
+
'Product',
|
|
30
|
+
'StripePrice',
|
|
31
|
+
'StripeCustomerSubscription',
|
|
32
|
+
'StripeProduct',
|
|
33
|
+
'MemberStripeCustomer',
|
|
34
|
+
'Offer',
|
|
35
|
+
'Settings'
|
|
36
|
+
]),
|
|
29
37
|
StripeWebhook: {
|
|
30
38
|
async get() {
|
|
31
39
|
return {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<title>Ghost Admin</title>
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.
|
|
11
|
+
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.6%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22moment%22%3A%7B%22includeTimezone%22%3A%22all%22%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%7D" />
|
|
12
12
|
|
|
13
13
|
<meta name="HandheldFriendly" content="True" />
|
|
14
14
|
<meta name="MobileOptimized" content="320" />
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
<link rel="stylesheet" href="assets/vendor.min-4a6661c574707ceca220aa2e76558995.css">
|
|
41
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
41
|
+
<link rel="stylesheet" href="assets/ghost.min-b0576e0e36343533e70992f3e5bb02bb.css" title="light">
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
<div id="ember-basic-dropdown-wormhole"></div>
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
<script src="assets/vendor.min-
|
|
60
|
-
<script src="assets/ghost.min-
|
|
59
|
+
<script src="assets/vendor.min-3dd40d3052381526f38fd290d13baa47.js"></script>
|
|
60
|
+
<script src="assets/ghost.min-31bd482d1bcfe706448bc6f401481a28.js"></script>
|
|
61
61
|
|
|
62
62
|
</body>
|
|
63
63
|
</html>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<title>Ghost Admin</title>
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.
|
|
11
|
+
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.6%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22moment%22%3A%7B%22includeTimezone%22%3A%22all%22%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%7D" />
|
|
12
12
|
|
|
13
13
|
<meta name="HandheldFriendly" content="True" />
|
|
14
14
|
<meta name="MobileOptimized" content="320" />
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
<link rel="stylesheet" href="assets/vendor.min-4a6661c574707ceca220aa2e76558995.css">
|
|
41
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
41
|
+
<link rel="stylesheet" href="assets/ghost.min-b0576e0e36343533e70992f3e5bb02bb.css" title="light">
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
<div id="ember-basic-dropdown-wormhole"></div>
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
<script src="assets/vendor.min-
|
|
60
|
-
<script src="assets/ghost.min-
|
|
59
|
+
<script src="assets/vendor.min-3dd40d3052381526f38fd290d13baa47.js"></script>
|
|
60
|
+
<script src="assets/ghost.min-31bd482d1bcfe706448bc6f401481a28.js"></script>
|
|
61
61
|
|
|
62
62
|
</body>
|
|
63
63
|
</html>
|
|
@@ -37,7 +37,7 @@ const internalContext = {context: {internal: true}};
|
|
|
37
37
|
|
|
38
38
|
if (shutdown) {
|
|
39
39
|
postParentPortMessage(`Job shutting down gracefully`);
|
|
40
|
-
|
|
40
|
+
parentPort.postMessage('done');
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
postParentPortMessage(`Fetching posts`);
|
|
@@ -46,5 +46,5 @@ const internalContext = {context: {internal: true}};
|
|
|
46
46
|
postParentPortMessage(`Found ${posts.data.length} posts. First one: ${posts.data[0].toJSON().slug}`);
|
|
47
47
|
postParentPortMessage('Graceful job has completed!');
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
parentPort.postMessage('done');
|
|
50
50
|
})();
|
|
@@ -44,6 +44,20 @@ module.exports = function testRoutes() {
|
|
|
44
44
|
res.sendStatus(202);
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
+
router.get('/oneoff/:name', (req, res) => {
|
|
48
|
+
logging.info('Create Slow Job with timeout of', req.params.name);
|
|
49
|
+
|
|
50
|
+
const options = {};
|
|
51
|
+
|
|
52
|
+
options.solo = true;
|
|
53
|
+
options.name = req.params.name;
|
|
54
|
+
options.job = path.resolve(__dirname, 'jobs', `${options.name}.js`);
|
|
55
|
+
|
|
56
|
+
jobsService.addOneOffJob(options);
|
|
57
|
+
|
|
58
|
+
res.sendStatus(202);
|
|
59
|
+
});
|
|
60
|
+
|
|
47
61
|
router.get('/schedule/:schedule/:name*?', (req, res) => {
|
|
48
62
|
if (!req.params.schedule) {
|
|
49
63
|
return res.sendStatus(400, 'schedule parameter cannot be mepty');
|
|
@@ -13,16 +13,18 @@ module.exports = function apiRoutes() {
|
|
|
13
13
|
// Global handling for member session, ensures a member is logged in to the frontend
|
|
14
14
|
router.use(membersService.middleware.loadMemberSession);
|
|
15
15
|
|
|
16
|
-
router.post('/counts', http(api.
|
|
16
|
+
router.post('/counts', http(api.commentsMembers.counts));
|
|
17
17
|
|
|
18
|
-
router.get('/', http(api.
|
|
19
|
-
router.get('/:id', http(api.
|
|
20
|
-
router.post('/', http(api.
|
|
21
|
-
router.put('/:id', http(api.
|
|
22
|
-
router.delete('/:id', http(api.
|
|
18
|
+
router.get('/', http(api.commentsMembers.browse));
|
|
19
|
+
router.get('/:id', http(api.commentsMembers.read));
|
|
20
|
+
router.post('/', http(api.commentsMembers.add));
|
|
21
|
+
router.put('/:id', http(api.commentsMembers.edit));
|
|
22
|
+
router.delete('/:id', http(api.commentsMembers.destroy));
|
|
23
23
|
|
|
24
|
-
router.post('/:id/like', http(api.
|
|
25
|
-
router.delete('/:id/like', http(api.
|
|
24
|
+
router.post('/:id/like', http(api.commentsMembers.like));
|
|
25
|
+
router.delete('/:id/like', http(api.commentsMembers.unlike));
|
|
26
|
+
|
|
27
|
+
router.post('/:id/report', http(api.commentsMembers.report));
|
|
26
28
|
|
|
27
29
|
return router;
|
|
28
30
|
};
|
|
@@ -133,12 +133,21 @@
|
|
|
133
133
|
"emailAnalytics": true
|
|
134
134
|
},
|
|
135
135
|
"portal": {
|
|
136
|
-
"url": "https://
|
|
136
|
+
"url": "https://cdn.jsdelivr.net/npm/@tryghost/portal@~{version}/umd/portal.min.js",
|
|
137
137
|
"version": "2.3"
|
|
138
138
|
},
|
|
139
139
|
"sodoSearch": {
|
|
140
|
-
"url": "https://
|
|
141
|
-
"
|
|
140
|
+
"url": "https://cdn.jsdelivr.net/npm/@tryghost/sodo-search@~{version}/umd/sodo-search.min.js",
|
|
141
|
+
"styles": "https://cdn.jsdelivr.net/npm/@tryghost/sodo-search@~{version}/umd/main.css",
|
|
142
|
+
"version": "1.1"
|
|
143
|
+
},
|
|
144
|
+
"comments": {
|
|
145
|
+
"url": "https://cdn.jsdelivr.net/npm/@tryghost/comments-ui@~{version}/umd/comments-ui.min.js",
|
|
146
|
+
"styles": "https://cdn.jsdelivr.net/npm/@tryghost/comments-ui@~{version}/umd/main.css",
|
|
147
|
+
"version": "0.2"
|
|
148
|
+
},
|
|
149
|
+
"editor": {
|
|
150
|
+
"url": "https://cdn.jsdelivr.net/npm/@tryghost/koenig-react/dist/umd/koenig-react.min.js"
|
|
142
151
|
},
|
|
143
152
|
"tenor": {
|
|
144
153
|
"publicReadOnlyApiKey": null,
|
|
@@ -152,9 +161,5 @@
|
|
|
152
161
|
},
|
|
153
162
|
"gravatar": {
|
|
154
163
|
"url": "https://www.gravatar.com/avatar/{hash}?s={size}&r={rating}&d={_default}"
|
|
155
|
-
},
|
|
156
|
-
"comments": {
|
|
157
|
-
"url": "https://unpkg.com/@tryghost/comments-ui@~0.1.0/umd/comments-ui.min.js",
|
|
158
|
-
"version": "0.1.0"
|
|
159
164
|
}
|
|
160
165
|
}
|
|
@@ -56,7 +56,8 @@
|
|
|
56
56
|
"urlCache": "test/utils/fixtures/urls"
|
|
57
57
|
},
|
|
58
58
|
"sodoSearch": {
|
|
59
|
-
"url": "https://
|
|
60
|
-
"
|
|
59
|
+
"url": "https://cdn.jsdelivr.net/npm/@tryghost/sodo-search@~{version}/umd/sodo-search.min.js",
|
|
60
|
+
"styles": "https://cdn.jsdelivr.net/npm/@tryghost/sodo-search@~{version}/umd/main.css",
|
|
61
|
+
"version": "1.0"
|
|
61
62
|
}
|
|
62
63
|
}
|
package/core/shared/labs.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghost",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.6.0",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"start": "node index",
|
|
24
24
|
"dev": "grunt dev",
|
|
25
25
|
"dev:debug": "DEBUG=ghost:* grunt dev",
|
|
26
|
-
"setup": "
|
|
27
|
-
"main": "grunt shell:main && grunt subgrunt:init",
|
|
26
|
+
"setup": "knex-migrator init && grunt symlink && grunt init || (exit 0)",
|
|
28
27
|
"build": "grunt build",
|
|
29
|
-
"test": "
|
|
28
|
+
"test": "yarn test:unit",
|
|
29
|
+
"test:single": "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
32
|
"test:unit": "c8 yarn test:unit:base",
|
|
33
33
|
"test:unit:base": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/unit' --timeout=2000",
|
|
34
34
|
"test:integration": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/integration' --timeout=5000",
|
|
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' './test/e2e-webhooks' --timeout=
|
|
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' './test/e2e-webhooks' --timeout=15000",
|
|
36
36
|
"test:regression": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000",
|
|
37
37
|
"test:browser": "playwright test --browser=all test/e2e-browser",
|
|
38
38
|
"test:ci": "yarn test:e2e -b && yarn test:integration -b && yarn test:regression -b",
|
|
@@ -46,77 +46,75 @@
|
|
|
46
46
|
"lint:test": "eslint -c test/.eslintrc.js --ignore-path test/.eslintignore 'test/**/*.js'",
|
|
47
47
|
"lint:code": "yarn lint:server && yarn lint:shared && yarn lint:frontend",
|
|
48
48
|
"lint": "yarn lint:server && yarn lint:shared && yarn lint:frontend && yarn lint:test",
|
|
49
|
-
"
|
|
50
|
-
"fix:server": "yarn cache clean && rm -rf node_modules && yarn",
|
|
51
|
-
"fix": "yarn fix:admin && yarn fix:server"
|
|
49
|
+
"prepack": "grunt release"
|
|
52
50
|
},
|
|
53
51
|
"engines": {
|
|
54
52
|
"node": "^14.17.0 || ^16.13.0",
|
|
55
53
|
"cli": "^1.17.0"
|
|
56
54
|
},
|
|
57
55
|
"dependencies": {
|
|
58
|
-
"@sentry/node": "7.
|
|
59
|
-
"@tryghost/adapter-manager": "0.
|
|
56
|
+
"@sentry/node": "7.8.0",
|
|
57
|
+
"@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-0.0.0.tgz",
|
|
60
58
|
"@tryghost/admin-api-schema": "4.0.0",
|
|
61
|
-
"@tryghost/api-version-compatibility-service": "0.
|
|
59
|
+
"@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-0.0.0.tgz",
|
|
62
60
|
"@tryghost/bookshelf-plugins": "0.4.3",
|
|
63
|
-
"@tryghost/bootstrap-socket": "0.
|
|
61
|
+
"@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-0.0.0.tgz",
|
|
64
62
|
"@tryghost/color-utils": "0.1.19",
|
|
65
|
-
"@tryghost/config-url-helpers": "1.0.
|
|
66
|
-
"@tryghost/constants": "
|
|
67
|
-
"@tryghost/custom-theme-settings-service": "0.
|
|
68
|
-
"@tryghost/database-info": "0.3.
|
|
63
|
+
"@tryghost/config-url-helpers": "1.0.2",
|
|
64
|
+
"@tryghost/constants": "file:components/tryghost-constants-0.0.0.tgz",
|
|
65
|
+
"@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-0.0.0.tgz",
|
|
66
|
+
"@tryghost/database-info": "0.3.8",
|
|
69
67
|
"@tryghost/debug": "0.1.17",
|
|
70
|
-
"@tryghost/domain-events": "0.
|
|
71
|
-
"@tryghost/email-analytics-provider-mailgun": "
|
|
72
|
-
"@tryghost/email-analytics-service": "
|
|
73
|
-
"@tryghost/email-content-generator": "0.
|
|
68
|
+
"@tryghost/domain-events": "file:components/tryghost-domain-events-0.0.0.tgz",
|
|
69
|
+
"@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-0.0.0.tgz",
|
|
70
|
+
"@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-0.0.0.tgz",
|
|
71
|
+
"@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-0.0.0.tgz",
|
|
74
72
|
"@tryghost/errors": "1.2.14",
|
|
75
|
-
"@tryghost/express-dynamic-redirects": "0.
|
|
73
|
+
"@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-0.0.0.tgz",
|
|
76
74
|
"@tryghost/helpers": "1.1.71",
|
|
77
75
|
"@tryghost/image-transform": "1.1.0",
|
|
78
|
-
"@tryghost/job-manager": "0.
|
|
76
|
+
"@tryghost/job-manager": "file:components/tryghost-job-manager-0.0.0.tgz",
|
|
79
77
|
"@tryghost/kg-card-factory": "3.1.3",
|
|
80
78
|
"@tryghost/kg-default-atoms": "3.1.2",
|
|
81
79
|
"@tryghost/kg-default-cards": "5.16.2",
|
|
82
80
|
"@tryghost/kg-markdown-html-renderer": "5.1.5",
|
|
83
81
|
"@tryghost/kg-mobiledoc-html-renderer": "5.3.5",
|
|
84
|
-
"@tryghost/limit-service": "1.2.
|
|
82
|
+
"@tryghost/limit-service": "1.2.2",
|
|
85
83
|
"@tryghost/logging": "2.2.3",
|
|
86
|
-
"@tryghost/magic-link": "
|
|
87
|
-
"@tryghost/member-events": "0.
|
|
88
|
-
"@tryghost/members-api": "
|
|
89
|
-
"@tryghost/members-events-service": "0.
|
|
90
|
-
"@tryghost/members-importer": "0.
|
|
91
|
-
"@tryghost/members-offers": "0.
|
|
92
|
-
"@tryghost/members-ssr": "
|
|
93
|
-
"@tryghost/members-stripe-service": "0.
|
|
84
|
+
"@tryghost/magic-link": "file:components/tryghost-magic-link-0.0.0.tgz",
|
|
85
|
+
"@tryghost/member-events": "file:components/tryghost-member-events-0.0.0.tgz",
|
|
86
|
+
"@tryghost/members-api": "file:components/tryghost-members-api-0.0.0.tgz",
|
|
87
|
+
"@tryghost/members-events-service": "file:components/tryghost-members-events-service-0.0.0.tgz",
|
|
88
|
+
"@tryghost/members-importer": "file:components/tryghost-members-importer-0.0.0.tgz",
|
|
89
|
+
"@tryghost/members-offers": "file:components/tryghost-members-offers-0.0.0.tgz",
|
|
90
|
+
"@tryghost/members-ssr": "file:components/tryghost-members-ssr-0.0.0.tgz",
|
|
91
|
+
"@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-0.0.0.tgz",
|
|
94
92
|
"@tryghost/metrics": "1.0.14",
|
|
95
|
-
"@tryghost/minifier": "0.
|
|
96
|
-
"@tryghost/mw-api-version-mismatch": "0.
|
|
97
|
-
"@tryghost/mw-error-handler": "
|
|
98
|
-
"@tryghost/mw-session-from-token": "0.
|
|
93
|
+
"@tryghost/minifier": "file:components/tryghost-minifier-0.0.0.tgz",
|
|
94
|
+
"@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-0.0.0.tgz",
|
|
95
|
+
"@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-0.0.0.tgz",
|
|
96
|
+
"@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-0.0.0.tgz",
|
|
97
|
+
"@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-0.0.0.tgz",
|
|
99
98
|
"@tryghost/nodemailer": "0.3.24",
|
|
100
99
|
"@tryghost/nql": "0.9.2",
|
|
101
|
-
"@tryghost/package-json": "
|
|
102
|
-
"@tryghost/pretty-cli": "1.2.
|
|
103
|
-
"@tryghost/promise": "0.1.
|
|
100
|
+
"@tryghost/package-json": "file:components/tryghost-package-json-0.0.0.tgz",
|
|
101
|
+
"@tryghost/pretty-cli": "1.2.29",
|
|
102
|
+
"@tryghost/promise": "0.1.20",
|
|
104
103
|
"@tryghost/request": "0.1.28",
|
|
105
104
|
"@tryghost/root-utils": "0.3.15",
|
|
106
|
-
"@tryghost/security": "0.
|
|
107
|
-
"@tryghost/session-service": "0.
|
|
108
|
-
"@tryghost/settings-path-manager": "0.
|
|
105
|
+
"@tryghost/security": "file:components/tryghost-security-0.0.0.tgz",
|
|
106
|
+
"@tryghost/session-service": "file:components/tryghost-session-service-0.0.0.tgz",
|
|
107
|
+
"@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-0.0.0.tgz",
|
|
109
108
|
"@tryghost/social-urls": "0.1.32",
|
|
110
109
|
"@tryghost/stats-service": "0.3.0",
|
|
111
110
|
"@tryghost/string": "0.1.26",
|
|
112
111
|
"@tryghost/tpl": "0.1.17",
|
|
113
|
-
"@tryghost/update-check-service": "0.
|
|
112
|
+
"@tryghost/update-check-service": "file:components/tryghost-update-check-service-0.0.0.tgz",
|
|
114
113
|
"@tryghost/url-utils": "4.0.2",
|
|
115
114
|
"@tryghost/validator": "0.1.26",
|
|
116
|
-
"@tryghost/verification-trigger": "0.
|
|
115
|
+
"@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-0.0.0.tgz",
|
|
117
116
|
"@tryghost/version": "0.1.15",
|
|
118
|
-
"@tryghost/
|
|
119
|
-
"@tryghost/zip": "1.1.26",
|
|
117
|
+
"@tryghost/zip": "1.1.27",
|
|
120
118
|
"amperize": "0.6.1",
|
|
121
119
|
"analytics-node": "6.1.0",
|
|
122
120
|
"bluebird": "3.7.2",
|
|
@@ -144,7 +142,7 @@
|
|
|
144
142
|
"ghost-storage-base": "1.0.0",
|
|
145
143
|
"glob": "8.0.3",
|
|
146
144
|
"got": "9.6.0",
|
|
147
|
-
"gscan": "4.
|
|
145
|
+
"gscan": "4.32.0",
|
|
148
146
|
"html-to-text": "8.2.0",
|
|
149
147
|
"human-number": "2.0.0",
|
|
150
148
|
"image-size": "1.0.2",
|
|
@@ -155,17 +153,17 @@
|
|
|
155
153
|
"jsonwebtoken": "8.5.1",
|
|
156
154
|
"juice": "8.0.0",
|
|
157
155
|
"keypair": "1.0.4",
|
|
158
|
-
"knex": "2.
|
|
159
|
-
"knex-migrator": "5.0.
|
|
156
|
+
"knex": "2.2.0",
|
|
157
|
+
"knex-migrator": "5.0.3",
|
|
160
158
|
"lodash": "4.17.21",
|
|
161
159
|
"luxon": "2.5.0",
|
|
162
160
|
"mailgun-js": "0.22.0",
|
|
163
|
-
"metascraper": "5.29.
|
|
161
|
+
"metascraper": "5.29.18",
|
|
164
162
|
"metascraper-author": "5.29.15",
|
|
165
163
|
"metascraper-description": "5.29.15",
|
|
166
164
|
"metascraper-image": "5.29.15",
|
|
167
165
|
"metascraper-logo": "5.29.15",
|
|
168
|
-
"metascraper-logo-favicon": "5.
|
|
166
|
+
"metascraper-logo-favicon": "5.30.0",
|
|
169
167
|
"metascraper-publisher": "5.29.15",
|
|
170
168
|
"metascraper-title": "5.29.15",
|
|
171
169
|
"metascraper-url": "5.29.15",
|
|
@@ -179,7 +177,7 @@
|
|
|
179
177
|
"path-match": "1.2.4",
|
|
180
178
|
"probe-image-size": "7.2.3",
|
|
181
179
|
"rss": "1.2.2",
|
|
182
|
-
"sanitize-html": "2.7.
|
|
180
|
+
"sanitize-html": "2.7.1",
|
|
183
181
|
"semver": "7.3.7",
|
|
184
182
|
"stoppable": "1.1.0",
|
|
185
183
|
"tough-cookie": "4.0.0",
|
|
@@ -188,28 +186,26 @@
|
|
|
188
186
|
},
|
|
189
187
|
"optionalDependencies": {
|
|
190
188
|
"@tryghost/html-to-mobiledoc": "1.8.6",
|
|
191
|
-
"sqlite3": "5.0.
|
|
189
|
+
"sqlite3": "5.0.11"
|
|
192
190
|
},
|
|
193
191
|
"devDependencies": {
|
|
194
192
|
"@lodder/grunt-postcss": "3.1.1",
|
|
195
|
-
"@playwright/test": "1.
|
|
193
|
+
"@playwright/test": "1.24.2",
|
|
196
194
|
"@tryghost/express-test": "0.11.1",
|
|
197
195
|
"@tryghost/webhook-mock-receiver": "0.1.1",
|
|
198
|
-
"c8": "7.
|
|
196
|
+
"c8": "7.12.0",
|
|
199
197
|
"cli-progress": "3.11.2",
|
|
200
198
|
"coffeescript": "2.7.0",
|
|
201
199
|
"cssnano": "5.1.12",
|
|
202
|
-
"eslint": "8.
|
|
200
|
+
"eslint": "8.21.0",
|
|
203
201
|
"eslint-plugin-ghost": "2.14.0",
|
|
204
202
|
"grunt": "1.5.3",
|
|
205
203
|
"grunt-bg-shell": "2.3.3",
|
|
206
204
|
"grunt-contrib-clean": "2.0.1",
|
|
207
|
-
"grunt-contrib-compress": "2.0.0",
|
|
208
205
|
"grunt-contrib-copy": "1.0.0",
|
|
209
206
|
"grunt-contrib-symlink": "1.0.0",
|
|
210
207
|
"grunt-contrib-watch": "1.1.0",
|
|
211
208
|
"grunt-express-server": "0.5.4",
|
|
212
|
-
"grunt-shell": "4.0.0",
|
|
213
209
|
"grunt-subgrunt": "1.3.0",
|
|
214
210
|
"grunt-update-submodules": "0.4.1",
|
|
215
211
|
"inquirer": "8.2.4",
|
|
@@ -217,7 +213,7 @@
|
|
|
217
213
|
"mocha": "10.0.0",
|
|
218
214
|
"mocha-slow-test-reporter": "0.1.2",
|
|
219
215
|
"mock-knex": "TryGhost/mock-knex#8ecb8c227bf463c991c3d820d33f59efc3ab9682",
|
|
220
|
-
"nock": "13.2.
|
|
216
|
+
"nock": "13.2.9",
|
|
221
217
|
"papaparse": "5.3.2",
|
|
222
218
|
"postcss": "8.4.14",
|
|
223
219
|
"rewire": "6.0.0",
|
|
@@ -229,6 +225,43 @@
|
|
|
229
225
|
"resolutions": {
|
|
230
226
|
"@tryghost/logging": "2.2.3",
|
|
231
227
|
"moment": "2.24.0",
|
|
232
|
-
"moment-timezone": "0.5.23"
|
|
228
|
+
"moment-timezone": "0.5.23",
|
|
229
|
+
"@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-0.0.0.tgz",
|
|
230
|
+
"@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-0.0.0.tgz",
|
|
231
|
+
"@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-0.0.0.tgz",
|
|
232
|
+
"@tryghost/constants": "file:components/tryghost-constants-0.0.0.tgz",
|
|
233
|
+
"@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-0.0.0.tgz",
|
|
234
|
+
"@tryghost/domain-events": "file:components/tryghost-domain-events-0.0.0.tgz",
|
|
235
|
+
"@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-0.0.0.tgz",
|
|
236
|
+
"@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-0.0.0.tgz",
|
|
237
|
+
"@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-0.0.0.tgz",
|
|
238
|
+
"@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-0.0.0.tgz",
|
|
239
|
+
"@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-0.0.0.tgz",
|
|
240
|
+
"@tryghost/job-manager": "file:components/tryghost-job-manager-0.0.0.tgz",
|
|
241
|
+
"@tryghost/magic-link": "file:components/tryghost-magic-link-0.0.0.tgz",
|
|
242
|
+
"@tryghost/member-analytics-service": "file:components/tryghost-member-analytics-service-0.0.0.tgz",
|
|
243
|
+
"@tryghost/member-events": "file:components/tryghost-member-events-0.0.0.tgz",
|
|
244
|
+
"@tryghost/members-analytics-ingress": "file:components/tryghost-members-analytics-ingress-0.0.0.tgz",
|
|
245
|
+
"@tryghost/members-api": "file:components/tryghost-members-api-0.0.0.tgz",
|
|
246
|
+
"@tryghost/members-csv": "file:components/tryghost-members-csv-0.0.0.tgz",
|
|
247
|
+
"@tryghost/members-events-service": "file:components/tryghost-members-events-service-0.0.0.tgz",
|
|
248
|
+
"@tryghost/members-importer": "file:components/tryghost-members-importer-0.0.0.tgz",
|
|
249
|
+
"@tryghost/members-ssr": "file:components/tryghost-members-ssr-0.0.0.tgz",
|
|
250
|
+
"@tryghost/minifier": "file:components/tryghost-minifier-0.0.0.tgz",
|
|
251
|
+
"@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-0.0.0.tgz",
|
|
252
|
+
"@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-0.0.0.tgz",
|
|
253
|
+
"@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-0.0.0.tgz",
|
|
254
|
+
"@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-0.0.0.tgz",
|
|
255
|
+
"@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-0.0.0.tgz",
|
|
256
|
+
"@tryghost/members-offers": "file:components/tryghost-members-offers-0.0.0.tgz",
|
|
257
|
+
"@tryghost/package-json": "file:components/tryghost-package-json-0.0.0.tgz",
|
|
258
|
+
"@tryghost/members-payments": "file:components/tryghost-members-payments-0.0.0.tgz",
|
|
259
|
+
"@tryghost/security": "file:components/tryghost-security-0.0.0.tgz",
|
|
260
|
+
"@tryghost/session-service": "file:components/tryghost-session-service-0.0.0.tgz",
|
|
261
|
+
"@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-0.0.0.tgz",
|
|
262
|
+
"@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-0.0.0.tgz",
|
|
263
|
+
"@tryghost/update-check-service": "file:components/tryghost-update-check-service-0.0.0.tgz",
|
|
264
|
+
"@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-0.0.0.tgz",
|
|
265
|
+
"@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-0.0.0.tgz"
|
|
233
266
|
}
|
|
234
267
|
}
|