ghost 4.24.0 → 4.26.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.
Files changed (147) hide show
  1. package/.eslintrc.js +39 -0
  2. package/content/themes/casper/assets/built/casper.js +1 -1
  3. package/content/themes/casper/assets/built/casper.js.map +1 -1
  4. package/content/themes/casper/assets/built/global.css +1 -1
  5. package/content/themes/casper/assets/built/global.css.map +1 -1
  6. package/content/themes/casper/assets/built/screen.css +1 -1
  7. package/content/themes/casper/assets/built/screen.css.map +1 -1
  8. package/content/themes/casper/assets/css/global.css +6 -1
  9. package/content/themes/casper/assets/css/screen.css +50 -215
  10. package/content/themes/casper/default.hbs +2 -2
  11. package/content/themes/casper/package.json +3 -2
  12. package/content/themes/casper/post.hbs +1 -1
  13. package/content/themes/casper/yarn.lock +173 -123
  14. package/core/app.js +8 -4
  15. package/core/boot.js +52 -25
  16. package/core/built/assets/ghost-dark-ef86e3bc7f0fb83d39d3d6a49bff8dd5.css +1 -0
  17. package/core/built/assets/ghost.min-57c1e677f42d596942d317ce93e8a62c.css +1 -0
  18. package/core/built/assets/{ghost.min-d5595f9c71ebc534ccf9ac78483d357c.js → ghost.min-f3c6886e191d34450e9ffca0c8fa056e.js} +504 -579
  19. package/core/built/assets/icons/audio-upload.svg +8 -0
  20. package/core/built/assets/{vendor.min-1a84ac3ef74edf31c6e86810b45221cc.js → vendor.min-b6b8d2a31d61830c2d8f65c5ba54236a.js} +2614 -2149
  21. package/core/frontend/apps/amp/lib/helpers/amp_content.js +2 -2
  22. package/core/frontend/apps/amp/lib/views/amp.hbs +75 -0
  23. package/core/frontend/apps/private-blogging/index.js +1 -1
  24. package/core/frontend/helpers/url.js +18 -1
  25. package/core/frontend/services/apps/index.js +1 -1
  26. package/core/frontend/services/apps/loader.js +3 -3
  27. package/core/frontend/services/helpers/handlebars.js +1 -1
  28. package/core/frontend/services/theme-engine/middleware/ensure-active-theme.js +34 -0
  29. package/core/frontend/services/theme-engine/middleware/index.js +6 -0
  30. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +116 -0
  31. package/core/frontend/services/theme-engine/middleware/update-local-template-data.js +9 -0
  32. package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +57 -0
  33. package/core/frontend/src/cards/css/audio.css +186 -0
  34. package/core/frontend/src/cards/css/blockquote.css +27 -0
  35. package/core/frontend/src/cards/css/button.css +4 -0
  36. package/core/frontend/src/cards/css/callout.css +23 -14
  37. package/core/frontend/src/cards/css/toggle.css +42 -20
  38. package/core/frontend/src/cards/js/audio.js +137 -0
  39. package/core/frontend/web/middleware/error-handler.js +93 -0
  40. package/core/frontend/web/middleware/handle-image-sizes.js +3 -6
  41. package/core/frontend/web/middleware/index.js +1 -0
  42. package/core/frontend/web/site.js +2 -2
  43. package/core/server/adapters/scheduling/SchedulingDefault.js +2 -2
  44. package/core/server/adapters/storage/LocalStorageBase.js +2 -2
  45. package/core/server/api/canary/db.js +2 -2
  46. package/core/server/api/canary/media.js +3 -2
  47. package/core/server/api/canary/oembed.js +16 -1
  48. package/core/server/api/canary/session.js +1 -1
  49. package/core/server/api/canary/slugs.js +1 -1
  50. package/core/server/api/canary/utils/permissions.js +2 -2
  51. package/core/server/api/canary/utils/serializers/output/config.js +2 -6
  52. package/core/server/api/v2/db.js +2 -2
  53. package/core/server/api/v2/session.js +1 -1
  54. package/core/server/api/v2/slugs.js +1 -1
  55. package/core/server/api/v2/utils/permissions.js +2 -2
  56. package/core/server/api/v3/db.js +2 -2
  57. package/core/server/api/v3/session.js +1 -1
  58. package/core/server/api/v3/slugs.js +1 -1
  59. package/core/server/api/v3/utils/permissions.js +2 -2
  60. package/core/server/data/db/state-manager.js +4 -4
  61. package/core/server/data/exporter/export-filename.js +1 -1
  62. package/core/server/data/importer/handlers/json.js +1 -1
  63. package/core/server/data/importer/import-manager.js +1 -1
  64. package/core/server/data/importer/importers/data/base.js +1 -1
  65. package/core/server/data/migrations/utils.js +2 -2
  66. package/core/server/data/migrations/versions/1.25/1-update-koenig-beta-html.js +1 -0
  67. package/core/server/data/migrations/versions/3.1/08-add-uuid-values-to-members.js +1 -0
  68. package/core/server/data/migrations/versions/3.22/02-settings-key-renames.js +2 -0
  69. package/core/server/data/migrations/versions/3.22/05-migrate-members-subscription-settings.js +3 -0
  70. package/core/server/data/migrations/versions/3.22/06-migrate-stripe-connect-settings.js +2 -0
  71. package/core/server/data/migrations/versions/3.23/01-migrate-bulk-email-settings.js +1 -0
  72. package/core/server/data/migrations/versions/3.29/01-remove-duplicate-subscriptions.js +2 -0
  73. package/core/server/data/migrations/versions/3.29/02-remove-duplicate-customers.js +2 -0
  74. package/core/server/data/migrations/versions/3.38/04-populate-recipient-filter-column.js +2 -0
  75. package/core/server/data/migrations/versions/4.0/01-update-mobiledoc.js +2 -0
  76. package/core/server/data/migrations/versions/4.0/03-populate-status-column-for-members.js +4 -0
  77. package/core/server/data/migrations/versions/4.0/06-populate-members-subscribe-events-table.js +1 -0
  78. package/core/server/data/migrations/versions/4.0/17-populate-members-status-events-table.js +1 -0
  79. package/core/server/data/migrations/versions/4.0/18-transform-urls-absolute-to-transform-ready.js +5 -0
  80. package/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js +1 -0
  81. package/core/server/data/migrations/versions/4.0/23-regenerate-posts-html.js +1 -0
  82. package/core/server/data/migrations/versions/4.0/25-populate-members-paid-subscription-events-table.js +2 -1
  83. package/core/server/data/migrations/versions/4.12/02-fix-member-statuses.js +1 -0
  84. package/core/server/data/migrations/versions/4.14/01-fix-comped-member-statuses.js +3 -0
  85. package/core/server/data/migrations/versions/4.14/02-fix-free-members-status-events.js +1 -0
  86. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +2 -0
  87. package/core/server/data/migrations/versions/4.23/01-truncate-offer-names.js +1 -0
  88. package/core/server/data/migrations/versions/4.3/04-attach-members-to-product.js +1 -0
  89. package/core/server/data/migrations/versions/4.4/01-restore-free-members-signup-setting-from-backup.js +1 -0
  90. package/core/server/data/migrations/versions/4.6/01-remove-comped-status.js +1 -0
  91. package/core/server/data/migrations/versions/4.8/04-migrate-show-newsletter-header-setting.js +1 -0
  92. package/core/server/data/migrations/versions/4.9/05-fix-missed-mobiledoc-url-transforms.js +1 -0
  93. package/core/server/data/migrations/versions/4.9/06-add-comped-status.js +1 -0
  94. package/core/server/data/migrations/versions/4.9/07-update-comped-members-status-events.js +1 -0
  95. package/core/server/data/schema/commands.js +2 -2
  96. package/core/server/ghost-server.js +2 -2
  97. package/core/server/lib/image/image-size.js +2 -2
  98. package/core/server/models/base/listeners.js +2 -2
  99. package/core/server/models/member-email-change-event.js +2 -2
  100. package/core/server/models/member-login-event.js +2 -2
  101. package/core/server/models/member-paid-subscription-event.js +3 -3
  102. package/core/server/models/member-payment-event.js +3 -3
  103. package/core/server/models/member-product-event.js +6 -6
  104. package/core/server/models/member-status-event.js +5 -3
  105. package/core/server/models/member-subscribe-event.js +9 -3
  106. package/core/server/models/relations/authors.js +1 -1
  107. package/core/server/models/settings.js +1 -1
  108. package/core/server/notify.js +1 -2
  109. package/core/server/services/auth/passwordreset.js +1 -1
  110. package/core/server/services/auth/setup.js +1 -1
  111. package/core/server/services/mega/mega.js +6 -4
  112. package/core/server/services/mega/template.js +43 -17
  113. package/core/server/services/members/api.js +22 -0
  114. package/core/server/services/members/config.js +1 -1
  115. package/core/server/services/members/emails/signup-paid.js +168 -0
  116. package/core/server/services/members/service.js +6 -2
  117. package/core/server/services/members/stripe-connect.js +4 -2
  118. package/core/server/services/nft-oembed.js +7 -2
  119. package/core/server/services/oembed.js +15 -3
  120. package/core/server/services/permissions/can-this.js +1 -1
  121. package/core/server/services/redirects/api.js +2 -2
  122. package/core/server/services/route-settings/default-settings-manager.js +1 -1
  123. package/core/server/services/route-settings/route-settings.js +4 -12
  124. package/core/server/services/route-settings/settings-loader.js +4 -4
  125. package/core/server/services/route-settings/yaml-parser.js +1 -1
  126. package/core/server/services/slack.js +1 -1
  127. package/core/server/services/themes/storage.js +2 -2
  128. package/core/server/services/twitter-embed.js +81 -0
  129. package/core/server/services/xmlrpc.js +2 -2
  130. package/core/server/web/admin/views/default-prod.html +4 -4
  131. package/core/server/web/admin/views/default.html +4 -4
  132. package/core/server/web/api/canary/admin/middleware.js +1 -1
  133. package/core/server/web/api/v2/admin/middleware.js +1 -1
  134. package/core/server/web/api/v3/admin/middleware.js +1 -1
  135. package/core/server/web/parent/app.js +2 -22
  136. package/core/server/web/parent/backend.js +2 -0
  137. package/core/server/web/shared/middleware/error-handler.js +28 -150
  138. package/core/shared/config/defaults.json +7 -1
  139. package/core/shared/express.js +1 -1
  140. package/core/shared/labs.js +7 -7
  141. package/core/shared/sentry.js +1 -1
  142. package/package.json +38 -38
  143. package/yarn.lock +632 -941
  144. package/content/themes/casper/assets/js/gallery-card.js +0 -24
  145. package/core/built/assets/ghost-dark-e7b57ab951512c5719aee89b16b9a448.css +0 -1
  146. package/core/built/assets/ghost.min-7f3603dbeb5ebf0ec09e207ae82fb4e3.css +0 -1
  147. package/core/frontend/services/theme-engine/middleware.js +0 -209
@@ -7,98 +7,138 @@
7
7
  resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
8
8
  integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
9
9
 
10
- "@elastic/elasticsearch@^7.10.0":
11
- version "7.11.0"
12
- resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.11.0.tgz#e196243d0ed026742fc160d72cc5b4b5b6c7807d"
13
- integrity sha512-AFVVuANIdbV1qYjuOi4hnsX/DehWYG+bbhQO4amq9K4/NnzU7mpGWOPgVlRQTiX+vBfBkx7SL6h4QEjIlM3ztA==
10
+ "@elastic/elasticsearch@^7.15.0":
11
+ version "7.15.0"
12
+ resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.15.0.tgz#4b009a87e0b11b8cfd2e4f378f0292574bc17300"
13
+ integrity sha512-FUKvjV2IKtIiWsvBy7D+wLbSEONsmNR15RRN7P/Sb30g4ObZRHH2qGOP5PPnzxdntEkzZ8HzY7nKKXFS+3Du1g==
14
14
  dependencies:
15
- debug "^4.1.1"
15
+ debug "^4.3.1"
16
16
  hpagent "^0.1.1"
17
- ms "^2.1.1"
18
- pump "^3.0.0"
19
- secure-json-parse "^2.1.0"
20
-
21
- "@sentry/core@6.13.3":
22
- version "6.13.3"
23
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.13.3.tgz#5cbbb995128e793ebebcbf1d3b7514e0e5e8b221"
24
- integrity sha512-obm3SjgCk8A7nB37b2AU1eq1q7gMoJRrGMv9VRIyfcG0Wlz/5lJ9O3ohUk+YZaaVfZMxXn6hFtsBiOWmlv7IIA==
25
- dependencies:
26
- "@sentry/hub" "6.13.3"
27
- "@sentry/minimal" "6.13.3"
28
- "@sentry/types" "6.13.3"
29
- "@sentry/utils" "6.13.3"
17
+ ms "^2.1.3"
18
+ secure-json-parse "^2.4.0"
19
+
20
+ "@sentry/core@6.15.0":
21
+ version "6.15.0"
22
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.15.0.tgz#5e877042fe18452f2273247126b32e139d5f907c"
23
+ integrity sha512-mCbKyqvD1G3Re6gv6N8tRkBz84gvVWDfLtC6d1WBArIopzter6ktEbvq0cMT6EOvGI2OLXuJ6mtHA93/Q0gGpw==
24
+ dependencies:
25
+ "@sentry/hub" "6.15.0"
26
+ "@sentry/minimal" "6.15.0"
27
+ "@sentry/types" "6.15.0"
28
+ "@sentry/utils" "6.15.0"
30
29
  tslib "^1.9.3"
31
30
 
32
- "@sentry/hub@6.13.3":
33
- version "6.13.3"
34
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.13.3.tgz#cc09623a69b5343315fdb61c7fdd0be74b72299f"
35
- integrity sha512-eYppBVqvhs5cvm33snW2sxfcw6G20/74RbBn+E4WDo15hozis89kU7ZCJDOPkXuag3v1h9igns/kM6PNBb41dw==
31
+ "@sentry/hub@6.15.0":
32
+ version "6.15.0"
33
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.15.0.tgz#fb8a91d12fdd2726a884374ea7242f6bbd081d69"
34
+ integrity sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA==
36
35
  dependencies:
37
- "@sentry/types" "6.13.3"
38
- "@sentry/utils" "6.13.3"
36
+ "@sentry/types" "6.15.0"
37
+ "@sentry/utils" "6.15.0"
39
38
  tslib "^1.9.3"
40
39
 
41
- "@sentry/minimal@6.13.3":
42
- version "6.13.3"
43
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.13.3.tgz#a675a79bcc830142e4f95e6198a2efde2cd3901e"
44
- integrity sha512-63MlYYRni3fs5Bh8XBAfVZ+ctDdWg0fapSTP1ydIC37fKvbE+5zhyUqwrEKBIiclEApg1VKX7bkKxVdu/vsFdw==
40
+ "@sentry/minimal@6.15.0":
41
+ version "6.15.0"
42
+ resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.15.0.tgz#fcc083ba901cfe57d25303d0b5fa8cd13e164466"
43
+ integrity sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg==
45
44
  dependencies:
46
- "@sentry/hub" "6.13.3"
47
- "@sentry/types" "6.13.3"
45
+ "@sentry/hub" "6.15.0"
46
+ "@sentry/types" "6.15.0"
48
47
  tslib "^1.9.3"
49
48
 
50
- "@sentry/node@6.13.3":
51
- version "6.13.3"
52
- resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.13.3.tgz#94c646c31fd240ab68ee8b85aa663e65eb499d06"
53
- integrity sha512-ZeZSw+TcPcf4e0j7iEqNMtoVmz+WFW/TEoGokXIwysZqSgchKdAXDHqn+CqUqFan7d76JcJmzztAUK2JruQ2Kg==
49
+ "@sentry/node@6.15.0":
50
+ version "6.15.0"
51
+ resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.15.0.tgz#d7b911e5667a3459a807a2ae0464558e872504d4"
52
+ integrity sha512-V1GeupWi9ClmoMy5eBWdVTv3k+Yx/JpddT4zCzzYY9QfjYtEvQI7R3SWFtlgXuaQQaZNU0WUoE2UgJV2N/vS8g==
54
53
  dependencies:
55
- "@sentry/core" "6.13.3"
56
- "@sentry/hub" "6.13.3"
57
- "@sentry/tracing" "6.13.3"
58
- "@sentry/types" "6.13.3"
59
- "@sentry/utils" "6.13.3"
54
+ "@sentry/core" "6.15.0"
55
+ "@sentry/hub" "6.15.0"
56
+ "@sentry/tracing" "6.15.0"
57
+ "@sentry/types" "6.15.0"
58
+ "@sentry/utils" "6.15.0"
60
59
  cookie "^0.4.1"
61
60
  https-proxy-agent "^5.0.0"
62
61
  lru_map "^0.3.3"
63
62
  tslib "^1.9.3"
64
63
 
65
- "@sentry/tracing@6.13.3":
66
- version "6.13.3"
67
- resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.13.3.tgz#ca657d4afa99c50f15e638fe38405bac33e780ee"
68
- integrity sha512-yyOFIhqlprPM0g4f35Icear3eZk2mwyYcGEzljJfY2iU6pJwj1lzia5PfSwiCW7jFGMmlBJNhOAIpfhlliZi8Q==
64
+ "@sentry/tracing@6.15.0":
65
+ version "6.15.0"
66
+ resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.15.0.tgz#5a5f08ee6b9cc1189227536fca053cd23488600d"
67
+ integrity sha512-V5unvX8qNEfdawX+m2n0jKgmH/YR2ItWZLH+3UevBTptO+xyfvRtpgGXYWUCo3iGvFgWb1C+iIC7LViR9rTvBg==
69
68
  dependencies:
70
- "@sentry/hub" "6.13.3"
71
- "@sentry/minimal" "6.13.3"
72
- "@sentry/types" "6.13.3"
73
- "@sentry/utils" "6.13.3"
69
+ "@sentry/hub" "6.15.0"
70
+ "@sentry/minimal" "6.15.0"
71
+ "@sentry/types" "6.15.0"
72
+ "@sentry/utils" "6.15.0"
74
73
  tslib "^1.9.3"
75
74
 
76
- "@sentry/types@6.13.3":
77
- version "6.13.3"
78
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.13.3.tgz#63ad5b6735b0dfd90b3a256a9f8e77b93f0f66b2"
79
- integrity sha512-Vrz5CdhaTRSvCQjSyIFIaV9PodjAVFkzJkTRxyY7P77RcegMsRSsG1yzlvCtA99zG9+e6MfoJOgbOCwuZids5A==
75
+ "@sentry/types@6.15.0":
76
+ version "6.15.0"
77
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.15.0.tgz#a2917f8aed91471bdfd6651384ffcd47b95c43ad"
78
+ integrity sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA==
80
79
 
81
- "@sentry/utils@6.13.3":
82
- version "6.13.3"
83
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.13.3.tgz#188754d40afe693c3fcae410f9322531588a9926"
84
- integrity sha512-zYFuFH3MaYtBZTeJ4Yajg7pDf0pM3MWs3+9k5my9Fd+eqNcl7dYQYJbT9gyC0HXK1QI4CAMNNlHNl4YXhF91ag==
80
+ "@sentry/utils@6.15.0":
81
+ version "6.15.0"
82
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.15.0.tgz#0c247cb092b1796d39c3d16d8e6977b9cdab9ca2"
83
+ integrity sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw==
85
84
  dependencies:
86
- "@sentry/types" "6.13.3"
85
+ "@sentry/types" "6.15.0"
87
86
  tslib "^1.9.3"
88
87
 
89
- "@tryghost/bunyan-rotating-filestream@0.0.7":
88
+ "@tryghost/bunyan-rotating-filestream@^0.0.7":
90
89
  version "0.0.7"
91
90
  resolved "https://registry.yarnpkg.com/@tryghost/bunyan-rotating-filestream/-/bunyan-rotating-filestream-0.0.7.tgz#3957de91e4e9b58999f0bbe19242080543dcfc4a"
92
91
  integrity sha512-dswM+dxG8J7WpVoSjzAdoWXqqB5Dg0C2T7Zh6eoUvl5hkA8yWWJi/fS4jNXlHF700lWQ0g8/t+leJ7SGSWd+aw==
93
92
  dependencies:
94
93
  long-timeout "^0.1.1"
95
94
 
96
- "@tryghost/elasticsearch-bunyan@0.1.1":
97
- version "0.1.1"
98
- resolved "https://registry.yarnpkg.com/@tryghost/elasticsearch-bunyan/-/elasticsearch-bunyan-0.1.1.tgz#5a36d81dd020825dd563b1357ae6c249580c46f5"
99
- integrity sha512-ILhumzdwJNoRG44S0FkgzZQlkCYioTKWEiY+FFFQpTFWwZ3Jd5a6us5k8tEsd+Wf2rZOvul/ehV45j2c2l1BMw==
95
+ "@tryghost/config@0.2.1":
96
+ version "0.2.1"
97
+ resolved "https://registry.yarnpkg.com/@tryghost/config/-/config-0.2.1.tgz#49cac52281d9cc05fdb22033e5378989ed0923ce"
98
+ integrity sha512-VQVMjjgqEoDX3jtb1wsr/p8I0+lnt6Xo5WDVcuiHAQePBLIP79fZcnq7UkdexAjiotWW2OwbYwIxfFNxQAsdWA==
99
+ dependencies:
100
+ "@tryghost/root-utils" "^0.3.7"
101
+ nconf "^0.11.3"
102
+
103
+ "@tryghost/debug@0.1.9", "@tryghost/debug@^0.1.9":
104
+ version "0.1.9"
105
+ resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.9.tgz#9cb4b5debca96ffb010b73811f01da6ca581935d"
106
+ integrity sha512-//j7JykptEvKWuxNnE8FgjNrUqkZReVEonMvMZdP25JUqza/3gNhju6vcwsl9lZwGk4Lnn/NEGZil7Gg+Y76BQ==
107
+ dependencies:
108
+ "@tryghost/root-utils" "^0.3.7"
109
+ debug "^4.3.1"
110
+
111
+ "@tryghost/elasticsearch@^1.0.0":
112
+ version "1.0.0"
113
+ resolved "https://registry.yarnpkg.com/@tryghost/elasticsearch/-/elasticsearch-1.0.0.tgz#287167c7dd130fa36eb25347a6e1297d12c2de05"
114
+ integrity sha512-iVPQoNzkHUGCc8opEGmqRewwBOtf4c3XqxFyf6Bdpr3RLIwdKoa35HMKbtz5GJUAQ14Q++zJcWCxiKSHUexW+w==
100
115
  dependencies:
101
- "@elastic/elasticsearch" "^7.10.0"
116
+ "@elastic/elasticsearch" "^7.15.0"
117
+ "@tryghost/debug" "^0.1.9"
118
+
119
+ "@tryghost/ignition-errors@0.1.8":
120
+ version "0.1.8"
121
+ resolved "https://registry.yarnpkg.com/@tryghost/ignition-errors/-/ignition-errors-0.1.8.tgz#6d4c4d4e02d32403ca1e574eaa91b3c0d138d6f6"
122
+ integrity sha512-4KYU+kDXZyP7tmzyHiUkfDy9RWxKAtA/6xTGdxYHurE5ZlT++cDDfdUtF0v3308GGUzKlBzRc3jmLjDYpngcBQ==
123
+ dependencies:
124
+ lodash "^4.17.21"
125
+ uuid "^8.3.2"
126
+
127
+ "@tryghost/logging@1.0.1", "@tryghost/logging@^1.0.0":
128
+ version "1.0.1"
129
+ resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-1.0.1.tgz#26f8dc45f70550efed583244ee79ff7721e4dc58"
130
+ integrity sha512-e01V4kYlsqKuJsSw3VPWSrGBF2PaZ4NMXhh9jokVksB9EXOgX1DUElHM0nu1vKcewYvQJnMxkPoOSi3SvxeA7w==
131
+ dependencies:
132
+ "@tryghost/bunyan-rotating-filestream" "^0.0.7"
133
+ "@tryghost/elasticsearch" "^1.0.0"
134
+ "@tryghost/pretty-stream" "^0.1.2"
135
+ "@tryghost/root-utils" "^0.3.7"
136
+ bunyan "^1.8.15"
137
+ bunyan-loggly "^1.4.2"
138
+ fs-extra "^10.0.0"
139
+ gelf-stream "^1.1.1"
140
+ json-stringify-safe "^5.0.1"
141
+ lodash "^4.17.21"
102
142
 
103
143
  "@tryghost/pretty-cli@1.2.22":
104
144
  version "1.2.22"
@@ -108,6 +148,15 @@
108
148
  chalk "^4.1.0"
109
149
  sywac "^1.3.0"
110
150
 
151
+ "@tryghost/pretty-stream@^0.1.2":
152
+ version "0.1.2"
153
+ resolved "https://registry.yarnpkg.com/@tryghost/pretty-stream/-/pretty-stream-0.1.2.tgz#30cb24c95ccb8f4af2c5b7095e77947ac7941198"
154
+ integrity sha512-zhnYf3MMuDPlwctliO45yfuuj0G3zYXX34ZorSHOAlCVcUVi3s5mkzMvdZ2ESExDyandyD7mqcI2SYGpB1zKKw==
155
+ dependencies:
156
+ lodash "^4.17.21"
157
+ moment "^2.29.1"
158
+ prettyjson "^1.2.1"
159
+
111
160
  "@tryghost/release-utils@0.6.12":
112
161
  version "0.6.12"
113
162
  resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.6.12.tgz#a02c725df910053466d11224e81cec0933f500dd"
@@ -120,14 +169,22 @@
120
169
  request "2.88.2"
121
170
  request-promise "4.2.6"
122
171
 
123
- "@tryghost/root-utils@^0.1.0":
124
- version "0.1.0"
125
- resolved "https://registry.yarnpkg.com/@tryghost/root-utils/-/root-utils-0.1.0.tgz#7578cb5e57953316fef58edd43a152a86b719a8f"
126
- integrity sha512-zy3PSviwytjvjdMso86RYZLE2I4e2yL/s83fIEf/g17C8V8hsCcgE83cFOpCw3ISWDFX3Qi0IX9kI3or2pfGLg==
172
+ "@tryghost/root-utils@^0.3.7":
173
+ version "0.3.7"
174
+ resolved "https://registry.yarnpkg.com/@tryghost/root-utils/-/root-utils-0.3.7.tgz#d56a4a1493b90ce36feb64a99cda86ec8a356b49"
175
+ integrity sha512-iDJzSmAprASm73ncuQBhF9OeieOnC8LUv4gSqObDDSRp1fyoAH8TauJC9Ib9WQ09+77XE9KxFIpS1hK4ReKN7A==
127
176
  dependencies:
128
177
  caller "^1.0.1"
129
178
  find-root "^1.1.0"
130
179
 
180
+ "@tryghost/server@0.1.0":
181
+ version "0.1.0"
182
+ resolved "https://registry.yarnpkg.com/@tryghost/server/-/server-0.1.0.tgz#2d0065b2dd784b6280ee5e01e0b0c7a1e1d99e1c"
183
+ integrity sha512-xHtJdRe+w4w8Or5udVTfyKOqhEurLgzUpwb8uxTpBnGWjCRFjtzIRAropqJwuxWiK6Ymsnqc19tkcXNsuTed/A==
184
+ dependencies:
185
+ "@tryghost/debug" "^0.1.9"
186
+ "@tryghost/logging" "^1.0.0"
187
+
131
188
  "@tryghost/zip@1.1.18":
132
189
  version "1.1.18"
133
190
  resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.18.tgz#1afcf07d1c5404ab38bc42ef9b400eafc4052edc"
@@ -644,7 +701,7 @@ buffer@^5.1.0, buffer@^5.5.0:
644
701
  base64-js "^1.3.1"
645
702
  ieee754 "^1.1.13"
646
703
 
647
- bunyan-loggly@1.4.2:
704
+ bunyan-loggly@^1.4.2:
648
705
  version "1.4.2"
649
706
  resolved "https://registry.yarnpkg.com/bunyan-loggly/-/bunyan-loggly-1.4.2.tgz#dda0fb18f487fa150a79728e906d83e871d235e9"
650
707
  integrity sha512-/fwAO+NPogiPziEk4bQKZhwYo+POrbdAlatpW5r+BQSTHqYyxGFHMtLMp4uSjIdPetXDxvG5qffAePB3hc/6NA==
@@ -652,7 +709,7 @@ bunyan-loggly@1.4.2:
652
709
  json-stringify-safe "^5.0.1"
653
710
  node-loggly-bulk "^2.2.4"
654
711
 
655
- bunyan@1.8.15:
712
+ bunyan@^1.8.15:
656
713
  version "1.8.15"
657
714
  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46"
658
715
  integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==
@@ -717,7 +774,7 @@ caller-path@^2.0.0:
717
774
  dependencies:
718
775
  caller-callsite "^2.0.0"
719
776
 
720
- caller@1.0.1, caller@^1.0.1:
777
+ caller@^1.0.1:
721
778
  version "1.0.1"
722
779
  resolved "https://registry.yarnpkg.com/caller/-/caller-1.0.1.tgz#b851860f70e195db3d277395aa1a7e23ea30ecf5"
723
780
  integrity sha1-uFGGD3Dhlds9J3OVqhp+I+ow7PU=
@@ -973,10 +1030,10 @@ commander@^2.19.0:
973
1030
  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
974
1031
  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
975
1032
 
976
- common-tags@1.8.0:
977
- version "1.8.0"
978
- resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
979
- integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
1033
+ common-tags@1.8.2:
1034
+ version "1.8.2"
1035
+ resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
1036
+ integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
980
1037
 
981
1038
  component-emitter@^1.2.1:
982
1039
  version "1.3.0"
@@ -1265,7 +1322,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
1265
1322
  dependencies:
1266
1323
  ms "2.0.0"
1267
1324
 
1268
- debug@4, debug@4.3.1, debug@^4.1.1:
1325
+ debug@4, debug@^4.1.1:
1269
1326
  version "4.3.1"
1270
1327
  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
1271
1328
  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
@@ -1279,6 +1336,13 @@ debug@^3.1.0:
1279
1336
  dependencies:
1280
1337
  ms "^2.1.1"
1281
1338
 
1339
+ debug@^4.3.1:
1340
+ version "4.3.2"
1341
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
1342
+ integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
1343
+ dependencies:
1344
+ ms "2.1.2"
1345
+
1282
1346
  decamelize@^1.1.1:
1283
1347
  version "1.2.0"
1284
1348
  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1820,7 +1884,7 @@ finalhandler@~1.1.2:
1820
1884
  statuses "~1.5.0"
1821
1885
  unpipe "~1.0.0"
1822
1886
 
1823
- find-root@1.1.0, find-root@^1.1.0:
1887
+ find-root@^1.1.0:
1824
1888
  version "1.1.0"
1825
1889
  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
1826
1890
  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
@@ -1945,6 +2009,15 @@ fs-extra@9.1.0, fs-extra@^9.1.0:
1945
2009
  jsonfile "^6.0.1"
1946
2010
  universalify "^2.0.0"
1947
2011
 
2012
+ fs-extra@^10.0.0:
2013
+ version "10.0.0"
2014
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
2015
+ integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
2016
+ dependencies:
2017
+ graceful-fs "^4.2.0"
2018
+ jsonfile "^6.0.1"
2019
+ universalify "^2.0.0"
2020
+
1948
2021
  fs-mkdirp-stream@^1.0.0:
1949
2022
  version "1.0.0"
1950
2023
  resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
@@ -1971,7 +2044,7 @@ function-bind@^1.1.1:
1971
2044
  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1972
2045
  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1973
2046
 
1974
- gelf-stream@1.1.1:
2047
+ gelf-stream@^1.1.1:
1975
2048
  version "1.1.1"
1976
2049
  resolved "https://registry.yarnpkg.com/gelf-stream/-/gelf-stream-1.1.1.tgz#9cea9b6386ac301c741838ca3cb91e66dbfbf669"
1977
2050
  integrity sha1-nOqbY4asMBx0GDjKPLkeZtv79mk=
@@ -2021,28 +2094,6 @@ getpass@^0.1.1:
2021
2094
  dependencies:
2022
2095
  assert-plus "^1.0.0"
2023
2096
 
2024
- ghost-ignition@4.6.3:
2025
- version "4.6.3"
2026
- resolved "https://registry.yarnpkg.com/ghost-ignition/-/ghost-ignition-4.6.3.tgz#eea33bbd84e4e26096f9b7c8838f972acdab7533"
2027
- integrity sha512-F9Kms91NG7miRH8FdmvHvWGt9crVHaKYap3gFrGekCi0TTpssN6duGi0NERSqAcf+7gC7QXT3BP/yCWwBr3fqw==
2028
- dependencies:
2029
- "@tryghost/bunyan-rotating-filestream" "0.0.7"
2030
- "@tryghost/elasticsearch-bunyan" "0.1.1"
2031
- "@tryghost/root-utils" "^0.1.0"
2032
- bunyan "1.8.15"
2033
- bunyan-loggly "1.4.2"
2034
- caller "1.0.1"
2035
- debug "4.3.1"
2036
- find-root "1.1.0"
2037
- fs-extra "9.1.0"
2038
- gelf-stream "1.1.1"
2039
- json-stringify-safe "5.0.1"
2040
- lodash "4.17.21"
2041
- moment "2.27.0"
2042
- nconf "0.11.2"
2043
- prettyjson "1.2.1"
2044
- uuid "8.3.2"
2045
-
2046
2097
  glob-parent@^3.1.0:
2047
2098
  version "3.1.0"
2048
2099
  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -2158,21 +2209,25 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6,
2158
2209
  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
2159
2210
  integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
2160
2211
 
2161
- gscan@4.10.1:
2162
- version "4.10.1"
2163
- resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.10.1.tgz#4375d26295537fbe6d1c721750a3381f33b687a4"
2164
- integrity sha512-Lba8blZ6Yzp2xAxJr8xMFc/SX+jRnZQKnsWiGkFsjZpSgC8SWOkwGiUuFivKYbbMJmbf1bfvixu3QIN5zmfHfQ==
2212
+ gscan@4.11.1:
2213
+ version "4.11.1"
2214
+ resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.11.1.tgz#119450c1aa51ac1a8abb607d8c074f84e36129e7"
2215
+ integrity sha512-anWiynkSEh1FW8SmNIuaWuLrPZ/mVm9ylf3dF60vsnCUQVmtCJFOZhvEbINMAk8j2VEqq2zR8cEfz2VWjN004g==
2165
2216
  dependencies:
2166
- "@sentry/node" "6.13.3"
2217
+ "@sentry/node" "6.15.0"
2218
+ "@tryghost/config" "0.2.1"
2219
+ "@tryghost/debug" "0.1.9"
2220
+ "@tryghost/ignition-errors" "0.1.8"
2221
+ "@tryghost/logging" "1.0.1"
2167
2222
  "@tryghost/pretty-cli" "1.2.22"
2223
+ "@tryghost/server" "0.1.0"
2168
2224
  "@tryghost/zip" "1.1.18"
2169
2225
  bluebird "3.7.2"
2170
2226
  chalk "4.1.2"
2171
- common-tags "1.8.0"
2227
+ common-tags "1.8.2"
2172
2228
  express "4.17.1"
2173
2229
  express-hbs "2.4.0"
2174
2230
  fs-extra "9.1.0"
2175
- ghost-ignition "4.6.3"
2176
2231
  glob "7.2.0"
2177
2232
  lodash "4.17.21"
2178
2233
  multer "1.4.3"
@@ -2886,7 +2941,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
2886
2941
  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
2887
2942
  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
2888
2943
 
2889
- json-stringify-safe@5.0.1, json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
2944
+ json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
2890
2945
  version "5.0.1"
2891
2946
  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
2892
2947
  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
@@ -3212,12 +3267,7 @@ mkdirp@^0.5.4, mkdirp@~0.5.1:
3212
3267
  dependencies:
3213
3268
  minimist "^1.2.5"
3214
3269
 
3215
- moment@2.27.0:
3216
- version "2.27.0"
3217
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d"
3218
- integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==
3219
-
3220
- moment@^2.18.1, moment@^2.19.3:
3270
+ moment@^2.18.1, moment@^2.19.3, moment@^2.29.1:
3221
3271
  version "2.29.1"
3222
3272
  resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
3223
3273
  integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -3237,7 +3287,7 @@ ms@2.1.2:
3237
3287
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
3238
3288
  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
3239
3289
 
3240
- ms@^2.1.1:
3290
+ ms@^2.1.1, ms@^2.1.3:
3241
3291
  version "2.1.3"
3242
3292
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
3243
3293
  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -3302,10 +3352,10 @@ nanomatch@^1.2.9:
3302
3352
  snapdragon "^0.8.1"
3303
3353
  to-regex "^3.0.1"
3304
3354
 
3305
- nconf@0.11.2:
3306
- version "0.11.2"
3307
- resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.11.2.tgz#707fa9db383e85ad7e8f1a17be1b053d1bd751c4"
3308
- integrity sha512-gDmn0Fgt0U0esRE8OCF72tO8AA9dtlG9eZhW4/Ex5hozNC2/LgdhWO4vKLGHNfTxcvsv6Aoxk/ROVYJD2SAdyg==
3355
+ nconf@^0.11.3:
3356
+ version "0.11.3"
3357
+ resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.11.3.tgz#4ee545019c53f1037ca57d696836feede3c49163"
3358
+ integrity sha512-iYsAuDS9pzjVMGIzJrGE0Vk3Eh8r/suJanRAnWGBd29rVS2XtSgzcAo5l6asV3e4hH2idVONHirg1efoBOslBg==
3309
3359
  dependencies:
3310
3360
  async "^1.4.0"
3311
3361
  ini "^2.0.0"
@@ -4062,7 +4112,7 @@ pretty-hrtime@^1.0.0:
4062
4112
  resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
4063
4113
  integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
4064
4114
 
4065
- prettyjson@1.2.1:
4115
+ prettyjson@^1.2.1:
4066
4116
  version "1.2.1"
4067
4117
  resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289"
4068
4118
  integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok=
@@ -4474,10 +4524,10 @@ sax@~1.2.4:
4474
4524
  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
4475
4525
  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
4476
4526
 
4477
- secure-json-parse@^2.1.0:
4478
- version "2.3.1"
4479
- resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.3.1.tgz#908aa5e806e223ff8d179d37ad95c2433f5f147d"
4480
- integrity sha512-5uGhQLHSC9tVa7RGPkSwxbZVsJCZvIODOadAimCXkU1aCa1fWdszj2DktcutK8A7dD58PoRdxTYiy0jFl6qjnw==
4527
+ secure-json-parse@^2.4.0:
4528
+ version "2.4.0"
4529
+ resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85"
4530
+ integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==
4481
4531
 
4482
4532
  secure-keys@^1.0.0:
4483
4533
  version "1.0.0"
@@ -5191,7 +5241,7 @@ utils-merge@1.0.1:
5191
5241
  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
5192
5242
  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
5193
5243
 
5194
- uuid@8.3.2:
5244
+ uuid@8.3.2, uuid@^8.3.2:
5195
5245
  version "8.3.2"
5196
5246
  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
5197
5247
  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
package/core/app.js CHANGED
@@ -27,10 +27,14 @@ const maintenanceMiddleware = (req, res, next) => {
27
27
  fs.createReadStream(path.resolve(__dirname, './server/views/maintenance.html')).pipe(res);
28
28
  };
29
29
 
30
- const rootApp = express('root');
31
- rootApp.use(sentry.requestHandler);
30
+ const rootApp = () => {
31
+ const app = express('root');
32
+ app.use(sentry.requestHandler);
32
33
 
33
- rootApp.enable('maintenance');
34
- rootApp.use(maintenanceMiddleware);
34
+ app.enable('maintenance');
35
+ app.use(maintenanceMiddleware);
36
+
37
+ return app;
38
+ };
35
39
 
36
40
  module.exports = rootApp;
package/core/boot.js CHANGED
@@ -106,16 +106,19 @@ async function initCore({ghostServer, config, bootLogger, frontend}) {
106
106
  });
107
107
  debug('End: Url Service');
108
108
 
109
- // Job Service allows parts of Ghost to run in the background
110
- debug('Begin: Job Service');
111
- const jobService = require('./server/services/jobs');
112
- ghostServer.registerCleanupTask(async () => {
113
- await jobService.shutdown();
114
- });
115
- ghostServer.registerCleanupTask(async () => {
116
- await urlService.shutdown();
117
- });
118
- debug('End: Job Service');
109
+ if (ghostServer) {
110
+ // Job Service allows parts of Ghost to run in the background
111
+ debug('Begin: Job Service');
112
+ const jobService = require('./server/services/jobs');
113
+ ghostServer.registerCleanupTask(async () => {
114
+ await jobService.shutdown();
115
+ });
116
+ debug('End: Job Service');
117
+
118
+ ghostServer.registerCleanupTask(async () => {
119
+ await urlService.shutdown();
120
+ });
121
+ }
119
122
 
120
123
  debug('End: initCore');
121
124
  }
@@ -166,10 +169,27 @@ async function initFrontend() {
166
169
  * @param {Object} options
167
170
  * @param {Boolean} options.backend
168
171
  * @param {Boolean} options.frontend
172
+ * @param {Object} options.config
169
173
  */
170
- async function initExpressApps(options) {
174
+ async function initExpressApps({frontend, backend, config}) {
171
175
  debug('Begin: initExpressApps');
172
- const parentApp = require('./server/web/parent/app')(options);
176
+
177
+ const parentApp = require('./server/web/parent/app')();
178
+ const vhost = require('@tryghost/vhost-middleware');
179
+
180
+ // Mount the express apps on the parentApp
181
+ if (backend) {
182
+ // ADMIN + API
183
+ const backendApp = require('./server/web/parent/backend')();
184
+ parentApp.use(vhost(config.getBackendMountPath(), backendApp));
185
+ }
186
+
187
+ if (frontend) {
188
+ // SITE + MEMBERS
189
+ const frontendApp = require('./server/web/parent/frontend')({});
190
+ parentApp.use(vhost(config.getFrontendMountPath(), frontendApp));
191
+ }
192
+
173
193
  debug('End: initExpressApps');
174
194
  return parentApp;
175
195
  }
@@ -303,7 +323,7 @@ async function initBackgroundServices({config}) {
303
323
 
304
324
  * @returns {Promise<object>} ghostServer
305
325
  */
306
- async function bootGhost({backend = true, frontend = true} = {}) {
326
+ async function bootGhost({backend = true, frontend = true, server = true} = {}) {
307
327
  // Metrics
308
328
  const startTime = Date.now();
309
329
  debug('Begin Boot');
@@ -351,13 +371,15 @@ async function bootGhost({backend = true, frontend = true} = {}) {
351
371
 
352
372
  // Step 2 - Start server with minimal app in global maintenance mode
353
373
  debug('Begin: load server + minimal app');
354
- const rootApp = require('./app');
355
-
356
- const GhostServer = require('./server/ghost-server');
357
- ghostServer = new GhostServer({url: config.getSiteUrl()});
358
- await ghostServer.start(rootApp);
359
- bootLogger.log('server started');
360
- debug('End: load server + minimal app');
374
+ const rootApp = require('./app')();
375
+
376
+ if (server) {
377
+ const GhostServer = require('./server/ghost-server');
378
+ ghostServer = new GhostServer({url: config.getSiteUrl()});
379
+ await ghostServer.start(rootApp);
380
+ bootLogger.log('server started');
381
+ debug('End: load server + minimal app');
382
+ }
361
383
 
362
384
  // Step 3 - Get the DB ready
363
385
  debug('Begin: Get DB ready');
@@ -373,7 +395,7 @@ async function bootGhost({backend = true, frontend = true} = {}) {
373
395
  if (frontend) {
374
396
  await initFrontend();
375
397
  }
376
- const ghostApp = await initExpressApps({frontend, backend});
398
+ const ghostApp = await initExpressApps({frontend, backend, config});
377
399
 
378
400
  if (frontend) {
379
401
  await initDynamicRouting();
@@ -397,15 +419,20 @@ async function bootGhost({backend = true, frontend = true} = {}) {
397
419
  initBackgroundServices({config});
398
420
 
399
421
  // We return the server purely for testing purposes
400
- debug('End Boot: Returning Ghost Server');
401
- return ghostServer;
422
+ if (server) {
423
+ debug('End Boot: Returning Ghost Server');
424
+ return ghostServer;
425
+ } else {
426
+ debug('End boot: Returning Root App');
427
+ return rootApp;
428
+ }
402
429
  } catch (error) {
403
430
  const errors = require('@tryghost/errors');
404
431
 
405
432
  // Ensure the error we have is an ignition error
406
433
  let serverStartError = error;
407
- if (!errors.utils.isIgnitionError(serverStartError)) {
408
- serverStartError = new errors.GhostError({message: serverStartError.message, err: serverStartError});
434
+ if (!errors.utils.isGhostError(serverStartError)) {
435
+ serverStartError = new errors.InternalServerError({message: serverStartError.message, err: serverStartError});
409
436
  }
410
437
 
411
438
  logging.error(serverStartError);