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.
Files changed (56) hide show
  1. package/core/boot.js +3 -5
  2. package/core/built/assets/{ghost-dark-b93e2e2dcc4c0e1efa981314f45f8cda.css → ghost-dark-1594d07a0716e0253a78234c8e42d765.css} +1 -1
  3. package/core/built/assets/{ghost.min-ba8ef5d16b8a6f9072564a368154df72.js → ghost.min-884660873d56fcc3d2a3b9fe94c9f022.js} +3 -3
  4. package/core/built/assets/{ghost.min-578a1b7e68d1f7ae0003ebe421b7c182.css → ghost.min-c21fea11c3f431994a8ee7c47a8ed145.css} +1 -1
  5. package/core/built/assets/icons/file-upload.svg +1 -1
  6. package/core/built/assets/{vendor.min-c450359ad46217cd48c00b277ae54a09.js → vendor.min-a2fd1e62ce6da8911fee8e812d8c6ceb.js} +62 -49
  7. package/core/frontend/services/theme-engine/i18n/i18n.js +11 -12
  8. package/core/frontend/services/theme-engine/i18n/index.js +1 -2
  9. package/core/frontend/services/theme-engine/i18n/theme-i18n.js +5 -4
  10. package/core/frontend/src/cards/css/audio.css +4 -2
  11. package/core/frontend/src/cards/css/bookmark.css +3 -2
  12. package/core/frontend/src/cards/css/button.css +4 -3
  13. package/core/frontend/src/cards/css/callout.css +4 -4
  14. package/core/frontend/src/cards/css/file.css +100 -47
  15. package/core/frontend/src/cards/css/nft.css +1 -7
  16. package/core/frontend/src/cards/css/product.css +24 -23
  17. package/core/frontend/src/cards/css/toggle.css +31 -22
  18. package/core/frontend/src/cards/css/video.css +103 -44
  19. package/core/frontend/src/cards/js/video.js +81 -13
  20. package/core/frontend/web/middleware/error-handler.js +2 -2
  21. package/core/frontend/web/site.js +2 -1
  22. package/core/server/api/canary/oembed.js +1 -2
  23. package/core/server/data/db/state-manager.js +5 -8
  24. package/core/server/lib/image/cached-image-size-from-url.js +3 -4
  25. package/core/server/lib/image/image-utils.js +2 -2
  26. package/core/server/lib/image/index.js +1 -2
  27. package/core/server/run-update-check.js +1 -13
  28. package/core/server/services/email-analytics/index.js +2 -4
  29. package/core/server/services/email-analytics/jobs/fetch-latest.js +2 -21
  30. package/core/server/services/integrations/integrations-service.js +2 -2
  31. package/core/server/services/invites/index.js +0 -2
  32. package/core/server/services/invites/invites.js +3 -3
  33. package/core/server/services/jobs/job-service.js +1 -1
  34. package/core/server/services/members/api.js +0 -1
  35. package/core/server/services/members/config.js +4 -7
  36. package/core/server/services/members/service.js +1 -4
  37. package/core/server/services/notifications/index.js +0 -2
  38. package/core/server/services/notifications/notifications.js +4 -5
  39. package/core/server/services/stripe/index.js +0 -2
  40. package/core/server/services/twitter-embed.js +2 -1
  41. package/core/server/web/admin/app.js +4 -2
  42. package/core/server/web/admin/views/default-prod.html +4 -4
  43. package/core/server/web/admin/views/default.html +4 -4
  44. package/core/server/web/api/app.js +3 -2
  45. package/core/server/web/api/canary/admin/app.js +4 -2
  46. package/core/server/web/api/canary/content/app.js +4 -2
  47. package/core/server/web/api/v2/admin/app.js +4 -2
  48. package/core/server/web/api/v2/content/app.js +4 -2
  49. package/core/server/web/api/v3/admin/app.js +4 -2
  50. package/core/server/web/api/v3/content/app.js +4 -2
  51. package/core/server/web/members/app.js +6 -4
  52. package/core/server/web/shared/middleware/index.js +0 -4
  53. package/core/shared/labs.js +2 -2
  54. package/package.json +17 -16
  55. package/yarn.lock +82 -65
  56. 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.29.0",
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.24",
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.14",
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.6",
67
+ "@tryghost/email-analytics-provider-mailgun": "1.0.7",
68
68
  "@tryghost/email-analytics-service": "1.0.5",
69
- "@tryghost/errors": "1.0.4",
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.24",
73
- "@tryghost/job-manager": "0.8.16",
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.2",
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.6",
80
- "@tryghost/logging": "1.0.2",
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.7",
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.12",
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.34",
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.2.5",
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.17.0",
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.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.24":
1216
- version "0.2.24"
1217
- resolved "https://registry.npmjs.org/@tryghost/adapter-manager/-/adapter-manager-0.2.24.tgz"
1218
- integrity sha512-6FnNaTsp8qFZCFguX9eSrMgY2sY8ch5C+Y1dwE/Ma7NbytPb0nqXD8qzi76EjhBtk7iEPKxr67a03C0JEFYHpg==
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.0"
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.14":
1321
- version "0.2.14"
1322
- resolved "https://registry.yarnpkg.com/@tryghost/bootstrap-socket/-/bootstrap-socket-0.2.14.tgz#d03caf3f51cd2acf37f0c3ee5cd511a953993197"
1323
- integrity sha512-95dYoV8EfQg7g2iF750xLJv/Yli1HhcZb3Zl6Nty8rX1GhZ8vFn57Agmh180MyFhO87oXRzihYRn18LAcEH6Ng==
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" "^1.0.2"
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.6":
1398
- version "1.0.6"
1399
- resolved "https://registry.yarnpkg.com/@tryghost/email-analytics-provider-mailgun/-/email-analytics-provider-mailgun-1.0.6.tgz#7897699cb9054c8c35844bd38c5994103cbf1569"
1400
- integrity sha512-41owQfyrDke937FUk68osbi4n+6TZI4EfcH8+Kf6MkGfLy8xt42idk7QCQE+l++YKcENOkknSce+biAkGtmnkw==
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" "^1.0.2"
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.0.4", "@tryghost/errors@^1.0.0":
1416
- version "1.0.4"
1417
- resolved "https://registry.npmjs.org/@tryghost/errors/-/errors-1.0.4.tgz"
1418
- integrity sha512-ImfwkOc54Ur9zjYgPaG3Y9wFeH00eJnqClYBZSB5/K0T6nqTXnIOyFIq33vZkmXuxQLX1xRb82OeWYxHxgFWDA==
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.24":
1469
- version "1.0.24"
1470
- resolved "https://registry.npmjs.org/@tryghost/image-transform/-/image-transform-1.0.24.tgz"
1471
- integrity sha512-prmOyWK1nv3AIBCk+u6pxDOB2Mq2XneRHNRduMWVHKDeXsovmNiCg/0R8ZlkVhBy67y/awDl/RUMczWR3QyPfQ==
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.0"
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.16":
1480
- version "0.8.16"
1481
- resolved "https://registry.yarnpkg.com/@tryghost/job-manager/-/job-manager-0.8.16.tgz#bd97b86fa72d564f08d7f00b5783e18685aab84c"
1482
- integrity sha512-4xfrkMdn2UHI/BFERAckoIsTgPepekvCDXykU/OLrkwbkqrChj+G6gL3EIGjjilSB6wzmJQ0BNinOn2o6M+NJQ==
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" "^1.0.2"
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.2":
1507
- version "5.14.2"
1508
- resolved "https://registry.yarnpkg.com/@tryghost/kg-default-cards/-/kg-default-cards-5.14.2.tgz#d7b1fb88089c368cd6ee023f2c2df52c7f0bca31"
1509
- integrity sha512-Y4ZTIeWC6qhADjY0tUJQNaLP37TJ2hc5uQgV/TYyLTWK8HXy+XbgqylEPoWZLMn5O+dlx917BfERWbJdJ/ashQ==
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.6":
1547
- version "1.0.6"
1548
- resolved "https://registry.npmjs.org/@tryghost/limit-service/-/limit-service-1.0.6.tgz"
1549
- integrity sha512-tRIKdR2vZfavBVn8eKkpywqzeJdROdAe5rLuhilpD8f+qDkJJKrn9IMP45eqXMUpAAp61nuKpdYbrmSrpAWbHA==
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.0"
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@^1.0.2", "@tryghost/logging@^2.0.0":
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.7":
1704
- version "0.1.7"
1705
- resolved "https://registry.npmjs.org/@tryghost/minifier/-/minifier-0.1.7.tgz"
1706
- integrity sha512-WHAndFqytZ/bRcufk0Ek65st2cX6QrGiY/sAsrZlDfWMPeVTqUnTWoYVH/jv3/kfUSeKEGVCxhsbXRX6BuewCA==
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.0"
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.12":
1741
- version "1.0.12"
1742
- resolved "https://registry.npmjs.org/@tryghost/package-json/-/package-json-1.0.12.tgz"
1743
- integrity sha512-gRcyJnBMRGf8o2pd8NUVE6aF3VR35XC45ZfU2YNsJ06lg+AxjeLxZAEzSC30qMMKyspYgXMG56p7QSutY2QiQA==
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.0"
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.34":
1821
- version "0.1.34"
1822
- resolved "https://registry.npmjs.org/@tryghost/session-service/-/session-service-0.1.34.tgz"
1823
- integrity sha512-lIUoi7zoV91fkmhq9w1kmt9kSHPoD/0ZfQB6PdMlys0PW3B4rlSclf+ZvpCynK/2lcwiQ62Z02hpgLb8iw1nxQ==
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.0"
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.2.5":
1855
- version "0.2.5"
1856
- resolved "https://registry.npmjs.org/@tryghost/update-check-service/-/update-check-service-0.2.5.tgz"
1857
- integrity sha512-LdvSpwtnsOX/il5v5VAoFFQc8V1mUsVqKptW/mvsvfMAEVnVtNHXAL0hZry/TDeq+4IU0h2UX+/Ziul8Wf4amA==
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" "^1.0.0"
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.17.0:
5911
- version "4.17.0"
5912
- resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.17.0.tgz#dab52e6b1985aaad067a6085b5cfb0c6f561f7df"
5913
- integrity sha512-e5lw5XU4SvoTygNR8E+T6C5B/baVJwYpeOUJhfmfNuF90mHS/ZvzT0+0wpUeM/gKTuv18q35JdY1yTH0Hqrt3A==
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.4, postcss@^8.3.11:
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
- ];