ghost 4.25.1 → 4.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +54 -10
- package/content/themes/casper/package.json +1 -1
- package/core/app.js +8 -4
- package/core/boot.js +50 -23
- package/core/built/assets/{chunk.3.8f95b516d88ff4eec64c.js → chunk.3.e54be01b5124e4e27958.js} +7 -7
- package/core/built/assets/ghost-dark-ae67fe157509b6e82c607ba560fc52e9.css +1 -0
- package/core/built/assets/{ghost.min-3441c3282e390002626a2dc1d7586185.js → ghost.min-2d534cce15c43c646814b26f4beefb78.js} +131 -128
- package/core/built/assets/ghost.min-b1e58e098721e467388682a85a7c187d.css +1 -0
- package/core/built/assets/{vendor.min-6fc912d1248c906f95efad2cb3eebb7d.js → vendor.min-e433aa7d5620e7837f30e170cd43f84e.js} +569 -539
- package/core/frontend/apps/amp/lib/views/amp.hbs +8 -3
- package/core/frontend/helpers/ghost_head.js +1 -1
- package/core/frontend/src/cards/css/audio.css +258 -0
- package/core/frontend/src/cards/css/blockquote.css +13 -19
- package/core/frontend/src/cards/css/product.css +101 -0
- package/core/frontend/src/cards/css/toggle.css +20 -7
- package/core/frontend/src/cards/js/audio.js +147 -0
- package/core/server/notify.js +1 -2
- package/core/server/services/mega/template.js +21 -10
- package/core/server/services/members/api.js +2 -2
- package/core/server/services/members/emails/signup-paid.js +4 -4
- package/core/server/services/nft-oembed.js +1 -1
- package/core/server/services/twitter-embed.js +3 -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/parent/app.js +2 -22
- package/core/server/web/parent/backend.js +2 -0
- package/core/shared/express.js +1 -1
- package/core/shared/labs.js +6 -5
- package/package.json +16 -16
- package/yarn.lock +229 -326
- package/core/built/assets/ghost-dark-f67240a9636407594be38571c615629c.css +0 -1
- package/core/built/assets/ghost.min-ee5bd95a831378b4c8ccefb37d26eac0.css +0 -1
|
@@ -98,9 +98,9 @@ function createApiInstance(config) {
|
|
|
98
98
|
`;
|
|
99
99
|
case 'signup-paid':
|
|
100
100
|
return `
|
|
101
|
-
|
|
101
|
+
Hey there!
|
|
102
102
|
|
|
103
|
-
Tap the link below to be automatically signed in:
|
|
103
|
+
Thank you for subscribing to ${siteTitle}. Tap the link below to be automatically signed in:
|
|
104
104
|
|
|
105
105
|
${url}
|
|
106
106
|
|
|
@@ -107,7 +107,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
107
107
|
<div class="content" style="box-sizing: border-box; display: block; margin: 0 auto; max-width: 600px; padding: 30px 20px;">
|
|
108
108
|
|
|
109
109
|
<!-- START CENTERED WHITE CONTAINER -->
|
|
110
|
-
<span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">
|
|
110
|
+
<span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">Thank you for subscribing to ${siteTitle}.</span>
|
|
111
111
|
<table class="main" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; background: #ffffff; border-radius: 8px;">
|
|
112
112
|
|
|
113
113
|
<!-- START MAIN CONTENT AREA -->
|
|
@@ -116,8 +116,8 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
116
116
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
|
|
117
117
|
<tr>
|
|
118
118
|
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; vertical-align: top;">
|
|
119
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 25px; margin: 0; margin-bottom: 15px;">
|
|
120
|
-
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 25px; margin: 0; margin-bottom: 32px;">Tap the link below to be automatically signed in:</p>
|
|
119
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 20px; color: #15212A; font-weight: bold; line-height: 25px; margin: 0; margin-bottom: 15px;">Hey there!</p>
|
|
120
|
+
<p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; color: #3A464C; font-weight: normal; line-height: 25px; margin: 0; margin-bottom: 32px;">Thank you for subscribing to ${siteTitle}. Tap the link below to be automatically signed in:</p>
|
|
121
121
|
<table border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
|
|
122
122
|
<tbody>
|
|
123
123
|
<tr>
|
|
@@ -125,7 +125,7 @@ module.exports = ({siteTitle, email, url, accentColor = '#15212A', siteDomain, s
|
|
|
125
125
|
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: auto;">
|
|
126
126
|
<tbody>
|
|
127
127
|
<tr>
|
|
128
|
-
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: ${accentColor}; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: ${accentColor}; border: solid 1px ${accentColor}; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: ${accentColor};">
|
|
128
|
+
<td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; vertical-align: top; background-color: ${accentColor}; border-radius: 5px; text-align: center;"> <a href="${url}" target="_blank" style="display: inline-block; color: #ffffff; background-color: ${accentColor}; border: solid 1px ${accentColor}; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 16px; font-weight: normal; margin: 0; padding: 9px 22px 10px; border-color: ${accentColor};">Sign in</a> </td>
|
|
129
129
|
</tr>
|
|
130
130
|
</tbody>
|
|
131
131
|
</table>
|
|
@@ -46,7 +46,7 @@ class NFTOEmbedProvider {
|
|
|
46
46
|
return {
|
|
47
47
|
version: '1.0',
|
|
48
48
|
type: 'nft',
|
|
49
|
-
title: result.body.name
|
|
49
|
+
title: result.body.name ? result.body.name : `#${result.body.token_id}`,
|
|
50
50
|
author_name: result.body.creator.user.username,
|
|
51
51
|
author_url: `https://opensea.io/${result.body.creator.user.username}`,
|
|
52
52
|
provider_name: 'OpenSea',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const {extract} = require('oembed-parser');
|
|
2
|
+
const labs = require('../../shared/labs');
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* @typedef {import('./oembed').ICustomProvider} ICustomProvider
|
|
@@ -41,7 +42,7 @@ class TwitterOEmbedProvider {
|
|
|
41
42
|
/** @type {object} */
|
|
42
43
|
const oembedData = await extract(url.href);
|
|
43
44
|
|
|
44
|
-
if (this.dependencies.config.bearerToken) {
|
|
45
|
+
if (this.dependencies.config.bearerToken && labs.isSet('richTwitterNewsletters')) {
|
|
45
46
|
const query = {
|
|
46
47
|
expansions: ['attachments.poll_ids', 'attachments.media_keys', 'author_id', 'entities.mentions.username', 'geo.place_id', 'in_reply_to_user_id', 'referenced_tweets.id', 'referenced_tweets.id.author_id'],
|
|
47
48
|
'media.fields': ['duration_ms', 'height', 'media_key', 'preview_image_url', 'type', 'url', 'width', 'public_metrics', 'alt_text'],
|
|
@@ -66,6 +67,7 @@ class TwitterOEmbedProvider {
|
|
|
66
67
|
const body = JSON.parse(result.body);
|
|
67
68
|
|
|
68
69
|
oembedData.tweet_data = body.data;
|
|
70
|
+
oembedData.tweet_data.includes = body.includes;
|
|
69
71
|
} catch (err) {
|
|
70
72
|
this.dependencies.logging.error(err);
|
|
71
73
|
}
|
|
@@ -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%224.
|
|
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%224.27%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%22emberKeyboard%22%3A%7B%22disableInputsInitializer%22%3Atrue%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" />
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
<link rel="stylesheet" href="assets/vendor.min-987af30228885bce50f05c4723fe6f53.css">
|
|
44
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
44
|
+
<link rel="stylesheet" href="assets/ghost.min-b1e58e098721e467388682a85a7c187d.css" title="light">
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
<div id="ember-basic-dropdown-wormhole"></div>
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
<script src="assets/vendor.min-
|
|
63
|
-
<script src="assets/ghost.min-
|
|
62
|
+
<script src="assets/vendor.min-e433aa7d5620e7837f30e170cd43f84e.js"></script>
|
|
63
|
+
<script src="assets/ghost.min-2d534cce15c43c646814b26f4beefb78.js"></script>
|
|
64
64
|
|
|
65
65
|
</body>
|
|
66
66
|
</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%224.
|
|
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%224.27%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%22emberKeyboard%22%3A%7B%22disableInputsInitializer%22%3Atrue%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" />
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
<link rel="stylesheet" href="assets/vendor.min-987af30228885bce50f05c4723fe6f53.css">
|
|
44
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
44
|
+
<link rel="stylesheet" href="assets/ghost.min-b1e58e098721e467388682a85a7c187d.css" title="light">
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
<div id="ember-basic-dropdown-wormhole"></div>
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
<script src="assets/vendor.min-
|
|
63
|
-
<script src="assets/ghost.min-
|
|
62
|
+
<script src="assets/vendor.min-e433aa7d5620e7837f30e170cd43f84e.js"></script>
|
|
63
|
+
<script src="assets/ghost.min-2d534cce15c43c646814b26f4beefb78.js"></script>
|
|
64
64
|
|
|
65
65
|
</body>
|
|
66
66
|
</html>
|
|
@@ -3,22 +3,15 @@ const config = require('../../../shared/config');
|
|
|
3
3
|
const express = require('../../../shared/express');
|
|
4
4
|
const compress = require('compression');
|
|
5
5
|
const mw = require('./middleware');
|
|
6
|
-
const vhost = require('@tryghost/vhost-middleware');
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
* @param {Object} options
|
|
10
|
-
* @param {Boolean} [options.start]
|
|
11
|
-
* @param {Boolean} [options.backend]
|
|
12
|
-
* @param {Boolean} [options.frontend]
|
|
13
|
-
*/
|
|
14
|
-
module.exports = function setupParentApp({start, frontend = true, backend = true}) {
|
|
7
|
+
module.exports = function setupParentApp() {
|
|
15
8
|
debug('ParentApp setup start');
|
|
16
9
|
const parentApp = express('parent');
|
|
17
10
|
|
|
18
11
|
parentApp.use(mw.requestId);
|
|
19
12
|
parentApp.use(mw.logRequest);
|
|
20
13
|
|
|
21
|
-
// Register event
|
|
14
|
+
// Register event emitter on req/res to trigger cache invalidation webhook event
|
|
22
15
|
parentApp.use(mw.emitEvents);
|
|
23
16
|
|
|
24
17
|
// enabled gzip compression by default
|
|
@@ -30,19 +23,6 @@ module.exports = function setupParentApp({start, frontend = true, backend = true
|
|
|
30
23
|
// @TODO: figure out if this is really needed everywhere? Is it not frontend only...
|
|
31
24
|
parentApp.use(mw.ghostLocals);
|
|
32
25
|
|
|
33
|
-
// Mount the express apps on the parentApp
|
|
34
|
-
|
|
35
|
-
if (backend) {
|
|
36
|
-
debug('Mounting bakcend: ADMIN + API');
|
|
37
|
-
const backendApp = require('./backend')();
|
|
38
|
-
parentApp.use(vhost(config.getBackendMountPath(), backendApp));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (frontend) {
|
|
42
|
-
debug('Mounting frontend: SITE + MEMBERS');
|
|
43
|
-
const frontendApp = require('./frontend')({start});
|
|
44
|
-
parentApp.use(vhost(config.getFrontendMountPath(), frontendApp));
|
|
45
|
-
}
|
|
46
26
|
debug('ParentApp setup end');
|
|
47
27
|
|
|
48
28
|
return parentApp;
|
|
@@ -10,9 +10,11 @@ module.exports = () => {
|
|
|
10
10
|
// BACKEND
|
|
11
11
|
// Wrap the admin and API apps into a single express app for use with vhost
|
|
12
12
|
const backendApp = express('backend');
|
|
13
|
+
|
|
13
14
|
backendApp.lazyUse('/ghost/api', require('../api'));
|
|
14
15
|
backendApp.lazyUse('/ghost/oauth', require('../oauth'));
|
|
15
16
|
backendApp.lazyUse('/ghost/.well-known', require('../well-known'));
|
|
17
|
+
|
|
16
18
|
backendApp.use('/ghost', require('../../services/auth/session').createSessionFromToken, require('../admin')());
|
|
17
19
|
|
|
18
20
|
return backendApp;
|
package/core/shared/express.js
CHANGED
|
@@ -29,7 +29,7 @@ module.exports = (name) => {
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
// Wrap the main express router call
|
|
32
|
-
// This is mostly an
|
|
32
|
+
// This is mostly an experiment, and can likely be removed soon
|
|
33
33
|
module.exports.Router = (name, options) => {
|
|
34
34
|
debug('new Router start', name);
|
|
35
35
|
const router = express.Router(options);
|
package/core/shared/labs.js
CHANGED
|
@@ -16,7 +16,10 @@ const messages = {
|
|
|
16
16
|
// flags in this list always return `true`, allows quick global enable prior to full flag removal
|
|
17
17
|
const GA_FEATURES = [
|
|
18
18
|
'customThemeSettings',
|
|
19
|
-
'nftCard'
|
|
19
|
+
'nftCard',
|
|
20
|
+
'calloutCard',
|
|
21
|
+
'accordionCard',
|
|
22
|
+
'richTwitterNewsletters'
|
|
20
23
|
];
|
|
21
24
|
|
|
22
25
|
// NOTE: this allowlist is meant to be used to filter out any unexpected
|
|
@@ -34,14 +37,12 @@ const ALPHA_FEATURES = [
|
|
|
34
37
|
'mediaAPI',
|
|
35
38
|
'filesAPI',
|
|
36
39
|
'membersAutoLogin',
|
|
37
|
-
'calloutCard',
|
|
38
|
-
'accordionCard',
|
|
39
40
|
'fileCard',
|
|
40
41
|
'audioCard',
|
|
41
42
|
'videoCard',
|
|
42
43
|
'productCard',
|
|
43
|
-
'
|
|
44
|
-
'
|
|
44
|
+
'beforeAfterCard',
|
|
45
|
+
'tweetGridCard'
|
|
45
46
|
];
|
|
46
47
|
|
|
47
48
|
module.exports.GA_KEYS = [...GA_FEATURES];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghost",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.27.1",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@nexes/nql": "0.6.0",
|
|
57
|
-
"@sentry/node": "6.
|
|
57
|
+
"@sentry/node": "6.16.0",
|
|
58
58
|
"@tryghost/adapter-manager": "0.2.24",
|
|
59
59
|
"@tryghost/admin-api-schema": "2.6.1",
|
|
60
60
|
"@tryghost/bookshelf-plugins": "0.3.5",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"@tryghost/job-manager": "0.8.16",
|
|
74
74
|
"@tryghost/kg-card-factory": "3.1.0",
|
|
75
75
|
"@tryghost/kg-default-atoms": "3.1.0",
|
|
76
|
-
"@tryghost/kg-default-cards": "5.
|
|
76
|
+
"@tryghost/kg-default-cards": "5.11.5",
|
|
77
77
|
"@tryghost/kg-markdown-html-renderer": "5.1.0",
|
|
78
|
-
"@tryghost/kg-mobiledoc-html-renderer": "5.3.
|
|
78
|
+
"@tryghost/kg-mobiledoc-html-renderer": "5.3.1",
|
|
79
79
|
"@tryghost/limit-service": "1.0.6",
|
|
80
80
|
"@tryghost/logging": "1.0.2",
|
|
81
81
|
"@tryghost/magic-link": "1.0.14",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"ghost-storage-base": "1.0.0",
|
|
131
131
|
"glob": "7.2.0",
|
|
132
132
|
"got": "9.6.0",
|
|
133
|
-
"gscan": "4.
|
|
133
|
+
"gscan": "4.16.0",
|
|
134
134
|
"html-to-text": "5.1.1",
|
|
135
135
|
"image-size": "1.0.0",
|
|
136
136
|
"intl": "1.2.5",
|
|
@@ -145,18 +145,18 @@
|
|
|
145
145
|
"lodash": "4.17.21",
|
|
146
146
|
"luxon": "2.1.1",
|
|
147
147
|
"mailgun-js": "0.22.0",
|
|
148
|
-
"metascraper": "5.25.
|
|
149
|
-
"metascraper-author": "5.25.
|
|
150
|
-
"metascraper-description": "5.25.
|
|
151
|
-
"metascraper-image": "5.25.
|
|
152
|
-
"metascraper-logo": "5.25.
|
|
153
|
-
"metascraper-logo-favicon": "5.25.
|
|
154
|
-
"metascraper-publisher": "5.25.
|
|
155
|
-
"metascraper-title": "5.25.
|
|
156
|
-
"metascraper-url": "5.25.
|
|
148
|
+
"metascraper": "5.25.5",
|
|
149
|
+
"metascraper-author": "5.25.5",
|
|
150
|
+
"metascraper-description": "5.25.5",
|
|
151
|
+
"metascraper-image": "5.25.5",
|
|
152
|
+
"metascraper-logo": "5.25.5",
|
|
153
|
+
"metascraper-logo-favicon": "5.25.5",
|
|
154
|
+
"metascraper-publisher": "5.25.5",
|
|
155
|
+
"metascraper-title": "5.25.5",
|
|
156
|
+
"metascraper-url": "5.25.5",
|
|
157
157
|
"moment": "2.24.0",
|
|
158
158
|
"moment-timezone": "0.5.23",
|
|
159
|
-
"multer": "1.4.
|
|
159
|
+
"multer": "1.4.4",
|
|
160
160
|
"mysql": "2.18.1",
|
|
161
161
|
"nconf": "0.11.3",
|
|
162
162
|
"node-jose": "2.0.0",
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
"xml": "1.0.1"
|
|
175
175
|
},
|
|
176
176
|
"optionalDependencies": {
|
|
177
|
-
"@tryghost/html-to-mobiledoc": "1.
|
|
177
|
+
"@tryghost/html-to-mobiledoc": "1.5.0",
|
|
178
178
|
"sqlite3": "5.0.2"
|
|
179
179
|
},
|
|
180
180
|
"devDependencies": {
|