ghost 4.36.1 → 4.37.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/.c8rc.json +10 -0
- package/core/boot.js +7 -0
- package/core/bridge.js +2 -6
- package/core/built/assets/{ghost-dark-abde961aa8d00ab2696e3ceb0a2ca24b.css → ghost-dark-d54723f7267e66fa2595f897076e86c2.css} +1 -1
- package/core/built/assets/{ghost.min-46e075517808b53170b8d9ab0b96d796.css → ghost.min-02a5f8954bd85fe28817b8c8b111b8aa.css} +1 -1
- package/core/built/assets/{ghost.min-f10401ea8fdfee5dcc88cf4dff785a88.js → ghost.min-c1938f6ee696bf08bd6bf93cac341ea2.js} +196 -192
- package/core/built/assets/icons/event-changed-subscription.svg +6 -0
- package/core/built/assets/icons/get-started-import.svg +13 -0
- package/core/built/assets/icons/get-started-members.svg +5 -5
- package/core/built/assets/img/get-started-995c36b9ede90bb3777c83751e798ef7.jpg +0 -0
- package/core/built/assets/{vendor.min-3aa87b4d7b43675386a96b869ed00493.js → vendor.min-6dc30be68238b5c55df0cdc1f2dc8b8d.js} +63 -73
- package/core/frontend/helpers/excerpt.js +7 -4
- package/core/server/api/canary/authentication.js +2 -0
- package/core/server/api/canary/index.js +4 -0
- package/core/server/api/canary/tiers.js +123 -0
- package/core/server/api/canary/utils/serializers/input/index.js +4 -0
- package/core/server/api/canary/utils/serializers/input/tiers.js +36 -0
- package/core/server/api/canary/utils/serializers/output/index.js +4 -0
- package/core/server/api/canary/utils/serializers/output/members.js +5 -0
- package/core/server/api/canary/utils/serializers/output/tiers.js +210 -0
- package/core/server/api/canary/utils/validators/input/index.js +4 -0
- package/core/server/api/canary/utils/validators/input/tiers.js +6 -0
- package/core/server/api/v2/settings.js +2 -1
- package/core/server/data/migrations/init/1-create-tables.js +4 -1
- package/core/server/data/migrations/versions/4.37/2022-02-21-09-53-backfill-members-last-seen-at-column.js +31 -0
- package/core/server/data/schema/commands.js +19 -20
- package/core/server/data/schema/{default-settings.json → default-settings/default-settings.json} +0 -0
- package/core/server/data/schema/default-settings/index.js +6 -0
- package/core/server/services/auth/setup.js +12 -3
- package/core/server/services/members/config.js +0 -26
- package/core/server/services/members/middleware.js +1 -1
- package/core/server/services/members/service.js +8 -7
- package/core/server/services/route-settings/index.js +1 -1
- package/core/server/services/settings/index.js +2 -2
- package/core/server/services/stripe/config.js +37 -2
- 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/canary/admin/routes.js +7 -0
- package/core/shared/config/defaults.json +1 -0
- package/core/shared/config/overrides.json +1 -1
- package/core/shared/labs.js +4 -1
- package/package.json +35 -34
- package/yarn.lock +1039 -311
- package/core/built/assets/icons/event-filter-email-delivered.svg +0 -5
- package/core/built/assets/icons/event-filter-email-failed.svg +0 -6
- package/core/built/assets/icons/event-filter-email-opened.svg +0 -4
- package/core/built/assets/icons/event-filter-login.svg +0 -5
- package/core/built/assets/icons/event-filter-newsletter.svg +0 -4
- package/core/built/assets/icons/event-filter-payment.svg +0 -5
- package/core/built/assets/icons/event-filter-signup.svg +0 -4
- package/core/built/assets/icons/event-filter-subscription.svg +0 -7
- package/core/built/assets/icons/selected.svg +0 -3
|
@@ -198,7 +198,7 @@ const createSessionFromMagicLink = async function (req, res, next) {
|
|
|
198
198
|
|
|
199
199
|
const action = req.query.action;
|
|
200
200
|
|
|
201
|
-
if (action === 'signup' || action === 'signup-paid') {
|
|
201
|
+
if (action === 'signup' || action === 'signup-paid' || action === 'subscribe') {
|
|
202
202
|
let customRedirect = '';
|
|
203
203
|
const mostRecentActiveSubscription = subscriptions
|
|
204
204
|
.sort((a, b) => {
|
|
@@ -125,6 +125,13 @@ module.exports = {
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
module.exports.ssr = MembersSSR({
|
|
129
|
+
cookieSecure: urlUtils.isSSL(urlUtils.getSiteUrl()),
|
|
130
|
+
cookieKeys: [settingsCache.get('theme_session_secret')],
|
|
131
|
+
cookieName: 'ghost-members-ssr',
|
|
132
|
+
getMembersApi: () => module.exports.api
|
|
133
|
+
});
|
|
134
|
+
|
|
128
135
|
verificationTrigger = new VerificationTrigger({
|
|
129
136
|
configThreshold: _.get(config.get('hostSettings'), 'emailVerification.importThreshold'),
|
|
130
137
|
isVerified: () => config.get('hostSettings:emailVerification:verified') === true,
|
|
@@ -181,13 +188,7 @@ module.exports = {
|
|
|
181
188
|
return membersSettings;
|
|
182
189
|
},
|
|
183
190
|
|
|
184
|
-
ssr:
|
|
185
|
-
cookieSecure: urlUtils.isSSL(urlUtils.getSiteUrl()),
|
|
186
|
-
cookieKeys: [settingsCache.get('theme_session_secret')],
|
|
187
|
-
cookieName: 'ghost-members-ssr',
|
|
188
|
-
cookieCacheName: 'ghost-members-ssr-cache',
|
|
189
|
-
getMembersApi: () => module.exports.api
|
|
190
|
-
}),
|
|
191
|
+
ssr: null,
|
|
191
192
|
|
|
192
193
|
stripeConnect: require('./stripe-connect'),
|
|
193
194
|
|
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
|
22
22
|
type: 'routes',
|
|
23
23
|
extension: '.yaml',
|
|
24
24
|
destinationFolderPath: config.getContentPath('settings'),
|
|
25
|
-
sourceFolderPath: config.get('paths').
|
|
25
|
+
sourceFolderPath: config.get('paths').defaultRouteSettings
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
return await defaultSettingsManager.ensureSettingsFileExists();
|
|
@@ -6,8 +6,41 @@ const messages = {
|
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
// @TODO Refactor to a class w/ constructor
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} StripeURLConfig
|
|
12
|
+
* @prop {string} checkoutSessionSuccessUrl
|
|
13
|
+
* @prop {string} checkoutSessionCancelUrl
|
|
14
|
+
* @prop {string} checkoutSetupSessionSuccessUrl
|
|
15
|
+
* @prop {string} checkoutSetupSessionCancelUrl
|
|
16
|
+
*/
|
|
17
|
+
|
|
9
18
|
module.exports = {
|
|
10
19
|
getConfig(settings, config, urlUtils) {
|
|
20
|
+
/**
|
|
21
|
+
* @returns {StripeURLConfig}
|
|
22
|
+
*/
|
|
23
|
+
function getStripeUrlConfig() {
|
|
24
|
+
const siteUrl = urlUtils.getSiteUrl();
|
|
25
|
+
|
|
26
|
+
const checkoutSuccessUrl = new URL(siteUrl);
|
|
27
|
+
checkoutSuccessUrl.searchParams.set('stripe', 'success');
|
|
28
|
+
const checkoutCancelUrl = new URL(siteUrl);
|
|
29
|
+
checkoutCancelUrl.searchParams.set('stripe', 'cancel');
|
|
30
|
+
|
|
31
|
+
const billingSuccessUrl = new URL(siteUrl);
|
|
32
|
+
billingSuccessUrl.searchParams.set('stripe', 'billing-update-success');
|
|
33
|
+
const billingCancelUrl = new URL(siteUrl);
|
|
34
|
+
billingCancelUrl.searchParams.set('stripe', 'billing-update-cancel');
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
checkoutSessionSuccessUrl: checkoutSuccessUrl.href,
|
|
38
|
+
checkoutSessionCancelUrl: checkoutCancelUrl.href,
|
|
39
|
+
checkoutSetupSessionSuccessUrl: billingSuccessUrl.href,
|
|
40
|
+
checkoutSetupSessionCancelUrl: billingCancelUrl.href
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
11
44
|
/**
|
|
12
45
|
* @param {'direct' | 'connect'} type - The "type" of keys to fetch from settings
|
|
13
46
|
* @returns {{publicKey: string, secretKey: string} | null}
|
|
@@ -61,9 +94,11 @@ module.exports = {
|
|
|
61
94
|
|
|
62
95
|
const webhookHandlerUrl = new URL('members/webhooks/stripe/', urlUtils.getSiteUrl());
|
|
63
96
|
|
|
97
|
+
const urls = getStripeUrlConfig();
|
|
98
|
+
|
|
64
99
|
return {
|
|
65
|
-
|
|
66
|
-
|
|
100
|
+
...keys,
|
|
101
|
+
...urls,
|
|
67
102
|
enablePromoCodes: config.get('enableStripePromoCodes'),
|
|
68
103
|
webhookSecret: webhookSecret,
|
|
69
104
|
webhookHandlerUrl: webhookHandlerUrl.href
|
|
@@ -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.37%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-2c8ad32b7960bb605ebc20097fee5ebd.css">
|
|
41
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
41
|
+
<link rel="stylesheet" href="assets/ghost.min-02a5f8954bd85fe28817b8c8b111b8aa.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-6dc30be68238b5c55df0cdc1f2dc8b8d.js"></script>
|
|
60
|
+
<script src="assets/ghost.min-c1938f6ee696bf08bd6bf93cac341ea2.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%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.37%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-2c8ad32b7960bb605ebc20097fee5ebd.css">
|
|
41
|
-
<link rel="stylesheet" href="assets/ghost.min-
|
|
41
|
+
<link rel="stylesheet" href="assets/ghost.min-02a5f8954bd85fe28817b8c8b111b8aa.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-6dc30be68238b5c55df0cdc1f2dc8b8d.js"></script>
|
|
60
|
+
<script src="assets/ghost.min-c1938f6ee696bf08bd6bf93cac341ea2.js"></script>
|
|
61
61
|
|
|
62
62
|
</body>
|
|
63
63
|
</html>
|
|
@@ -88,11 +88,18 @@ module.exports = function apiRoutes() {
|
|
|
88
88
|
router.del('/tags/:id', mw.authAdminApi, http(api.tags.destroy));
|
|
89
89
|
|
|
90
90
|
// Products
|
|
91
|
+
// TODO Remove
|
|
91
92
|
router.get('/products', mw.authAdminApi, http(api.products.browse));
|
|
92
93
|
router.post('/products', mw.authAdminApi, http(api.products.add));
|
|
93
94
|
router.get('/products/:id', mw.authAdminApi, http(api.products.read));
|
|
94
95
|
router.put('/products/:id', mw.authAdminApi, http(api.products.edit));
|
|
95
96
|
|
|
97
|
+
// Tiers
|
|
98
|
+
router.get('/tiers', mw.authAdminApi, http(api.tiers.browse));
|
|
99
|
+
router.post('/tiers', mw.authAdminApi, http(api.tiers.add));
|
|
100
|
+
router.get('/tiers/:id', mw.authAdminApi, http(api.tiers.read));
|
|
101
|
+
router.put('/tiers/:id', mw.authAdminApi, http(api.tiers.edit));
|
|
102
|
+
|
|
96
103
|
// ## Members
|
|
97
104
|
router.get('/members', mw.authAdminApi, http(api.members.browse));
|
|
98
105
|
router.post('/members', mw.authAdminApi, http(api.members.add));
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"helperTemplates": "core/frontend/helpers/tpl/",
|
|
7
7
|
"adminViews": "core/server/web/admin/views/",
|
|
8
8
|
"defaultViews": "core/server/views/",
|
|
9
|
-
"
|
|
9
|
+
"defaultRouteSettings": "core/server/services/route-settings/",
|
|
10
10
|
"internalAppPath": "core/frontend/apps/",
|
|
11
11
|
"internalAdaptersPath": "core/server/adapters/",
|
|
12
12
|
"migrationPath": "core/server/data/migrations",
|
package/core/shared/labs.js
CHANGED
|
@@ -33,7 +33,10 @@ const ALPHA_FEATURES = [
|
|
|
33
33
|
'membersActivityFeed',
|
|
34
34
|
'improvedOnboarding',
|
|
35
35
|
'tierWelcomePages',
|
|
36
|
-
'tierName'
|
|
36
|
+
'tierName',
|
|
37
|
+
'membersTableStatus',
|
|
38
|
+
'membersLastSeenFilter',
|
|
39
|
+
'selectablePortalLinks'
|
|
37
40
|
];
|
|
38
41
|
|
|
39
42
|
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.37.0",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -29,15 +29,16 @@
|
|
|
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
|
|
32
|
+
"test:unit": "c8 mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/unit' --timeout=2000",
|
|
33
33
|
"test:integration": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/integration' --timeout=5000",
|
|
34
34
|
"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
35
|
"test:regression": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000",
|
|
36
|
+
"test:browser": "playwright test --browser=all test/e2e-browser",
|
|
37
|
+
"test:ci": "yarn test:e2e -b && yarn test:integration -b && yarn test:regression -b",
|
|
36
38
|
"test:unit:slow": "yarn test:unit --reporter=mocha-slow-test-reporter",
|
|
37
39
|
"test:int:slow": "yarn test:integration --reporter=mocha-slow-test-reporter",
|
|
38
40
|
"test:e2e:slow": "yarn test:e2e --reporter=mocha-slow-test-reporter",
|
|
39
41
|
"test:reg:slow": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000 --reporter=mocha-slow-test-reporter",
|
|
40
|
-
"cov:unit": "c8 report --reporter text --reporter html",
|
|
41
42
|
"lint:server": "eslint --ignore-path .eslintignore 'core/server/**/*.js' 'core/*.js' '*.js'",
|
|
42
43
|
"lint:shared": "eslint --ignore-path .eslintignore 'core/shared/**/*.js'",
|
|
43
44
|
"lint:frontend": "eslint --ignore-path .eslintignore 'core/frontend/**/*.js'",
|
|
@@ -54,21 +55,21 @@
|
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
57
|
"@nexes/nql": "0.6.0",
|
|
57
|
-
"@sentry/node": "6.
|
|
58
|
+
"@sentry/node": "6.18.0",
|
|
58
59
|
"@tryghost/adapter-manager": "0.2.27",
|
|
59
|
-
"@tryghost/admin-api-schema": "2.
|
|
60
|
-
"@tryghost/bookshelf-plugins": "0.3.
|
|
60
|
+
"@tryghost/admin-api-schema": "2.10.0",
|
|
61
|
+
"@tryghost/bookshelf-plugins": "0.3.9",
|
|
61
62
|
"@tryghost/bootstrap-socket": "0.2.16",
|
|
62
63
|
"@tryghost/color-utils": "0.1.7",
|
|
63
64
|
"@tryghost/config-url-helpers": "0.1.4",
|
|
64
65
|
"@tryghost/constants": "1.0.1",
|
|
65
66
|
"@tryghost/custom-theme-settings-service": "0.3.1",
|
|
66
67
|
"@tryghost/database-info": "0.1.0",
|
|
67
|
-
"@tryghost/debug": "0.1.
|
|
68
|
+
"@tryghost/debug": "0.1.13",
|
|
68
69
|
"@tryghost/email-analytics-provider-mailgun": "1.0.7",
|
|
69
70
|
"@tryghost/email-analytics-service": "1.0.5",
|
|
70
|
-
"@tryghost/errors": "1.2.
|
|
71
|
-
"@tryghost/express-dynamic-redirects": "0.2.
|
|
71
|
+
"@tryghost/errors": "1.2.3",
|
|
72
|
+
"@tryghost/express-dynamic-redirects": "0.2.5",
|
|
72
73
|
"@tryghost/helpers": "1.1.56",
|
|
73
74
|
"@tryghost/image-transform": "1.0.27",
|
|
74
75
|
"@tryghost/job-manager": "0.8.19",
|
|
@@ -78,39 +79,39 @@
|
|
|
78
79
|
"@tryghost/kg-markdown-html-renderer": "5.1.4",
|
|
79
80
|
"@tryghost/kg-mobiledoc-html-renderer": "5.3.4",
|
|
80
81
|
"@tryghost/limit-service": "1.0.9",
|
|
81
|
-
"@tryghost/logging": "2.0.
|
|
82
|
-
"@tryghost/magic-link": "1.0.
|
|
83
|
-
"@tryghost/members-api": "
|
|
84
|
-
"@tryghost/members-importer": "0.5.
|
|
85
|
-
"@tryghost/members-offers": "0.10.
|
|
86
|
-
"@tryghost/members-ssr": "1.0.
|
|
87
|
-
"@tryghost/members-stripe-service": "0.
|
|
82
|
+
"@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",
|
|
88
89
|
"@tryghost/metrics": "1.0.5",
|
|
89
90
|
"@tryghost/minifier": "0.1.10",
|
|
90
91
|
"@tryghost/mw-error-handler": "0.1.2",
|
|
91
92
|
"@tryghost/mw-session-from-token": "0.1.27",
|
|
92
|
-
"@tryghost/nodemailer": "0.3.
|
|
93
|
+
"@tryghost/nodemailer": "0.3.13",
|
|
93
94
|
"@tryghost/package-json": "1.0.15",
|
|
94
95
|
"@tryghost/promise": "0.1.14",
|
|
95
|
-
"@tryghost/request": "0.1.
|
|
96
|
+
"@tryghost/request": "0.1.15",
|
|
96
97
|
"@tryghost/root-utils": "0.3.10",
|
|
97
98
|
"@tryghost/security": "0.2.14",
|
|
98
99
|
"@tryghost/session-service": "0.1.37",
|
|
99
100
|
"@tryghost/settings-path-manager": "0.1.3",
|
|
100
101
|
"@tryghost/social-urls": "0.1.28",
|
|
101
102
|
"@tryghost/string": "0.1.22",
|
|
102
|
-
"@tryghost/tpl": "0.1.
|
|
103
|
+
"@tryghost/tpl": "0.1.12",
|
|
103
104
|
"@tryghost/update-check-service": "0.3.1",
|
|
104
105
|
"@tryghost/url-utils": "2.0.5",
|
|
105
|
-
"@tryghost/validator": "0.1.
|
|
106
|
-
"@tryghost/verification-trigger": "0.1.
|
|
107
|
-
"@tryghost/version": "0.1.
|
|
106
|
+
"@tryghost/validator": "0.1.13",
|
|
107
|
+
"@tryghost/verification-trigger": "0.1.4",
|
|
108
|
+
"@tryghost/version": "0.1.11",
|
|
108
109
|
"@tryghost/vhost-middleware": "1.0.21",
|
|
109
110
|
"@tryghost/zip": "1.1.19",
|
|
110
111
|
"amperize": "0.6.1",
|
|
111
112
|
"analytics-node": "6.0.0",
|
|
112
113
|
"bluebird": "3.7.2",
|
|
113
|
-
"body-parser": "1.19.
|
|
114
|
+
"body-parser": "1.19.2",
|
|
114
115
|
"bookshelf": "1.2.0",
|
|
115
116
|
"bookshelf-relations": "2.3.0",
|
|
116
117
|
"brute-knex": "4.0.1",
|
|
@@ -122,14 +123,14 @@
|
|
|
122
123
|
"cookie-session": "1.4.0",
|
|
123
124
|
"cors": "2.8.5",
|
|
124
125
|
"downsize": "0.0.8",
|
|
125
|
-
"express": "4.17.
|
|
126
|
+
"express": "4.17.3",
|
|
126
127
|
"express-brute": "1.0.1",
|
|
127
128
|
"express-hbs": "2.4.0",
|
|
128
|
-
"express-jwt": "6.1.
|
|
129
|
+
"express-jwt": "6.1.1",
|
|
129
130
|
"express-lazy-router": "1.0.4",
|
|
130
131
|
"express-query-boolean": "2.0.0",
|
|
131
132
|
"express-session": "1.17.2",
|
|
132
|
-
"fs-extra": "10.0.
|
|
133
|
+
"fs-extra": "10.0.1",
|
|
133
134
|
"ghost-storage-base": "1.0.0",
|
|
134
135
|
"glob": "7.2.0",
|
|
135
136
|
"got": "9.6.0",
|
|
@@ -146,7 +147,7 @@
|
|
|
146
147
|
"knex": "0.21.21",
|
|
147
148
|
"knex-migrator": "4.1.3",
|
|
148
149
|
"lodash": "4.17.21",
|
|
149
|
-
"luxon": "2.3.
|
|
150
|
+
"luxon": "2.3.1",
|
|
150
151
|
"mailgun-js": "0.22.0",
|
|
151
152
|
"metascraper": "5.25.8",
|
|
152
153
|
"metascraper-author": "5.25.8",
|
|
@@ -177,18 +178,18 @@
|
|
|
177
178
|
"xml": "1.0.1"
|
|
178
179
|
},
|
|
179
180
|
"optionalDependencies": {
|
|
180
|
-
"@tryghost/html-to-mobiledoc": "1.8.
|
|
181
|
+
"@tryghost/html-to-mobiledoc": "1.8.5",
|
|
181
182
|
"sqlite3": "5.0.2"
|
|
182
183
|
},
|
|
183
184
|
"devDependencies": {
|
|
184
185
|
"@lodder/grunt-postcss": "3.1.1",
|
|
185
|
-
"@
|
|
186
|
-
"@tryghost/
|
|
186
|
+
"@playwright/test": "1.19.1",
|
|
187
|
+
"@tryghost/express-test": "0.6.0",
|
|
187
188
|
"c8": "7.11.0",
|
|
188
189
|
"coffeescript": "2.6.1",
|
|
189
190
|
"cssnano": "5.0.17",
|
|
190
|
-
"eslint": "8.
|
|
191
|
-
"eslint-plugin-ghost": "2.
|
|
191
|
+
"eslint": "8.9.0",
|
|
192
|
+
"eslint-plugin-ghost": "2.13.0",
|
|
192
193
|
"grunt": "1.4.1",
|
|
193
194
|
"grunt-bg-shell": "2.3.3",
|
|
194
195
|
"grunt-contrib-clean": "2.0.0",
|
|
@@ -201,7 +202,7 @@
|
|
|
201
202
|
"grunt-subgrunt": "1.3.0",
|
|
202
203
|
"grunt-update-submodules": "0.4.1",
|
|
203
204
|
"jwks-rsa": "2.0.5",
|
|
204
|
-
"mocha": "9.2.
|
|
205
|
+
"mocha": "9.2.1",
|
|
205
206
|
"mocha-slow-test-reporter": "0.1.2",
|
|
206
207
|
"mock-knex": "0.4.10",
|
|
207
208
|
"nock": "13.2.4",
|
|
@@ -214,7 +215,7 @@
|
|
|
214
215
|
"tmp": "0.2.1"
|
|
215
216
|
},
|
|
216
217
|
"resolutions": {
|
|
217
|
-
"@tryghost/logging": "2.0.
|
|
218
|
+
"@tryghost/logging": "2.0.4",
|
|
218
219
|
"moment": "2.24.0",
|
|
219
220
|
"moment-timezone": "0.5.23"
|
|
220
221
|
}
|