ghost 4.30.0 → 4.32.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/LICENSE +1 -1
- package/README.md +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 +110 -43
- package/content/themes/casper/package.json +1 -1
- package/core/built/assets/{chunk.3.e54be01b5124e4e27958.js → chunk.3.4906cf0b01d6d8e33374.js} +134 -130
- package/core/built/assets/ghost-dark-67f6ba8347be37f997b3a7e430b29f72.css +1 -0
- package/core/built/assets/ghost.min-2d5f48403647d1e11805691cc7ad0835.css +1 -0
- package/core/built/assets/{ghost.min-884660873d56fcc3d2a3b9fe94c9f022.js → ghost.min-7535b70693bcefde1665bdf621087cbe.js} +1066 -1129
- package/core/built/assets/{vendor.min-987af30228885bce50f05c4723fe6f53.css → vendor.min-0e0334a490951ab747706621f9ccd8b6.css} +18 -10
- package/core/built/assets/{vendor.min-a2fd1e62ce6da8911fee8e812d8c6ceb.js → vendor.min-45e83041aeba4ea7b184f669b20a2b23.js} +1059 -1024
- package/core/frontend/apps/amp/lib/views/amp.hbs +134 -0
- package/core/frontend/helpers/get.js +4 -0
- package/core/frontend/meta/description.js +3 -3
- package/core/frontend/services/sitemap/base-generator.js +21 -18
- package/core/frontend/services/sitemap/handler.js +13 -4
- package/core/frontend/services/sitemap/index-generator.js +20 -10
- package/core/frontend/services/sitemap/manager.js +8 -5
- package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +1 -6
- package/core/frontend/src/cards/css/audio.css +5 -0
- package/core/frontend/src/cards/css/before-after.css +45 -11
- package/core/frontend/src/cards/css/bookmark.css +5 -0
- package/core/frontend/src/cards/css/button.css +5 -0
- package/core/frontend/src/cards/css/callout.css +11 -1
- package/core/frontend/src/cards/css/file.css +14 -3
- package/core/frontend/src/cards/css/gallery.css +10 -3
- package/core/frontend/src/cards/css/header.css +233 -0
- package/core/frontend/src/cards/css/nft.css +5 -0
- package/core/frontend/src/cards/css/product.css +7 -5
- package/core/frontend/src/cards/css/toggle.css +6 -0
- package/core/frontend/src/cards/css/video.css +4 -0
- package/core/frontend/src/cards/js/before-after.js +10 -15
- package/core/frontend/views/unsubscribe.hbs +12 -7
- package/core/frontend/web/site.js +2 -3
- package/core/server/models/single-use-token.js +1 -1
- package/core/server/services/mail/templates/invite-user.html +1 -1
- package/core/server/services/mail/templates/reset-password.html +1 -1
- package/core/server/services/mail/templates/welcome.html +1 -1
- package/core/server/services/mega/template.js +113 -3
- package/core/server/services/members/emails/signin.js +1 -1
- package/core/server/services/members/emails/signup-paid.js +1 -1
- package/core/server/services/members/emails/signup.js +1 -1
- package/core/server/services/members/emails/subscribe.js +1 -1
- package/core/server/services/members/emails/updateEmail.js +1 -1
- package/core/server/services/members/service.js +9 -0
- package/core/server/services/themes/activation-bridge.js +3 -10
- package/core/server/services/themes/index.js +0 -21
- package/core/server/services/twitter-embed.js +1 -2
- package/core/server/web/admin/views/default-prod.html +5 -5
- package/core/server/web/admin/views/default.html +5 -5
- package/core/server/web/api/canary/admin/routes.js +2 -6
- package/core/shared/config/defaults.json +2 -2
- package/core/shared/config/overrides.json +11 -1
- package/core/shared/labs.js +1 -14
- package/package.json +26 -26
- package/yarn.lock +2265 -2511
- package/core/built/assets/ghost-dark-1594d07a0716e0253a78234c8e42d765.css +0 -1
- package/core/built/assets/ghost.min-c21fea11c3f431994a8ee7c47a8ed145.css +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('themes');
|
|
2
2
|
const bridge = require('../../../bridge');
|
|
3
|
-
const labs = require('../../../shared/labs');
|
|
4
3
|
const customThemeSettings = require('../custom-theme-settings');
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -11,25 +10,19 @@ module.exports = {
|
|
|
11
10
|
activateFromBoot: async (themeName, theme, checkedTheme) => {
|
|
12
11
|
debug('Activating theme (method A on boot)', themeName);
|
|
13
12
|
// TODO: probably a better place for this to happen - after successful activation / when reloading site?
|
|
14
|
-
|
|
15
|
-
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
16
|
-
}
|
|
13
|
+
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
17
14
|
await bridge.activateTheme(theme, checkedTheme);
|
|
18
15
|
},
|
|
19
16
|
activateFromAPI: async (themeName, theme, checkedTheme) => {
|
|
20
17
|
debug('Activating theme (method B on API "activate")', themeName);
|
|
21
18
|
// TODO: probably a better place for this to happen - after successful activation / when reloading site?
|
|
22
|
-
|
|
23
|
-
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
24
|
-
}
|
|
19
|
+
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
25
20
|
await bridge.activateTheme(theme, checkedTheme);
|
|
26
21
|
},
|
|
27
22
|
activateFromAPIOverride: async (themeName, theme, checkedTheme) => {
|
|
28
23
|
debug('Activating theme (method C on API "override")', themeName);
|
|
29
24
|
// TODO: probably a better place for this to happen - after successful activation / when reloading site?
|
|
30
|
-
|
|
31
|
-
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
32
|
-
}
|
|
25
|
+
await customThemeSettings.api.activateTheme(themeName, checkedTheme);
|
|
33
26
|
await bridge.activateTheme(theme, checkedTheme);
|
|
34
27
|
}
|
|
35
28
|
};
|
|
@@ -6,12 +6,6 @@ const installer = require('./installer');
|
|
|
6
6
|
|
|
7
7
|
const settingsCache = require('../../../shared/settings-cache');
|
|
8
8
|
|
|
9
|
-
// Needed for theme re-activation after customThemeSettings flag is toggled
|
|
10
|
-
// @TODO: remove when customThemeSettings flag is removed
|
|
11
|
-
const labs = require('../../../shared/labs');
|
|
12
|
-
const events = require('../../lib/common/events');
|
|
13
|
-
let _lastLabsValue;
|
|
14
|
-
|
|
15
9
|
module.exports = {
|
|
16
10
|
/*
|
|
17
11
|
* Load the currently active theme
|
|
@@ -19,21 +13,6 @@ module.exports = {
|
|
|
19
13
|
init: async () => {
|
|
20
14
|
const themeName = settingsCache.get('active_theme');
|
|
21
15
|
|
|
22
|
-
/**
|
|
23
|
-
* When customThemeSettings labs flag is toggled we need to re-validate and activate
|
|
24
|
-
* the active theme so that it's settings are read and synced
|
|
25
|
-
*
|
|
26
|
-
* @TODO: remove when customThemeSettings labs flag is removed
|
|
27
|
-
*/
|
|
28
|
-
_lastLabsValue = labs.isSet('customThemeSettings');
|
|
29
|
-
events.on('settings.labs.edited', () => {
|
|
30
|
-
if (labs.isSet('customThemeSettings') !== _lastLabsValue) {
|
|
31
|
-
_lastLabsValue = labs.isSet('customThemeSettings');
|
|
32
|
-
|
|
33
|
-
activate.activate(settingsCache.get('active_theme'));
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
|
|
37
16
|
return activate.loadAndActivate(themeName);
|
|
38
17
|
},
|
|
39
18
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const {extract} = require('oembed-parser');
|
|
2
2
|
const logging = require('@tryghost/logging');
|
|
3
|
-
const labs = require('../../shared/labs');
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* @typedef {import('./oembed').ICustomProvider} ICustomProvider
|
|
@@ -43,7 +42,7 @@ class TwitterOEmbedProvider {
|
|
|
43
42
|
/** @type {object} */
|
|
44
43
|
const oembedData = await extract(url.href);
|
|
45
44
|
|
|
46
|
-
if (this.dependencies.config.bearerToken
|
|
45
|
+
if (this.dependencies.config.bearerToken) {
|
|
47
46
|
const query = {
|
|
48
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'],
|
|
49
48
|
'media.fields': ['duration_ms', 'height', 'media_key', 'preview_image_url', 'type', 'url', 'width', 'public_metrics', 'alt_text'],
|
|
@@ -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.32%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%2C%22propagation%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" />
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
</style>
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
<link rel="stylesheet" href="assets/vendor.min-
|
|
44
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
43
|
+
<link rel="stylesheet" href="assets/vendor.min-0e0334a490951ab747706621f9ccd8b6.css">
|
|
44
|
+
<link rel="stylesheet" href="assets/ghost.min-2d5f48403647d1e11805691cc7ad0835.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-45e83041aeba4ea7b184f669b20a2b23.js"></script>
|
|
63
|
+
<script src="assets/ghost.min-7535b70693bcefde1665bdf621087cbe.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.32%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%2C%22propagation%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" />
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
</style>
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
<link rel="stylesheet" href="assets/vendor.min-
|
|
44
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
43
|
+
<link rel="stylesheet" href="assets/vendor.min-0e0334a490951ab747706621f9ccd8b6.css">
|
|
44
|
+
<link rel="stylesheet" href="assets/ghost.min-2d5f48403647d1e11805691cc7ad0835.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-45e83041aeba4ea7b184f669b20a2b23.js"></script>
|
|
63
|
+
<script src="assets/ghost.min-7535b70693bcefde1665bdf621087cbe.js"></script>
|
|
64
64
|
|
|
65
65
|
</body>
|
|
66
66
|
</html>
|
|
@@ -4,7 +4,6 @@ const apiMw = require('../../middleware');
|
|
|
4
4
|
const mw = require('./middleware');
|
|
5
5
|
|
|
6
6
|
const shared = require('../../../shared');
|
|
7
|
-
const labs = require('../../../../../shared/labs');
|
|
8
7
|
|
|
9
8
|
module.exports = function apiRoutes() {
|
|
10
9
|
const router = express.Router('canary admin');
|
|
@@ -238,14 +237,12 @@ module.exports = function apiRoutes() {
|
|
|
238
237
|
|
|
239
238
|
// ## media
|
|
240
239
|
router.post('/media/upload',
|
|
241
|
-
labs.enabledMiddleware('mediaAPI'),
|
|
242
240
|
mw.authAdminApi,
|
|
243
241
|
apiMw.upload.media('file', 'thumbnail'),
|
|
244
242
|
apiMw.upload.mediaValidation({type: 'media'}),
|
|
245
243
|
http(api.media.upload)
|
|
246
244
|
);
|
|
247
245
|
router.put('/media/thumbnail/upload',
|
|
248
|
-
labs.enabledMiddleware('mediaAPI'),
|
|
249
246
|
mw.authAdminApi,
|
|
250
247
|
apiMw.upload.single('file'),
|
|
251
248
|
apiMw.upload.validation({type: 'images'}),
|
|
@@ -254,7 +251,6 @@ module.exports = function apiRoutes() {
|
|
|
254
251
|
|
|
255
252
|
// ## files
|
|
256
253
|
router.post('/files/upload',
|
|
257
|
-
labs.enabledMiddleware('filesAPI'),
|
|
258
254
|
mw.authAdminApi,
|
|
259
255
|
apiMw.upload.single('file'),
|
|
260
256
|
http(api.files.upload)
|
|
@@ -303,8 +299,8 @@ module.exports = function apiRoutes() {
|
|
|
303
299
|
router.del('/snippets/:id', mw.authAdminApi, http(api.snippets.destroy));
|
|
304
300
|
|
|
305
301
|
// ## Custom theme settings
|
|
306
|
-
router.get('/custom_theme_settings', mw.authAdminApi,
|
|
307
|
-
router.put('/custom_theme_settings', mw.authAdminApi,
|
|
302
|
+
router.get('/custom_theme_settings', mw.authAdminApi, http(api.customThemeSettings.browse));
|
|
303
|
+
router.put('/custom_theme_settings', mw.authAdminApi, http(api.customThemeSettings.edit));
|
|
308
304
|
|
|
309
305
|
return router;
|
|
310
306
|
};
|
|
@@ -127,8 +127,8 @@
|
|
|
127
127
|
"emailAnalytics": true
|
|
128
128
|
},
|
|
129
129
|
"portal": {
|
|
130
|
-
"url": "https://unpkg.com/@tryghost/portal@~1.
|
|
131
|
-
"version": "1.
|
|
130
|
+
"url": "https://unpkg.com/@tryghost/portal@~1.13.0/umd/portal.min.js",
|
|
131
|
+
"version": "1.13"
|
|
132
132
|
},
|
|
133
133
|
"tenor": {
|
|
134
134
|
"publicReadOnlyApiKey": null,
|
|
@@ -32,7 +32,17 @@
|
|
|
32
32
|
},
|
|
33
33
|
"media": {
|
|
34
34
|
"extensions": [".mp4",".webm", ".ogv", ".mp3", ".wav", ".ogg"],
|
|
35
|
-
"contentTypes": [
|
|
35
|
+
"contentTypes": [
|
|
36
|
+
"video/mp4",
|
|
37
|
+
"video/webm",
|
|
38
|
+
"video/ogg",
|
|
39
|
+
"audio/mpeg",
|
|
40
|
+
"audio/vnd.wav",
|
|
41
|
+
"audio/wave",
|
|
42
|
+
"audio/wav",
|
|
43
|
+
"audio/x-wav",
|
|
44
|
+
"audio/ogg"
|
|
45
|
+
]
|
|
36
46
|
},
|
|
37
47
|
"thumbnails": {
|
|
38
48
|
"extensions": [".jpg", ".jpeg", ".gif", ".png", ".svg", ".svgz", ".ico", ".webp"],
|
package/core/shared/labs.js
CHANGED
|
@@ -15,17 +15,6 @@ const messages = {
|
|
|
15
15
|
|
|
16
16
|
// flags in this list always return `true`, allows quick global enable prior to full flag removal
|
|
17
17
|
const GA_FEATURES = [
|
|
18
|
-
'customThemeSettings',
|
|
19
|
-
'nftCard',
|
|
20
|
-
'calloutCard',
|
|
21
|
-
'videoCard',
|
|
22
|
-
'accordionCard',
|
|
23
|
-
'productCard',
|
|
24
|
-
'richTwitterNewsletters',
|
|
25
|
-
'audioCard',
|
|
26
|
-
'mediaAPI',
|
|
27
|
-
'membersAutoLogin',
|
|
28
|
-
'filesAPI'
|
|
29
18
|
];
|
|
30
19
|
|
|
31
20
|
// NOTE: this allowlist is meant to be used to filter out any unexpected
|
|
@@ -40,10 +29,8 @@ const ALPHA_FEATURES = [
|
|
|
40
29
|
'membersActivity',
|
|
41
30
|
'cardSettingsPanel',
|
|
42
31
|
'urlCache',
|
|
43
|
-
'fileCard',
|
|
44
32
|
'beforeAfterCard',
|
|
45
|
-
'tweetGridCard'
|
|
46
|
-
'headerCard'
|
|
33
|
+
'tweetGridCard'
|
|
47
34
|
];
|
|
48
35
|
|
|
49
36
|
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.32.1",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@nexes/nql": "0.6.0",
|
|
57
57
|
"@sentry/node": "6.16.1",
|
|
58
|
-
"@tryghost/adapter-manager": "0.2.
|
|
58
|
+
"@tryghost/adapter-manager": "0.2.26",
|
|
59
59
|
"@tryghost/admin-api-schema": "2.6.1",
|
|
60
60
|
"@tryghost/bookshelf-plugins": "0.3.5",
|
|
61
61
|
"@tryghost/bootstrap-socket": "0.2.15",
|
|
@@ -69,32 +69,32 @@
|
|
|
69
69
|
"@tryghost/errors": "1.2.0",
|
|
70
70
|
"@tryghost/express-dynamic-redirects": "0.2.2",
|
|
71
71
|
"@tryghost/helpers": "1.1.54",
|
|
72
|
-
"@tryghost/image-transform": "1.0.
|
|
72
|
+
"@tryghost/image-transform": "1.0.26",
|
|
73
73
|
"@tryghost/job-manager": "0.8.17",
|
|
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.15.11",
|
|
77
77
|
"@tryghost/kg-markdown-html-renderer": "5.1.0",
|
|
78
78
|
"@tryghost/kg-mobiledoc-html-renderer": "5.3.1",
|
|
79
|
-
"@tryghost/limit-service": "1.0.
|
|
79
|
+
"@tryghost/limit-service": "1.0.8",
|
|
80
80
|
"@tryghost/logging": "2.0.0",
|
|
81
81
|
"@tryghost/magic-link": "1.0.14",
|
|
82
|
-
"@tryghost/members-api": "2.8.
|
|
82
|
+
"@tryghost/members-api": "2.8.8",
|
|
83
83
|
"@tryghost/members-csv": "1.2.0",
|
|
84
84
|
"@tryghost/members-importer": "0.3.5",
|
|
85
85
|
"@tryghost/members-offers": "0.10.3",
|
|
86
86
|
"@tryghost/members-ssr": "1.0.16",
|
|
87
87
|
"@tryghost/metrics": "1.0.1",
|
|
88
|
-
"@tryghost/minifier": "0.1.
|
|
88
|
+
"@tryghost/minifier": "0.1.9",
|
|
89
89
|
"@tryghost/mw-error-handler": "0.1.1",
|
|
90
90
|
"@tryghost/mw-session-from-token": "0.1.26",
|
|
91
91
|
"@tryghost/nodemailer": "0.3.8",
|
|
92
|
-
"@tryghost/package-json": "1.0.
|
|
92
|
+
"@tryghost/package-json": "1.0.14",
|
|
93
93
|
"@tryghost/promise": "0.1.13",
|
|
94
94
|
"@tryghost/request": "0.1.10",
|
|
95
95
|
"@tryghost/root-utils": "0.3.7",
|
|
96
96
|
"@tryghost/security": "0.2.13",
|
|
97
|
-
"@tryghost/session-service": "0.1.
|
|
97
|
+
"@tryghost/session-service": "0.1.36",
|
|
98
98
|
"@tryghost/settings-path-manager": "0.1.2",
|
|
99
99
|
"@tryghost/social-urls": "0.1.27",
|
|
100
100
|
"@tryghost/string": "0.1.21",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"cookie-session": "1.4.0",
|
|
121
121
|
"cors": "2.8.5",
|
|
122
122
|
"downsize": "0.0.8",
|
|
123
|
-
"express": "4.17.
|
|
123
|
+
"express": "4.17.2",
|
|
124
124
|
"express-brute": "1.0.1",
|
|
125
125
|
"express-hbs": "2.4.0",
|
|
126
126
|
"express-jwt": "6.1.0",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"ghost-storage-base": "1.0.0",
|
|
132
132
|
"glob": "7.2.0",
|
|
133
133
|
"got": "9.6.0",
|
|
134
|
-
"gscan": "4.
|
|
134
|
+
"gscan": "4.20.2",
|
|
135
135
|
"html-to-text": "5.1.1",
|
|
136
136
|
"image-size": "1.0.0",
|
|
137
137
|
"intl": "1.2.5",
|
|
@@ -144,17 +144,17 @@
|
|
|
144
144
|
"knex": "0.21.21",
|
|
145
145
|
"knex-migrator": "4.1.3",
|
|
146
146
|
"lodash": "4.17.21",
|
|
147
|
-
"luxon": "2.
|
|
147
|
+
"luxon": "2.3.0",
|
|
148
148
|
"mailgun-js": "0.22.0",
|
|
149
|
-
"metascraper": "5.25.
|
|
150
|
-
"metascraper-author": "5.25.
|
|
151
|
-
"metascraper-description": "5.25.
|
|
152
|
-
"metascraper-image": "5.25.
|
|
153
|
-
"metascraper-logo": "5.25.
|
|
154
|
-
"metascraper-logo-favicon": "5.25.
|
|
155
|
-
"metascraper-publisher": "5.25.
|
|
156
|
-
"metascraper-title": "5.25.
|
|
157
|
-
"metascraper-url": "5.25.
|
|
149
|
+
"metascraper": "5.25.7",
|
|
150
|
+
"metascraper-author": "5.25.7",
|
|
151
|
+
"metascraper-description": "5.25.7",
|
|
152
|
+
"metascraper-image": "5.25.7",
|
|
153
|
+
"metascraper-logo": "5.25.7",
|
|
154
|
+
"metascraper-logo-favicon": "5.25.7",
|
|
155
|
+
"metascraper-publisher": "5.25.7",
|
|
156
|
+
"metascraper-title": "5.25.7",
|
|
157
|
+
"metascraper-url": "5.25.7",
|
|
158
158
|
"moment": "2.24.0",
|
|
159
159
|
"moment-timezone": "0.5.23",
|
|
160
160
|
"multer": "1.4.4",
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"nconf": "0.11.3",
|
|
163
163
|
"node-jose": "2.0.0",
|
|
164
164
|
"oembed-parser": "1.4.9",
|
|
165
|
-
"passport": "0.5.
|
|
165
|
+
"passport": "0.5.2",
|
|
166
166
|
"passport-google-oauth": "2.0.0",
|
|
167
167
|
"path-match": "1.2.4",
|
|
168
168
|
"probe-image-size": "5.0.0",
|
|
@@ -175,19 +175,19 @@
|
|
|
175
175
|
"xml": "1.0.1"
|
|
176
176
|
},
|
|
177
177
|
"optionalDependencies": {
|
|
178
|
-
"@tryghost/html-to-mobiledoc": "1.
|
|
178
|
+
"@tryghost/html-to-mobiledoc": "1.8.2",
|
|
179
179
|
"sqlite3": "5.0.2"
|
|
180
180
|
},
|
|
181
181
|
"devDependencies": {
|
|
182
182
|
"@ethanresnick/chai-jest-snapshot": "3.0.0",
|
|
183
183
|
"@lodder/grunt-postcss": "3.1.1",
|
|
184
|
-
"c8": "7.
|
|
184
|
+
"c8": "7.11.0",
|
|
185
185
|
"chai": "4.3.4",
|
|
186
186
|
"coffeescript": "2.6.1",
|
|
187
|
-
"cssnano": "5.0.
|
|
187
|
+
"cssnano": "5.0.14",
|
|
188
188
|
"eslint": "7.32.0",
|
|
189
189
|
"eslint-plugin-ghost": "2.11.0",
|
|
190
|
-
"expect": "27.4.
|
|
190
|
+
"expect": "27.4.6",
|
|
191
191
|
"grunt": "1.4.1",
|
|
192
192
|
"grunt-bg-shell": "2.3.3",
|
|
193
193
|
"grunt-contrib-clean": "2.0.0",
|