ghost 4.29.0 → 4.30.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/core/boot.js +3 -5
- package/core/built/assets/{ghost-dark-b93e2e2dcc4c0e1efa981314f45f8cda.css → ghost-dark-1594d07a0716e0253a78234c8e42d765.css} +1 -1
- package/core/built/assets/{ghost.min-ba8ef5d16b8a6f9072564a368154df72.js → ghost.min-884660873d56fcc3d2a3b9fe94c9f022.js} +3 -3
- package/core/built/assets/{ghost.min-578a1b7e68d1f7ae0003ebe421b7c182.css → ghost.min-c21fea11c3f431994a8ee7c47a8ed145.css} +1 -1
- package/core/built/assets/icons/file-upload.svg +1 -1
- package/core/built/assets/{vendor.min-c450359ad46217cd48c00b277ae54a09.js → vendor.min-a2fd1e62ce6da8911fee8e812d8c6ceb.js} +62 -49
- package/core/frontend/services/theme-engine/i18n/i18n.js +11 -12
- package/core/frontend/services/theme-engine/i18n/index.js +1 -2
- package/core/frontend/services/theme-engine/i18n/theme-i18n.js +5 -4
- package/core/frontend/src/cards/css/audio.css +4 -2
- package/core/frontend/src/cards/css/bookmark.css +3 -2
- package/core/frontend/src/cards/css/button.css +4 -3
- package/core/frontend/src/cards/css/callout.css +4 -4
- package/core/frontend/src/cards/css/file.css +100 -47
- package/core/frontend/src/cards/css/nft.css +1 -7
- package/core/frontend/src/cards/css/product.css +24 -23
- package/core/frontend/src/cards/css/toggle.css +31 -22
- package/core/frontend/src/cards/css/video.css +103 -44
- package/core/frontend/src/cards/js/video.js +81 -13
- package/core/frontend/web/middleware/error-handler.js +2 -2
- package/core/frontend/web/site.js +2 -1
- package/core/server/api/canary/oembed.js +1 -2
- package/core/server/data/db/state-manager.js +5 -8
- package/core/server/lib/image/cached-image-size-from-url.js +3 -4
- package/core/server/lib/image/image-utils.js +2 -2
- package/core/server/lib/image/index.js +1 -2
- package/core/server/run-update-check.js +1 -13
- package/core/server/services/email-analytics/index.js +2 -4
- package/core/server/services/email-analytics/jobs/fetch-latest.js +2 -21
- package/core/server/services/integrations/integrations-service.js +2 -2
- package/core/server/services/invites/index.js +0 -2
- package/core/server/services/invites/invites.js +3 -3
- package/core/server/services/jobs/job-service.js +1 -1
- package/core/server/services/members/api.js +0 -1
- package/core/server/services/members/config.js +4 -7
- package/core/server/services/members/service.js +1 -4
- package/core/server/services/notifications/index.js +0 -2
- package/core/server/services/notifications/notifications.js +4 -5
- package/core/server/services/stripe/index.js +0 -2
- package/core/server/services/twitter-embed.js +2 -1
- package/core/server/web/admin/app.js +4 -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/app.js +3 -2
- package/core/server/web/api/canary/admin/app.js +4 -2
- package/core/server/web/api/canary/content/app.js +4 -2
- package/core/server/web/api/v2/admin/app.js +4 -2
- package/core/server/web/api/v2/content/app.js +4 -2
- package/core/server/web/api/v3/admin/app.js +4 -2
- package/core/server/web/api/v3/content/app.js +4 -2
- package/core/server/web/members/app.js +6 -4
- package/core/server/web/shared/middleware/index.js +0 -4
- package/core/shared/labs.js +2 -2
- package/package.json +17 -16
- package/yarn.lock +82 -65
- package/core/server/web/shared/middleware/error-handler.js +0 -224
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghost",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.30.0",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -55,29 +55,29 @@
|
|
|
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.25",
|
|
59
59
|
"@tryghost/admin-api-schema": "2.6.1",
|
|
60
60
|
"@tryghost/bookshelf-plugins": "0.3.5",
|
|
61
|
-
"@tryghost/bootstrap-socket": "0.2.
|
|
61
|
+
"@tryghost/bootstrap-socket": "0.2.15",
|
|
62
62
|
"@tryghost/color-utils": "0.1.5",
|
|
63
63
|
"@tryghost/config-url-helpers": "0.1.3",
|
|
64
64
|
"@tryghost/constants": "1.0.0",
|
|
65
65
|
"@tryghost/custom-theme-settings-service": "0.3.1",
|
|
66
66
|
"@tryghost/debug": "0.1.9",
|
|
67
|
-
"@tryghost/email-analytics-provider-mailgun": "1.0.
|
|
67
|
+
"@tryghost/email-analytics-provider-mailgun": "1.0.7",
|
|
68
68
|
"@tryghost/email-analytics-service": "1.0.5",
|
|
69
|
-
"@tryghost/errors": "1.0
|
|
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.
|
|
73
|
-
"@tryghost/job-manager": "0.8.
|
|
72
|
+
"@tryghost/image-transform": "1.0.25",
|
|
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.14.
|
|
76
|
+
"@tryghost/kg-default-cards": "5.14.7",
|
|
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.
|
|
80
|
-
"@tryghost/logging": "
|
|
79
|
+
"@tryghost/limit-service": "1.0.7",
|
|
80
|
+
"@tryghost/logging": "2.0.0",
|
|
81
81
|
"@tryghost/magic-link": "1.0.14",
|
|
82
82
|
"@tryghost/members-api": "2.8.6",
|
|
83
83
|
"@tryghost/members-csv": "1.2.0",
|
|
@@ -85,20 +85,21 @@
|
|
|
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.8",
|
|
89
|
+
"@tryghost/mw-error-handler": "0.1.1",
|
|
89
90
|
"@tryghost/mw-session-from-token": "0.1.26",
|
|
90
91
|
"@tryghost/nodemailer": "0.3.8",
|
|
91
|
-
"@tryghost/package-json": "1.0.
|
|
92
|
+
"@tryghost/package-json": "1.0.13",
|
|
92
93
|
"@tryghost/promise": "0.1.13",
|
|
93
94
|
"@tryghost/request": "0.1.10",
|
|
94
95
|
"@tryghost/root-utils": "0.3.7",
|
|
95
96
|
"@tryghost/security": "0.2.13",
|
|
96
|
-
"@tryghost/session-service": "0.1.
|
|
97
|
+
"@tryghost/session-service": "0.1.35",
|
|
97
98
|
"@tryghost/settings-path-manager": "0.1.2",
|
|
98
99
|
"@tryghost/social-urls": "0.1.27",
|
|
99
100
|
"@tryghost/string": "0.1.21",
|
|
100
101
|
"@tryghost/tpl": "0.1.8",
|
|
101
|
-
"@tryghost/update-check-service": "0.
|
|
102
|
+
"@tryghost/update-check-service": "0.3.0",
|
|
102
103
|
"@tryghost/url-utils": "2.0.4",
|
|
103
104
|
"@tryghost/validator": "0.1.9",
|
|
104
105
|
"@tryghost/version": "0.1.7",
|
|
@@ -130,7 +131,7 @@
|
|
|
130
131
|
"ghost-storage-base": "1.0.0",
|
|
131
132
|
"glob": "7.2.0",
|
|
132
133
|
"got": "9.6.0",
|
|
133
|
-
"gscan": "4.
|
|
134
|
+
"gscan": "4.19.0",
|
|
134
135
|
"html-to-text": "5.1.1",
|
|
135
136
|
"image-size": "1.0.0",
|
|
136
137
|
"intl": "1.2.5",
|
|
@@ -204,7 +205,7 @@
|
|
|
204
205
|
"mock-knex": "0.4.10",
|
|
205
206
|
"nock": "13.2.1",
|
|
206
207
|
"papaparse": "5.3.1",
|
|
207
|
-
"postcss": "8.4.
|
|
208
|
+
"postcss": "8.4.5",
|
|
208
209
|
"rewire": "5.0.0",
|
|
209
210
|
"should": "13.2.3",
|
|
210
211
|
"sinon": "11.1.2",
|
package/yarn.lock
CHANGED
|
@@ -1212,12 +1212,12 @@
|
|
|
1212
1212
|
resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz"
|
|
1213
1213
|
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
|
|
1214
1214
|
|
|
1215
|
-
"@tryghost/adapter-manager@0.2.
|
|
1216
|
-
version "0.2.
|
|
1217
|
-
resolved "https://registry.
|
|
1218
|
-
integrity sha512
|
|
1215
|
+
"@tryghost/adapter-manager@0.2.25":
|
|
1216
|
+
version "0.2.25"
|
|
1217
|
+
resolved "https://registry.yarnpkg.com/@tryghost/adapter-manager/-/adapter-manager-0.2.25.tgz#982517e833b31aab5cd3fddf985366aed6eaf594"
|
|
1218
|
+
integrity sha512-+mGb7A+srCAJBtz7+1/HjIR1s0NYa91IqezVlC5pove0Qt4myvCMueKHTgIl1qW2EFK1T52aEVngZSTHbCtkaQ==
|
|
1219
1219
|
dependencies:
|
|
1220
|
-
"@tryghost/errors" "^1.1.
|
|
1220
|
+
"@tryghost/errors" "^1.1.1"
|
|
1221
1221
|
|
|
1222
1222
|
"@tryghost/admin-api-schema@2.6.1":
|
|
1223
1223
|
version "2.6.1"
|
|
@@ -1317,12 +1317,12 @@
|
|
|
1317
1317
|
resolved "https://registry.npmjs.org/@tryghost/bookshelf-transaction-events/-/bookshelf-transaction-events-0.1.7.tgz"
|
|
1318
1318
|
integrity sha512-j1hbi+NPaUFhHYAVCWJoUmmIrnD5iSR3UP4nvYnYwCAHQ0Xu4Rc3+kIpdcrnSvwIEJNtVxNCaSarJTK/D/a0JQ==
|
|
1319
1319
|
|
|
1320
|
-
"@tryghost/bootstrap-socket@0.2.
|
|
1321
|
-
version "0.2.
|
|
1322
|
-
resolved "https://registry.yarnpkg.com/@tryghost/bootstrap-socket/-/bootstrap-socket-0.2.
|
|
1323
|
-
integrity sha512-
|
|
1320
|
+
"@tryghost/bootstrap-socket@0.2.15":
|
|
1321
|
+
version "0.2.15"
|
|
1322
|
+
resolved "https://registry.yarnpkg.com/@tryghost/bootstrap-socket/-/bootstrap-socket-0.2.15.tgz#02b6a3f1408acfd8df88f6a72e197c7e5ffc3bc2"
|
|
1323
|
+
integrity sha512-OSWF9JVjfoufUyDi5MTNJb/Zd10yferDSR3cdfxK6Nu/zc8cjzmlKgxtHtsUn7E/mLmERDt4iNk9hC4r1utcIg==
|
|
1324
1324
|
dependencies:
|
|
1325
|
-
"@tryghost/logging" "^
|
|
1325
|
+
"@tryghost/logging" "^2.0.0"
|
|
1326
1326
|
|
|
1327
1327
|
"@tryghost/bunyan-rotating-filestream@0.0.7", "@tryghost/bunyan-rotating-filestream@^0.0.7":
|
|
1328
1328
|
version "0.0.7"
|
|
@@ -1394,13 +1394,13 @@
|
|
|
1394
1394
|
"@elastic/elasticsearch" "^7.15.0"
|
|
1395
1395
|
"@tryghost/debug" "^0.1.9"
|
|
1396
1396
|
|
|
1397
|
-
"@tryghost/email-analytics-provider-mailgun@1.0.
|
|
1398
|
-
version "1.0.
|
|
1399
|
-
resolved "https://registry.yarnpkg.com/@tryghost/email-analytics-provider-mailgun/-/email-analytics-provider-mailgun-1.0.
|
|
1400
|
-
integrity sha512-
|
|
1397
|
+
"@tryghost/email-analytics-provider-mailgun@1.0.7":
|
|
1398
|
+
version "1.0.7"
|
|
1399
|
+
resolved "https://registry.yarnpkg.com/@tryghost/email-analytics-provider-mailgun/-/email-analytics-provider-mailgun-1.0.7.tgz#e8b0da0f9f137ad90b7eb8ee031be88a66811e06"
|
|
1400
|
+
integrity sha512-OD4spZ0FmRPcIL5+DXE5N+HV26eyIC39yZwXKoQTZFPfU7LvTbbF/hJOFXC/CK4+DT8gd5flXZ32v0o6FUIinA==
|
|
1401
1401
|
dependencies:
|
|
1402
1402
|
"@tryghost/email-analytics-service" "^1.0.5"
|
|
1403
|
-
"@tryghost/logging" "^
|
|
1403
|
+
"@tryghost/logging" "^2.0.0"
|
|
1404
1404
|
mailgun-js "^0.22.0"
|
|
1405
1405
|
moment "^2.29.1"
|
|
1406
1406
|
|
|
@@ -1412,10 +1412,10 @@
|
|
|
1412
1412
|
"@tryghost/debug" "^0.1.9"
|
|
1413
1413
|
lodash "^4.17.20"
|
|
1414
1414
|
|
|
1415
|
-
"@tryghost/errors@1.
|
|
1416
|
-
version "1.0
|
|
1417
|
-
resolved "https://registry.
|
|
1418
|
-
integrity sha512-
|
|
1415
|
+
"@tryghost/errors@1.2.0":
|
|
1416
|
+
version "1.2.0"
|
|
1417
|
+
resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.0.tgz#989f10434a17286e952b5a9434e50846ea4ad87c"
|
|
1418
|
+
integrity sha512-80I7LmRgPQt380Bm/90hF8KPkkNqOFHF2T6oO+NXkLd+UTc1qLOfe6nZS17WD9glMmHrqv6IF8U1MjPMDa4VOQ==
|
|
1419
1419
|
dependencies:
|
|
1420
1420
|
lodash "^4.17.21"
|
|
1421
1421
|
uuid "^8.3.2"
|
|
@@ -1428,7 +1428,7 @@
|
|
|
1428
1428
|
"@tryghost/ignition-errors" "^0.1.0"
|
|
1429
1429
|
lodash "^4.17.21"
|
|
1430
1430
|
|
|
1431
|
-
"@tryghost/errors@^1.1.0", "@tryghost/errors@^1.1.1":
|
|
1431
|
+
"@tryghost/errors@^1.0.0", "@tryghost/errors@^1.1.0", "@tryghost/errors@^1.1.1":
|
|
1432
1432
|
version "1.1.1"
|
|
1433
1433
|
resolved "https://registry.npmjs.org/@tryghost/errors/-/errors-1.1.1.tgz"
|
|
1434
1434
|
integrity sha512-na0qB5sdy1BWgquzn+m530ohJ3fTeF451xUTR7I8b76TBEL9snnIkXCv5Qdjmnevmgod7aAGsHi2syyKFlvEvQ==
|
|
@@ -1465,24 +1465,24 @@
|
|
|
1465
1465
|
lodash "^4.17.21"
|
|
1466
1466
|
uuid "^8.3.2"
|
|
1467
1467
|
|
|
1468
|
-
"@tryghost/image-transform@1.0.
|
|
1469
|
-
version "1.0.
|
|
1470
|
-
resolved "https://registry.
|
|
1471
|
-
integrity sha512-
|
|
1468
|
+
"@tryghost/image-transform@1.0.25":
|
|
1469
|
+
version "1.0.25"
|
|
1470
|
+
resolved "https://registry.yarnpkg.com/@tryghost/image-transform/-/image-transform-1.0.25.tgz#2e7c3f0617ce22abf0cdea91799c00fca481c3a5"
|
|
1471
|
+
integrity sha512-pDzPV/OxbSoQjUFgiBZv58B1/ZlHxSHmfocu5gWEanYvKMOLKYqLIykRX2CcrRgTEn0h4tTVXaliJnyL6odeVg==
|
|
1472
1472
|
dependencies:
|
|
1473
|
-
"@tryghost/errors" "^1.1.
|
|
1473
|
+
"@tryghost/errors" "^1.1.1"
|
|
1474
1474
|
bluebird "^3.7.2"
|
|
1475
1475
|
fs-extra "^9.1.0"
|
|
1476
1476
|
optionalDependencies:
|
|
1477
1477
|
sharp "^0.29.0"
|
|
1478
1478
|
|
|
1479
|
-
"@tryghost/job-manager@0.8.
|
|
1480
|
-
version "0.8.
|
|
1481
|
-
resolved "https://registry.yarnpkg.com/@tryghost/job-manager/-/job-manager-0.8.
|
|
1482
|
-
integrity sha512-
|
|
1479
|
+
"@tryghost/job-manager@0.8.17":
|
|
1480
|
+
version "0.8.17"
|
|
1481
|
+
resolved "https://registry.yarnpkg.com/@tryghost/job-manager/-/job-manager-0.8.17.tgz#356d91de13a48122e7bd178d038a9f759a499e22"
|
|
1482
|
+
integrity sha512-srtey6RC89K5e2ai5zdTldpoKUvTdKilrUyuAc40tvpzBOct8K8o+mTIN2Ak+Yw8pre00WO/qcnuUTkTca4I5w==
|
|
1483
1483
|
dependencies:
|
|
1484
1484
|
"@breejs/later" "^4.0.2"
|
|
1485
|
-
"@tryghost/logging" "^
|
|
1485
|
+
"@tryghost/logging" "^2.0.0"
|
|
1486
1486
|
bree "^6.2.0"
|
|
1487
1487
|
cron-validate "^1.4.3"
|
|
1488
1488
|
fastq "^1.11.0"
|
|
@@ -1503,10 +1503,10 @@
|
|
|
1503
1503
|
resolved "https://registry.npmjs.org/@tryghost/kg-default-atoms/-/kg-default-atoms-3.1.0.tgz"
|
|
1504
1504
|
integrity sha512-FfROzVgqJWqJ7cVdS9dcALz7rnzNfV8zcrymAJrDTHDsqzAdMfSLe1tNQRm8zas9pyZLsD8zBGmLxG9dr4WFSA==
|
|
1505
1505
|
|
|
1506
|
-
"@tryghost/kg-default-cards@5.14.
|
|
1507
|
-
version "5.14.
|
|
1508
|
-
resolved "https://registry.yarnpkg.com/@tryghost/kg-default-cards/-/kg-default-cards-5.14.
|
|
1509
|
-
integrity sha512-
|
|
1506
|
+
"@tryghost/kg-default-cards@5.14.7":
|
|
1507
|
+
version "5.14.7"
|
|
1508
|
+
resolved "https://registry.yarnpkg.com/@tryghost/kg-default-cards/-/kg-default-cards-5.14.7.tgz#2d237078dd35b5928a5a6af88bd486df2f02e3d9"
|
|
1509
|
+
integrity sha512-agdeLcYTG/rulozNSMvmX1rT+adrPhalTmn9H6shBZO2PGW2LX2HMi+x3tnT5HIkyI//5LOmTG/HwkVfhbSQZQ==
|
|
1510
1510
|
dependencies:
|
|
1511
1511
|
"@tryghost/kg-markdown-html-renderer" "^5.1.0"
|
|
1512
1512
|
"@tryghost/url-utils" "^2.0.0"
|
|
@@ -1543,16 +1543,16 @@
|
|
|
1543
1543
|
dependencies:
|
|
1544
1544
|
"@tryghost/kg-clean-basic-html" "^2.2.5"
|
|
1545
1545
|
|
|
1546
|
-
"@tryghost/limit-service@1.0.
|
|
1547
|
-
version "1.0.
|
|
1548
|
-
resolved "https://registry.
|
|
1549
|
-
integrity sha512-
|
|
1546
|
+
"@tryghost/limit-service@1.0.7":
|
|
1547
|
+
version "1.0.7"
|
|
1548
|
+
resolved "https://registry.yarnpkg.com/@tryghost/limit-service/-/limit-service-1.0.7.tgz#fd3129e3042e627db19b9b7fd3cd4098e078054a"
|
|
1549
|
+
integrity sha512-huirIteJPswRgpSRYk2envLF+bYHTJN4EiR/Ezquh3xISAxRVgGjt09duTlgilPLO701wkpnxsFV3KS4TbWbYA==
|
|
1550
1550
|
dependencies:
|
|
1551
|
-
"@tryghost/errors" "^1.1.
|
|
1551
|
+
"@tryghost/errors" "^1.1.1"
|
|
1552
1552
|
lodash "^4.17.21"
|
|
1553
1553
|
luxon "^1.26.0"
|
|
1554
1554
|
|
|
1555
|
-
"@tryghost/logging@1.0.2", "@tryghost/logging@2.0.0", "@tryghost/logging@^1.0.0", "@tryghost/logging@^
|
|
1555
|
+
"@tryghost/logging@1.0.2", "@tryghost/logging@2.0.0", "@tryghost/logging@^1.0.0", "@tryghost/logging@^2.0.0":
|
|
1556
1556
|
version "2.0.0"
|
|
1557
1557
|
resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.0.0.tgz#587c579d703ef15fe468b8bb8efdd9cdfefb90ef"
|
|
1558
1558
|
integrity sha512-eWKtiHWDtVVf+xn+ecKb8mUepFDK1RXOhl1tFMF1b7eFASn5WIDLFSMH9Xl9gyCi6dnsXp5fAm2G3baZ77bPZg==
|
|
@@ -1700,13 +1700,13 @@
|
|
|
1700
1700
|
optionalDependencies:
|
|
1701
1701
|
promise.allsettled "^1.0.5"
|
|
1702
1702
|
|
|
1703
|
-
"@tryghost/minifier@0.1.
|
|
1704
|
-
version "0.1.
|
|
1705
|
-
resolved "https://registry.
|
|
1706
|
-
integrity sha512-
|
|
1703
|
+
"@tryghost/minifier@0.1.8":
|
|
1704
|
+
version "0.1.8"
|
|
1705
|
+
resolved "https://registry.yarnpkg.com/@tryghost/minifier/-/minifier-0.1.8.tgz#51e9f906f823f3e76c992741d89cd42dfd87d610"
|
|
1706
|
+
integrity sha512-0T0aSiCgUsjfQeBBkjp+BntnOgwhPwtC4xNsSrajYEL86Q2dkpTtJaKkRMvZnPQW77wD8igEtoOswV0Fw0e/mA==
|
|
1707
1707
|
dependencies:
|
|
1708
1708
|
"@tryghost/debug" "^0.1.8"
|
|
1709
|
-
"@tryghost/errors" "^1.1.
|
|
1709
|
+
"@tryghost/errors" "^1.1.1"
|
|
1710
1710
|
"@tryghost/tpl" "^0.1.7"
|
|
1711
1711
|
csso "4.2.0"
|
|
1712
1712
|
terser "^5.9.0"
|
|
@@ -1720,6 +1720,14 @@
|
|
|
1720
1720
|
mobiledoc-dom-renderer "0.7.0"
|
|
1721
1721
|
mobiledoc-text-renderer "0.4.0"
|
|
1722
1722
|
|
|
1723
|
+
"@tryghost/mw-error-handler@0.1.1":
|
|
1724
|
+
version "0.1.1"
|
|
1725
|
+
resolved "https://registry.yarnpkg.com/@tryghost/mw-error-handler/-/mw-error-handler-0.1.1.tgz#47ad5f534b21ec71db00706f47622d660cde894b"
|
|
1726
|
+
integrity sha512-c1EMdeU5k6FpB640GxjA2sUsyCuTPW8qlWJu1eZAbX/63YBMZOoBkvGNadUM5hdJ1fGwwFQME2j1vzkQ+qRMHg==
|
|
1727
|
+
dependencies:
|
|
1728
|
+
"@tryghost/debug" "^0.1.9"
|
|
1729
|
+
"@tryghost/tpl" "^0.1.8"
|
|
1730
|
+
|
|
1723
1731
|
"@tryghost/mw-session-from-token@0.1.26":
|
|
1724
1732
|
version "0.1.26"
|
|
1725
1733
|
resolved "https://registry.npmjs.org/@tryghost/mw-session-from-token/-/mw-session-from-token-0.1.26.tgz"
|
|
@@ -1737,12 +1745,12 @@
|
|
|
1737
1745
|
nodemailer-direct-transport "^3.3.2"
|
|
1738
1746
|
nodemailer-stub-transport "^1.1.0"
|
|
1739
1747
|
|
|
1740
|
-
"@tryghost/package-json@1.0.
|
|
1741
|
-
version "1.0.
|
|
1742
|
-
resolved "https://registry.
|
|
1743
|
-
integrity sha512-
|
|
1748
|
+
"@tryghost/package-json@1.0.13":
|
|
1749
|
+
version "1.0.13"
|
|
1750
|
+
resolved "https://registry.yarnpkg.com/@tryghost/package-json/-/package-json-1.0.13.tgz#53a151e3c8b204a514450e85f978f8559efb1fa8"
|
|
1751
|
+
integrity sha512-s9VY2S2yxLjq3qINGG6R/i/bcv4Xp/87nyU8NjEcewRLv6ZzYRxdKhFHf6Uci1W+ZGMOarOAbbDYoBuFLqH05Q==
|
|
1744
1752
|
dependencies:
|
|
1745
|
-
"@tryghost/errors" "^1.1.
|
|
1753
|
+
"@tryghost/errors" "^1.1.1"
|
|
1746
1754
|
"@tryghost/tpl" "^0.1.5"
|
|
1747
1755
|
bluebird "^3.7.2"
|
|
1748
1756
|
fs-extra "^10.0.0"
|
|
@@ -1817,12 +1825,12 @@
|
|
|
1817
1825
|
"@tryghost/debug" "^0.1.9"
|
|
1818
1826
|
"@tryghost/logging" "^1.0.0"
|
|
1819
1827
|
|
|
1820
|
-
"@tryghost/session-service@0.1.
|
|
1821
|
-
version "0.1.
|
|
1822
|
-
resolved "https://registry.
|
|
1823
|
-
integrity sha512-
|
|
1828
|
+
"@tryghost/session-service@0.1.35":
|
|
1829
|
+
version "0.1.35"
|
|
1830
|
+
resolved "https://registry.yarnpkg.com/@tryghost/session-service/-/session-service-0.1.35.tgz#756e5271e6c8b058465459ae409fbdf84359b825"
|
|
1831
|
+
integrity sha512-Er6YAqPZOoEfaBQmKlfuH4a9JXXa/Vev+igcKrUYVs0jlvfhsNpMpo6vksPVllA/V6mSvdhjIysRjmhoHdfJ2g==
|
|
1824
1832
|
dependencies:
|
|
1825
|
-
"@tryghost/errors" "^1.1.
|
|
1833
|
+
"@tryghost/errors" "^1.1.1"
|
|
1826
1834
|
|
|
1827
1835
|
"@tryghost/settings-path-manager@0.1.2":
|
|
1828
1836
|
version "0.1.2"
|
|
@@ -1851,14 +1859,14 @@
|
|
|
1851
1859
|
dependencies:
|
|
1852
1860
|
lodash.template "^4.5.0"
|
|
1853
1861
|
|
|
1854
|
-
"@tryghost/update-check-service@0.
|
|
1855
|
-
version "0.
|
|
1856
|
-
resolved "https://registry.
|
|
1857
|
-
integrity sha512-
|
|
1862
|
+
"@tryghost/update-check-service@0.3.0":
|
|
1863
|
+
version "0.3.0"
|
|
1864
|
+
resolved "https://registry.yarnpkg.com/@tryghost/update-check-service/-/update-check-service-0.3.0.tgz#0483160e0c6df5361d5fbffc522a44a6f14895ef"
|
|
1865
|
+
integrity sha512-Io0e5S0eF9foTlZ7pH5hemDQiDKrl52TSGm+a6XG1a237LwunS8y0KPcz5FUzuPU5FhExQ1AXMnPjjTA3E06Qw==
|
|
1858
1866
|
dependencies:
|
|
1859
1867
|
"@tryghost/debug" "^0.1.5"
|
|
1860
1868
|
"@tryghost/errors" "^0.2.11"
|
|
1861
|
-
"@tryghost/logging" "^
|
|
1869
|
+
"@tryghost/logging" "^2.0.0"
|
|
1862
1870
|
"@tryghost/tpl" "^0.1.3"
|
|
1863
1871
|
bluebird "^3.7.2"
|
|
1864
1872
|
lodash "^4.17.21"
|
|
@@ -5907,10 +5915,10 @@ grunt@1.4.1:
|
|
|
5907
5915
|
nopt "~3.0.6"
|
|
5908
5916
|
rimraf "~3.0.2"
|
|
5909
5917
|
|
|
5910
|
-
gscan@4.
|
|
5911
|
-
version "4.
|
|
5912
|
-
resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.
|
|
5913
|
-
integrity sha512-
|
|
5918
|
+
gscan@4.19.0:
|
|
5919
|
+
version "4.19.0"
|
|
5920
|
+
resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.19.0.tgz#65e5293f6107d9a4ddd371b2821eb6f1bd0ce4e3"
|
|
5921
|
+
integrity sha512-x4yIKYCD0BsphDZhp1Ihajm1g1AcJAmAGLbdgD4tZhYdg+KNniJSiPDuZmS7TUCkOBj+tVFxuXd8a/NyA93bjw==
|
|
5914
5922
|
dependencies:
|
|
5915
5923
|
"@sentry/node" "6.16.1"
|
|
5916
5924
|
"@tryghost/config" "0.2.1"
|
|
@@ -9680,7 +9688,16 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
|
|
|
9680
9688
|
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
|
9681
9689
|
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
|
9682
9690
|
|
|
9683
|
-
postcss@8.4.
|
|
9691
|
+
postcss@8.4.5:
|
|
9692
|
+
version "8.4.5"
|
|
9693
|
+
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
|
|
9694
|
+
integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
|
|
9695
|
+
dependencies:
|
|
9696
|
+
nanoid "^3.1.30"
|
|
9697
|
+
picocolors "^1.0.0"
|
|
9698
|
+
source-map-js "^1.0.1"
|
|
9699
|
+
|
|
9700
|
+
postcss@^8.3.11:
|
|
9684
9701
|
version "8.4.4"
|
|
9685
9702
|
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz"
|
|
9686
9703
|
integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
const _ = require('lodash');
|
|
2
|
-
const debug = require('@tryghost/debug')('error-handler');
|
|
3
|
-
const errors = require('@tryghost/errors');
|
|
4
|
-
const tpl = require('@tryghost/tpl');
|
|
5
|
-
const sentry = require('../../../../shared/sentry');
|
|
6
|
-
|
|
7
|
-
const messages = {
|
|
8
|
-
pageNotFound: 'Page not found',
|
|
9
|
-
resourceNotFound: 'Resource not found',
|
|
10
|
-
actions: {
|
|
11
|
-
images: {
|
|
12
|
-
upload: 'upload image'
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
userMessages: {
|
|
16
|
-
BookshelfRelationsError: 'Database error, cannot {action}.',
|
|
17
|
-
InternalServerError: 'Internal server error, cannot {action}.',
|
|
18
|
-
IncorrectUsageError: 'Incorrect usage error, cannot {action}.',
|
|
19
|
-
NotFoundError: 'Resource not found error, cannot {action}.',
|
|
20
|
-
BadRequestError: 'Request not understood error, cannot {action}.',
|
|
21
|
-
UnauthorizedError: 'Authorisation error, cannot {action}.',
|
|
22
|
-
NoPermissionError: 'Permission error, cannot {action}.',
|
|
23
|
-
ValidationError: 'Validation error, cannot {action}.',
|
|
24
|
-
UnsupportedMediaTypeError: 'Unsupported media error, cannot {action}.',
|
|
25
|
-
TooManyRequestsError: 'Too many requests error, cannot {action}.',
|
|
26
|
-
MaintenanceError: 'Server down for maintenance, cannot {action}.',
|
|
27
|
-
MethodNotAllowedError: 'Method not allowed, cannot {action}.',
|
|
28
|
-
RequestEntityTooLargeError: 'Request too large, cannot {action}.',
|
|
29
|
-
TokenRevocationError: 'Token is not available, cannot {action}.',
|
|
30
|
-
VersionMismatchError: 'Version mismatch error, cannot {action}.',
|
|
31
|
-
DataExportError: 'Error exporting content.',
|
|
32
|
-
DataImportError: 'Duplicated entry, cannot save {action}.',
|
|
33
|
-
DatabaseVersionError: 'Database version compatibility error, cannot {action}.',
|
|
34
|
-
EmailError: 'Error sending email!',
|
|
35
|
-
ThemeValidationError: 'Theme validation error, cannot {action}.',
|
|
36
|
-
HostLimitError: 'Host Limit error, cannot {action}.',
|
|
37
|
-
DisabledFeatureError: 'Theme validation error, the {{{helperName}}} helper is not available. Cannot {action}.',
|
|
38
|
-
UpdateCollisionError: 'Saving failed! Someone else is editing this post.'
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const updateStack = (err) => {
|
|
43
|
-
let stackbits = err.stack.split(/\n/g);
|
|
44
|
-
|
|
45
|
-
// We build this up backwards, so we always insert at position 1
|
|
46
|
-
|
|
47
|
-
if (process.env.NODE_ENV === 'production' || err.statusCode === 404) {
|
|
48
|
-
// In production mode, remove the stack trace
|
|
49
|
-
stackbits.splice(1, stackbits.length - 1);
|
|
50
|
-
} else {
|
|
51
|
-
// In dev mode, clearly mark the strack trace
|
|
52
|
-
stackbits.splice(1, 0, `Stack Trace:`);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Add in our custom cotext and help methods
|
|
56
|
-
|
|
57
|
-
if (err.help) {
|
|
58
|
-
stackbits.splice(1, 0, `${err.help}`);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (err.context) {
|
|
62
|
-
stackbits.splice(1, 0, `${err.context}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return stackbits.join('\n');
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Get an error ready to be shown the the user
|
|
70
|
-
*/
|
|
71
|
-
module.exports.prepareError = (err, req, res, next) => {
|
|
72
|
-
debug(err);
|
|
73
|
-
|
|
74
|
-
if (Array.isArray(err)) {
|
|
75
|
-
err = err[0];
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (!errors.utils.isGhostError(err)) {
|
|
79
|
-
// We need a special case for 404 errors
|
|
80
|
-
if (err.statusCode && err.statusCode === 404) {
|
|
81
|
-
err = new errors.NotFoundError({
|
|
82
|
-
err: err
|
|
83
|
-
});
|
|
84
|
-
} else if (err.stack.match(/node_modules\/handlebars\//)) {
|
|
85
|
-
// Temporary handling of theme errors from handlebars
|
|
86
|
-
// @TODO remove this when #10496 is solved properly
|
|
87
|
-
err = new errors.IncorrectUsageError({
|
|
88
|
-
err: err,
|
|
89
|
-
message: err.message,
|
|
90
|
-
statusCode: err.statusCode
|
|
91
|
-
});
|
|
92
|
-
} else {
|
|
93
|
-
err = new errors.InternalServerError({
|
|
94
|
-
err: err,
|
|
95
|
-
message: err.message,
|
|
96
|
-
statusCode: err.statusCode
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// used for express logging middleware see core/server/app.js
|
|
102
|
-
req.err = err;
|
|
103
|
-
|
|
104
|
-
// alternative for res.status();
|
|
105
|
-
res.statusCode = err.statusCode;
|
|
106
|
-
|
|
107
|
-
err.stack = updateStack(err);
|
|
108
|
-
|
|
109
|
-
// never cache errors
|
|
110
|
-
res.set({
|
|
111
|
-
'Cache-Control': 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
next(err);
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
const jsonErrorRenderer = (err, req, res, next) => { // eslint-disable-line no-unused-vars
|
|
118
|
-
res.json({
|
|
119
|
-
errors: [{
|
|
120
|
-
message: err.message,
|
|
121
|
-
context: err.context,
|
|
122
|
-
help: err.help,
|
|
123
|
-
errorType: err.errorType,
|
|
124
|
-
errorDetails: err.errorDetails,
|
|
125
|
-
ghostErrorCode: err.ghostErrorCode
|
|
126
|
-
}]
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
const jsonErrorRendererV2 = (err, req, res, next) => { // eslint-disable-line no-unused-vars
|
|
131
|
-
const userError = prepareUserMessage(err, req);
|
|
132
|
-
|
|
133
|
-
res.json({
|
|
134
|
-
errors: [{
|
|
135
|
-
message: userError.message || null,
|
|
136
|
-
context: userError.context || null,
|
|
137
|
-
type: err.errorType || null,
|
|
138
|
-
details: err.errorDetails || null,
|
|
139
|
-
property: err.property || null,
|
|
140
|
-
help: err.help || null,
|
|
141
|
-
code: err.code || null,
|
|
142
|
-
id: err.id || null
|
|
143
|
-
}]
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
const prepareUserMessage = (err, res) => {
|
|
148
|
-
const userError = {
|
|
149
|
-
message: err.message,
|
|
150
|
-
context: err.context
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const docName = _.get(res, 'frameOptions.docName');
|
|
154
|
-
const method = _.get(res, 'frameOptions.method');
|
|
155
|
-
|
|
156
|
-
if (docName && method) {
|
|
157
|
-
let action;
|
|
158
|
-
|
|
159
|
-
const actionMap = {
|
|
160
|
-
browse: 'list',
|
|
161
|
-
read: 'read',
|
|
162
|
-
add: 'save',
|
|
163
|
-
edit: 'edit',
|
|
164
|
-
destroy: 'delete'
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
if (_.get(messages.actions, [docName, method])) {
|
|
168
|
-
action = tpl(messages.actions[docName][method]);
|
|
169
|
-
} else if (Object.keys(actionMap).includes(method)) {
|
|
170
|
-
let resource = docName;
|
|
171
|
-
|
|
172
|
-
if (method !== 'browse') {
|
|
173
|
-
resource = resource.replace(/s$/, '');
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
action = `${actionMap[method]} ${resource}`;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (action) {
|
|
180
|
-
if (err.context) {
|
|
181
|
-
userError.context = `${err.message} ${err.context}`;
|
|
182
|
-
} else {
|
|
183
|
-
userError.context = err.message;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
userError.message = tpl(messages.userMessages[err.name], {action: action});
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return userError;
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
module.exports.resourceNotFound = (req, res, next) => {
|
|
194
|
-
next(new errors.NotFoundError({message: tpl(messages.resourceNotFound)}));
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
module.exports.pageNotFound = (req, res, next) => {
|
|
198
|
-
next(new errors.NotFoundError({message: tpl(messages.pageNotFound)}));
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
module.exports.handleJSONResponse = [
|
|
202
|
-
// Make sure the error can be served
|
|
203
|
-
module.exports.prepareError,
|
|
204
|
-
// Handle the error in Sentry
|
|
205
|
-
sentry.errorHandler,
|
|
206
|
-
// Render the error using JSON format
|
|
207
|
-
jsonErrorRenderer
|
|
208
|
-
];
|
|
209
|
-
|
|
210
|
-
module.exports.handleJSONResponseV2 = [
|
|
211
|
-
// Make sure the error can be served
|
|
212
|
-
module.exports.prepareError,
|
|
213
|
-
// Handle the error in Sentry
|
|
214
|
-
sentry.errorHandler,
|
|
215
|
-
// Render the error using JSON format
|
|
216
|
-
jsonErrorRendererV2
|
|
217
|
-
];
|
|
218
|
-
|
|
219
|
-
module.exports.handleHTMLResponse = [
|
|
220
|
-
// Make sure the error can be served
|
|
221
|
-
module.exports.prepareError,
|
|
222
|
-
// Handle the error in Sentry
|
|
223
|
-
sentry.errorHandler
|
|
224
|
-
];
|