ghost 5.12.4 → 5.13.2

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 (425) hide show
  1. package/components/{tryghost-adapter-manager-5.12.4.tgz → tryghost-adapter-manager-5.13.2.tgz} +0 -0
  2. package/components/{tryghost-api-framework-5.12.4.tgz → tryghost-api-framework-5.13.2.tgz} +0 -0
  3. package/components/tryghost-api-version-compatibility-service-5.13.2.tgz +0 -0
  4. package/components/{tryghost-bootstrap-socket-5.12.4.tgz → tryghost-bootstrap-socket-5.13.2.tgz} +0 -0
  5. package/components/tryghost-constants-5.13.2.tgz +0 -0
  6. package/components/{tryghost-custom-theme-settings-service-5.12.4.tgz → tryghost-custom-theme-settings-service-5.13.2.tgz} +0 -0
  7. package/components/tryghost-domain-events-5.13.2.tgz +0 -0
  8. package/components/tryghost-email-analytics-provider-mailgun-5.13.2.tgz +0 -0
  9. package/components/{tryghost-email-analytics-service-5.12.4.tgz → tryghost-email-analytics-service-5.13.2.tgz} +0 -0
  10. package/components/tryghost-email-content-generator-5.13.2.tgz +0 -0
  11. package/components/tryghost-express-dynamic-redirects-5.13.2.tgz +0 -0
  12. package/components/{tryghost-extract-api-key-5.12.4.tgz → tryghost-extract-api-key-5.13.2.tgz} +0 -0
  13. package/components/tryghost-html-to-plaintext-5.13.2.tgz +0 -0
  14. package/components/{tryghost-job-manager-5.12.4.tgz → tryghost-job-manager-5.13.2.tgz} +0 -0
  15. package/components/{tryghost-magic-link-5.12.4.tgz → tryghost-magic-link-5.13.2.tgz} +0 -0
  16. package/components/{tryghost-mailgun-client-5.12.4.tgz → tryghost-mailgun-client-5.13.2.tgz} +0 -0
  17. package/components/tryghost-member-analytics-service-5.13.2.tgz +0 -0
  18. package/components/{tryghost-member-attribution-5.12.4.tgz → tryghost-member-attribution-5.13.2.tgz} +0 -0
  19. package/components/tryghost-member-events-5.13.2.tgz +0 -0
  20. package/components/tryghost-members-analytics-ingress-5.13.2.tgz +0 -0
  21. package/components/tryghost-members-api-5.13.2.tgz +0 -0
  22. package/components/{tryghost-members-csv-5.12.4.tgz → tryghost-members-csv-5.13.2.tgz} +0 -0
  23. package/components/{tryghost-members-events-service-5.12.4.tgz → tryghost-members-events-service-5.13.2.tgz} +0 -0
  24. package/components/tryghost-members-importer-5.13.2.tgz +0 -0
  25. package/components/{tryghost-members-offers-5.12.4.tgz → tryghost-members-offers-5.13.2.tgz} +0 -0
  26. package/components/{tryghost-members-payments-5.12.4.tgz → tryghost-members-payments-5.13.2.tgz} +0 -0
  27. package/components/{tryghost-members-ssr-5.12.4.tgz → tryghost-members-ssr-5.13.2.tgz} +0 -0
  28. package/components/{tryghost-members-stripe-service-5.12.4.tgz → tryghost-members-stripe-service-5.13.2.tgz} +0 -0
  29. package/components/tryghost-minifier-5.13.2.tgz +0 -0
  30. package/components/tryghost-mw-api-version-mismatch-5.13.2.tgz +0 -0
  31. package/components/tryghost-mw-cache-control-5.13.2.tgz +0 -0
  32. package/components/{tryghost-mw-error-handler-5.12.4.tgz → tryghost-mw-error-handler-5.13.2.tgz} +0 -0
  33. package/components/{tryghost-mw-session-from-token-5.12.4.tgz → tryghost-mw-session-from-token-5.13.2.tgz} +0 -0
  34. package/components/tryghost-mw-update-user-last-seen-5.13.2.tgz +0 -0
  35. package/components/tryghost-mw-vhost-5.13.2.tgz +0 -0
  36. package/components/{tryghost-oembed-service-5.12.4.tgz → tryghost-oembed-service-5.13.2.tgz} +0 -0
  37. package/components/tryghost-package-json-5.13.2.tgz +0 -0
  38. package/components/{tryghost-security-5.12.4.tgz → tryghost-security-5.13.2.tgz} +0 -0
  39. package/components/{tryghost-session-service-5.12.4.tgz → tryghost-session-service-5.13.2.tgz} +0 -0
  40. package/components/tryghost-settings-path-manager-5.13.2.tgz +0 -0
  41. package/components/tryghost-staff-service-5.13.2.tgz +0 -0
  42. package/components/{tryghost-update-check-service-5.12.4.tgz → tryghost-update-check-service-5.13.2.tgz} +0 -0
  43. package/components/{tryghost-verification-trigger-5.12.4.tgz → tryghost-verification-trigger-5.13.2.tgz} +0 -0
  44. package/components/{tryghost-version-notifications-data-service-5.12.4.tgz → tryghost-version-notifications-data-service-5.13.2.tgz} +0 -0
  45. package/core/built/admin/assets/{chunk.143.d420ec4c8b6d96709370.js → chunk.143.cf7ba0bb9fff38640025.js} +6 -6
  46. package/core/built/admin/assets/{chunk.174.ae492405065373dbe102.js → chunk.174.8b8a64726921ecfda41b.js} +157 -155
  47. package/core/built/admin/assets/{chunk.178.bc356bdf63683430ccba.js → chunk.178.0793414b725c536f4635.js} +4 -4
  48. package/core/built/admin/assets/{chunk.579.65e09dd89eec70d059a0.js → chunk.763.9a285d7351e1f4415f8d.js} +122 -114
  49. package/core/built/admin/assets/{chunk.579.65e09dd89eec70d059a0.js.LICENSE.txt → chunk.763.9a285d7351e1f4415f8d.js.LICENSE.txt} +0 -0
  50. package/core/built/admin/assets/{ghost-0526c96b20843697927c1d06a9010197.js → ghost-3203510c519d3195f1e71a34e9eecc59.js} +216 -278
  51. package/core/built/admin/assets/ghost-647c9a79282265a4d29bf273c44f72c0.css +1 -0
  52. package/core/built/admin/assets/ghost-dark-d84a2701166840b73bbbbe657879b65e.css +1 -0
  53. package/core/built/admin/assets/img/amp.svg +4 -1
  54. package/core/built/admin/assets/img/disqus.svg +4 -1
  55. package/core/built/admin/assets/img/github.svg +4 -1
  56. package/core/built/admin/assets/img/google-docs.svg +6 -17
  57. package/core/built/admin/assets/img/mailchimp.svg +7 -8
  58. package/core/built/admin/assets/img/patreon.svg +7 -1
  59. package/core/built/admin/assets/img/paypal.svg +8 -1
  60. package/core/built/admin/assets/img/twitter.svg +1 -0
  61. package/core/built/admin/assets/img/typeform.svg +1 -0
  62. package/core/built/admin/assets/img/unsplash.svg +4 -0
  63. package/core/built/admin/assets/img/zapier-logo.svg +4 -1
  64. package/core/built/admin/assets/img/zapier.svg +4 -1
  65. package/core/built/admin/assets/{vendor-bc9d2c9e5c8a33f0c92e81189d48e04c.css → vendor-733135cd6cbca8126c6fa223d63a5bf3.css} +0 -29
  66. package/core/built/admin/assets/{vendor-52613f40d62355e9ac64cbfa211169bb.js → vendor-ab4b5dfdf8b86f24d726115ac7de0980.js} +5990 -6203
  67. package/core/built/admin/index.html +7 -7
  68. package/core/server/lib/common/events.js +12 -0
  69. package/core/server/services/comments/emails.js +3 -19
  70. package/core/server/services/comments/index.js +2 -0
  71. package/core/server/services/comments/service.js +2 -1
  72. package/core/server/services/mega/post-email-serializer.js +8 -1
  73. package/core/server/services/members/config.js +11 -72
  74. package/core/server/services/members/middleware.js +2 -0
  75. package/core/server/services/members/service.js +2 -1
  76. package/core/server/services/nft-oembed.js +5 -3
  77. package/core/server/services/settings/settings-service.js +5 -72
  78. package/core/server/services/settings-helpers/index.js +6 -0
  79. package/core/server/services/settings-helpers/settings-helpers.js +99 -0
  80. package/core/server/services/staff/index.js +2 -4
  81. package/core/server/services/stripe/config.js +2 -38
  82. package/core/server/services/stripe/service.js +2 -1
  83. package/core/server/services/url/Resources.js +48 -59
  84. package/core/server/services/url/UrlService.js +2 -2
  85. package/core/server/services/webhooks/listen.js +10 -1
  86. package/core/server/web/shared/middleware/api/spam-prevention.js +32 -0
  87. package/core/server/web/shared/middleware/brute.js +1 -1
  88. package/core/shared/config/defaults.json +1 -0
  89. package/package.json +92 -92
  90. package/yarn.lock +332 -137
  91. package/components/tryghost-api-version-compatibility-service-5.12.4.tgz +0 -0
  92. package/components/tryghost-constants-5.12.4.tgz +0 -0
  93. package/components/tryghost-domain-events-5.12.4.tgz +0 -0
  94. package/components/tryghost-email-analytics-provider-mailgun-5.12.4.tgz +0 -0
  95. package/components/tryghost-email-content-generator-5.12.4.tgz +0 -0
  96. package/components/tryghost-express-dynamic-redirects-5.12.4.tgz +0 -0
  97. package/components/tryghost-html-to-plaintext-5.12.4.tgz +0 -0
  98. package/components/tryghost-member-analytics-service-5.12.4.tgz +0 -0
  99. package/components/tryghost-member-events-5.12.4.tgz +0 -0
  100. package/components/tryghost-members-analytics-ingress-5.12.4.tgz +0 -0
  101. package/components/tryghost-members-api-5.12.4.tgz +0 -0
  102. package/components/tryghost-members-importer-5.12.4.tgz +0 -0
  103. package/components/tryghost-minifier-5.12.4.tgz +0 -0
  104. package/components/tryghost-mw-api-version-mismatch-5.12.4.tgz +0 -0
  105. package/components/tryghost-mw-cache-control-5.12.4.tgz +0 -0
  106. package/components/tryghost-mw-update-user-last-seen-5.12.4.tgz +0 -0
  107. package/components/tryghost-mw-vhost-5.12.4.tgz +0 -0
  108. package/components/tryghost-package-json-5.12.4.tgz +0 -0
  109. package/components/tryghost-settings-path-manager-5.12.4.tgz +0 -0
  110. package/components/tryghost-staff-service-5.12.4.tgz +0 -0
  111. package/content/themes/casper/yarn.lock +0 -5385
  112. package/core/built/admin/assets/ghost-0bbbef127e5dc0c0651fc442c4fdba8e.css +0 -1
  113. package/core/built/admin/assets/ghost-dark-27e002e66fbfdfaf3efcde63d5429c38.css +0 -1
  114. package/core/built/admin/assets/icons/account-group.svg +0 -1
  115. package/core/built/admin/assets/icons/activity-placeholder.svg +0 -3
  116. package/core/built/admin/assets/icons/add-stroke.svg +0 -1
  117. package/core/built/admin/assets/icons/add-view.svg +0 -1
  118. package/core/built/admin/assets/icons/add.svg +0 -3
  119. package/core/built/admin/assets/icons/align-center.svg +0 -3
  120. package/core/built/admin/assets/icons/align-left.svg +0 -3
  121. package/core/built/admin/assets/icons/ambulance.svg +0 -1
  122. package/core/built/admin/assets/icons/analytics.svg +0 -14
  123. package/core/built/admin/assets/icons/arrow-down-small.svg +0 -12
  124. package/core/built/admin/assets/icons/arrow-down-stroke.svg +0 -1
  125. package/core/built/admin/assets/icons/arrow-down.svg +0 -3
  126. package/core/built/admin/assets/icons/arrow-left-small.svg +0 -8
  127. package/core/built/admin/assets/icons/arrow-left-stroke.svg +0 -1
  128. package/core/built/admin/assets/icons/arrow-left-tail.svg +0 -4
  129. package/core/built/admin/assets/icons/arrow-left.svg +0 -3
  130. package/core/built/admin/assets/icons/arrow-right-small.svg +0 -12
  131. package/core/built/admin/assets/icons/arrow-right-stroke.svg +0 -1
  132. package/core/built/admin/assets/icons/arrow-right-tail.svg +0 -4
  133. package/core/built/admin/assets/icons/arrow-right.svg +0 -3
  134. package/core/built/admin/assets/icons/arrow-up-small.svg +0 -12
  135. package/core/built/admin/assets/icons/arrow-up-stroke.svg +0 -1
  136. package/core/built/admin/assets/icons/arrow-up.svg +0 -9
  137. package/core/built/admin/assets/icons/arrow2-down.svg +0 -1
  138. package/core/built/admin/assets/icons/arrow2-right.svg +0 -11
  139. package/core/built/admin/assets/icons/audio-file.svg +0 -5
  140. package/core/built/admin/assets/icons/audio-upload.svg +0 -8
  141. package/core/built/admin/assets/icons/book-open.svg +0 -1
  142. package/core/built/admin/assets/icons/bookmark-article.svg +0 -1
  143. package/core/built/admin/assets/icons/box-hands.svg +0 -1
  144. package/core/built/admin/assets/icons/box.svg +0 -3
  145. package/core/built/admin/assets/icons/boxes.svg +0 -1
  146. package/core/built/admin/assets/icons/brackets.svg +0 -1
  147. package/core/built/admin/assets/icons/button.svg +0 -4
  148. package/core/built/admin/assets/icons/calendar-stroke.svg +0 -1
  149. package/core/built/admin/assets/icons/calendar.svg +0 -4
  150. package/core/built/admin/assets/icons/cash.svg +0 -1
  151. package/core/built/admin/assets/icons/chat-double-bubble.svg +0 -1
  152. package/core/built/admin/assets/icons/check-2.svg +0 -1
  153. package/core/built/admin/assets/icons/check-circle-stroke.svg +0 -1
  154. package/core/built/admin/assets/icons/check-circle.svg +0 -5
  155. package/core/built/admin/assets/icons/check.svg +0 -1
  156. package/core/built/admin/assets/icons/cheeseburger.svg +0 -1
  157. package/core/built/admin/assets/icons/circle-ellipsis.svg +0 -1
  158. package/core/built/admin/assets/icons/clock.svg +0 -1
  159. package/core/built/admin/assets/icons/clockface.svg +0 -1
  160. package/core/built/admin/assets/icons/close-stroke.svg +0 -1
  161. package/core/built/admin/assets/icons/close.svg +0 -1
  162. package/core/built/admin/assets/icons/cloud.svg +0 -1
  163. package/core/built/admin/assets/icons/compass-2.svg +0 -1
  164. package/core/built/admin/assets/icons/compass.svg +0 -3
  165. package/core/built/admin/assets/icons/computer.svg +0 -1
  166. package/core/built/admin/assets/icons/confetti.svg +0 -1
  167. package/core/built/admin/assets/icons/content-bold.svg +0 -1
  168. package/core/built/admin/assets/icons/content.svg +0 -1
  169. package/core/built/admin/assets/icons/copy.svg +0 -1
  170. package/core/built/admin/assets/icons/credit-card.svg +0 -1
  171. package/core/built/admin/assets/icons/cross-circle.svg +0 -1
  172. package/core/built/admin/assets/icons/cycle.svg +0 -1
  173. package/core/built/admin/assets/icons/default-favicon.svg +0 -12
  174. package/core/built/admin/assets/icons/desert.svg +0 -59
  175. package/core/built/admin/assets/icons/desktop.svg +0 -5
  176. package/core/built/admin/assets/icons/diamond.svg +0 -1
  177. package/core/built/admin/assets/icons/discount-bubble.svg +0 -1
  178. package/core/built/admin/assets/icons/dividers.svg +0 -4
  179. package/core/built/admin/assets/icons/dotdotdot.svg +0 -1
  180. package/core/built/admin/assets/icons/download-circle.svg +0 -1
  181. package/core/built/admin/assets/icons/download.svg +0 -3
  182. package/core/built/admin/assets/icons/eco-globe.svg +0 -1
  183. package/core/built/admin/assets/icons/eco-lightbulb.svg +0 -1
  184. package/core/built/admin/assets/icons/edit-view.svg +0 -1
  185. package/core/built/admin/assets/icons/ellipsis.svg +0 -1
  186. package/core/built/admin/assets/icons/email-at.svg +0 -1
  187. package/core/built/admin/assets/icons/email-body.svg +0 -1
  188. package/core/built/admin/assets/icons/email-footer.svg +0 -1
  189. package/core/built/admin/assets/icons/email-header.svg +0 -1
  190. package/core/built/admin/assets/icons/email-love-letter.svg +0 -1
  191. package/core/built/admin/assets/icons/email-member.svg +0 -1
  192. package/core/built/admin/assets/icons/email-name.svg +0 -1
  193. package/core/built/admin/assets/icons/email-send.svg +0 -1
  194. package/core/built/admin/assets/icons/email-stroke.svg +0 -4
  195. package/core/built/admin/assets/icons/email-unread.svg +0 -4
  196. package/core/built/admin/assets/icons/email.svg +0 -1
  197. package/core/built/admin/assets/icons/event-canceled-subscription--feature-attribution.svg +0 -6
  198. package/core/built/admin/assets/icons/event-canceled-subscription.svg +0 -6
  199. package/core/built/admin/assets/icons/event-comment--feature-attribution.svg +0 -3
  200. package/core/built/admin/assets/icons/event-comment.svg +0 -3
  201. package/core/built/admin/assets/icons/event-email-delivery-failed--feature-attribution.svg +0 -6
  202. package/core/built/admin/assets/icons/event-email-delivery-failed.svg +0 -6
  203. package/core/built/admin/assets/icons/event-logged-in--feature-attribution.svg +0 -5
  204. package/core/built/admin/assets/icons/event-logged-in.svg +0 -5
  205. package/core/built/admin/assets/icons/event-made-a-payment--feature-attribution.svg +0 -7
  206. package/core/built/admin/assets/icons/event-made-a-payment.svg +0 -7
  207. package/core/built/admin/assets/icons/event-opened-email--feature-attribution.svg +0 -6
  208. package/core/built/admin/assets/icons/event-opened-email.svg +0 -6
  209. package/core/built/admin/assets/icons/event-received-email--feature-attribution.svg +0 -5
  210. package/core/built/admin/assets/icons/event-received-email.svg +0 -5
  211. package/core/built/admin/assets/icons/event-signed-up--feature-attribution.svg +0 -6
  212. package/core/built/admin/assets/icons/event-signed-up.svg +0 -6
  213. package/core/built/admin/assets/icons/event-started-subscription--feature-attribution.svg +0 -6
  214. package/core/built/admin/assets/icons/event-subscribed-to-email--feature-attribution.svg +0 -8
  215. package/core/built/admin/assets/icons/event-subscribed-to-email.svg +0 -8
  216. package/core/built/admin/assets/icons/event-subscriptions--feature-attribution.svg +0 -5
  217. package/core/built/admin/assets/icons/event-subscriptions.svg +0 -5
  218. package/core/built/admin/assets/icons/event-unsubscribed-from-email--feature-attribution.svg +0 -5
  219. package/core/built/admin/assets/icons/event-unsubscribed-from-email.svg +0 -5
  220. package/core/built/admin/assets/icons/expand.svg +0 -1
  221. package/core/built/admin/assets/icons/external.svg +0 -4
  222. package/core/built/admin/assets/icons/eye.svg +0 -4
  223. package/core/built/admin/assets/icons/facebook-heart.svg +0 -5
  224. package/core/built/admin/assets/icons/facebook-like.svg +0 -5
  225. package/core/built/admin/assets/icons/facebook.svg +0 -6
  226. package/core/built/admin/assets/icons/feature-image.svg +0 -4
  227. package/core/built/admin/assets/icons/file-download.svg +0 -1
  228. package/core/built/admin/assets/icons/file-tabular-data.svg +0 -1
  229. package/core/built/admin/assets/icons/file-text-document.svg +0 -1
  230. package/core/built/admin/assets/icons/file-upload.svg +0 -1
  231. package/core/built/admin/assets/icons/film-camera.svg +0 -4
  232. package/core/built/admin/assets/icons/filter.svg +0 -5
  233. package/core/built/admin/assets/icons/firstpromoter-ce8b5219e5b5ebda463bd60396c6ab81.png +0 -0
  234. package/core/built/admin/assets/icons/folder.svg +0 -4
  235. package/core/built/admin/assets/icons/gallery-placeholder.svg +0 -14
  236. package/core/built/admin/assets/icons/get-started-import.svg +0 -13
  237. package/core/built/admin/assets/icons/get-started-members.svg +0 -6
  238. package/core/built/admin/assets/icons/get-started-migrations.svg +0 -6
  239. package/core/built/admin/assets/icons/get-started.svg +0 -3
  240. package/core/built/admin/assets/icons/ghost-logo-orb.svg +0 -10
  241. package/core/built/admin/assets/icons/ghost-logo.svg +0 -1
  242. package/core/built/admin/assets/icons/ghost-orb-pink.svg +0 -10
  243. package/core/built/admin/assets/icons/ghost-orb.svg +0 -10
  244. package/core/built/admin/assets/icons/ghost-squircle.svg +0 -7
  245. package/core/built/admin/assets/icons/gift.svg +0 -1
  246. package/core/built/admin/assets/icons/github-outline.svg +0 -1
  247. package/core/built/admin/assets/icons/github-star.svg +0 -8
  248. package/core/built/admin/assets/icons/github.svg +0 -6
  249. package/core/built/admin/assets/icons/globe.svg +0 -1
  250. package/core/built/admin/assets/icons/google-favicon.svg +0 -6
  251. package/core/built/admin/assets/icons/google-search.svg +0 -3
  252. package/core/built/admin/assets/icons/google.svg +0 -8
  253. package/core/built/admin/assets/icons/grab.svg +0 -4
  254. package/core/built/admin/assets/icons/graph-line.svg +0 -1
  255. package/core/built/admin/assets/icons/heart-beat.svg +0 -1
  256. package/core/built/admin/assets/icons/heart-circle.svg +0 -1
  257. package/core/built/admin/assets/icons/heart.svg +0 -1
  258. package/core/built/admin/assets/icons/help.svg +0 -6
  259. package/core/built/admin/assets/icons/hotspot.svg +0 -4
  260. package/core/built/admin/assets/icons/house-bold.svg +0 -1
  261. package/core/built/admin/assets/icons/house.svg +0 -1
  262. package/core/built/admin/assets/icons/icon.svg +0 -1
  263. package/core/built/admin/assets/icons/id-card.svg +0 -1
  264. package/core/built/admin/assets/icons/idea.svg +0 -1
  265. package/core/built/admin/assets/icons/info.svg +0 -1
  266. package/core/built/admin/assets/icons/instagram.svg +0 -8
  267. package/core/built/admin/assets/icons/integration.svg +0 -1
  268. package/core/built/admin/assets/icons/labs.svg +0 -1
  269. package/core/built/admin/assets/icons/laptop.svg +0 -1
  270. package/core/built/admin/assets/icons/line.svg +0 -10
  271. package/core/built/admin/assets/icons/link.svg +0 -1
  272. package/core/built/admin/assets/icons/list-bullet.svg +0 -1
  273. package/core/built/admin/assets/icons/list-number.svg +0 -1
  274. package/core/built/admin/assets/icons/lock.svg +0 -1
  275. package/core/built/admin/assets/icons/lock2.svg +0 -10
  276. package/core/built/admin/assets/icons/loop-infinite.svg +0 -13
  277. package/core/built/admin/assets/icons/lotus.svg +0 -1
  278. package/core/built/admin/assets/icons/markdown.svg +0 -12
  279. package/core/built/admin/assets/icons/member-add.svg +0 -3
  280. package/core/built/admin/assets/icons/member.svg +0 -1
  281. package/core/built/admin/assets/icons/members-all.svg +0 -5
  282. package/core/built/admin/assets/icons/members-bold.svg +0 -1
  283. package/core/built/admin/assets/icons/members-outline.svg +0 -5
  284. package/core/built/admin/assets/icons/members-paid.svg +0 -4
  285. package/core/built/admin/assets/icons/members-placeholder.svg +0 -5
  286. package/core/built/admin/assets/icons/members-post.svg +0 -5
  287. package/core/built/admin/assets/icons/members-segment.svg +0 -21
  288. package/core/built/admin/assets/icons/members.svg +0 -1
  289. package/core/built/admin/assets/icons/mobile-phone-heart.svg +0 -1
  290. package/core/built/admin/assets/icons/mobile-phone.svg +0 -4
  291. package/core/built/admin/assets/icons/module.svg +0 -1
  292. package/core/built/admin/assets/icons/modules.svg +0 -1
  293. package/core/built/admin/assets/icons/monitor-labs.svg +0 -1
  294. package/core/built/admin/assets/icons/moon.svg +0 -1
  295. package/core/built/admin/assets/icons/mountains.svg +0 -1
  296. package/core/built/admin/assets/icons/mute.svg +0 -3
  297. package/core/built/admin/assets/icons/navigation.svg +0 -1
  298. package/core/built/admin/assets/icons/network.svg +0 -1
  299. package/core/built/admin/assets/icons/news-article.svg +0 -1
  300. package/core/built/admin/assets/icons/nightshift.svg +0 -1
  301. package/core/built/admin/assets/icons/no-data-line-chart.svg +0 -1
  302. package/core/built/admin/assets/icons/no-data-list.svg +0 -9
  303. package/core/built/admin/assets/icons/no-data-subscription.svg +0 -1
  304. package/core/built/admin/assets/icons/no-email.svg +0 -5
  305. package/core/built/admin/assets/icons/no-members.svg +0 -3
  306. package/core/built/admin/assets/icons/offer.svg +0 -4
  307. package/core/built/admin/assets/icons/page-bold.svg +0 -1
  308. package/core/built/admin/assets/icons/page.svg +0 -1
  309. package/core/built/admin/assets/icons/pages-placeholder.svg +0 -3
  310. package/core/built/admin/assets/icons/paint-palette.svg +0 -1
  311. package/core/built/admin/assets/icons/paintbrush.svg +0 -10
  312. package/core/built/admin/assets/icons/pause.svg +0 -4
  313. package/core/built/admin/assets/icons/pen-stroke.svg +0 -1
  314. package/core/built/admin/assets/icons/pen.svg +0 -1
  315. package/core/built/admin/assets/icons/pencil-circle.svg +0 -1
  316. package/core/built/admin/assets/icons/pencil.svg +0 -1
  317. package/core/built/admin/assets/icons/percentage.svg +0 -1
  318. package/core/built/admin/assets/icons/photos-people.svg +0 -1
  319. package/core/built/admin/assets/icons/photos.svg +0 -1
  320. package/core/built/admin/assets/icons/piggy-bank.svg +0 -1
  321. package/core/built/admin/assets/icons/pin.svg +0 -4
  322. package/core/built/admin/assets/icons/plane.svg +0 -1
  323. package/core/built/admin/assets/icons/play.svg +0 -3
  324. package/core/built/admin/assets/icons/plus.svg +0 -1
  325. package/core/built/admin/assets/icons/portal-icon-1.svg +0 -1
  326. package/core/built/admin/assets/icons/portal-icon-2.svg +0 -1
  327. package/core/built/admin/assets/icons/portal-icon-3.svg +0 -1
  328. package/core/built/admin/assets/icons/portal-icon-4.svg +0 -1
  329. package/core/built/admin/assets/icons/portal-icon-5.svg +0 -1
  330. package/core/built/admin/assets/icons/portal-logo-stroke.svg +0 -15
  331. package/core/built/admin/assets/icons/portal-logo.svg +0 -1
  332. package/core/built/admin/assets/icons/post.svg +0 -3
  333. package/core/built/admin/assets/icons/posts-placeholder.svg +0 -4
  334. package/core/built/admin/assets/icons/posts.svg +0 -1
  335. package/core/built/admin/assets/icons/powered-by-stripe.svg +0 -14
  336. package/core/built/admin/assets/icons/powered-by-tenor.svg +0 -35
  337. package/core/built/admin/assets/icons/presentation-code.svg +0 -1
  338. package/core/built/admin/assets/icons/published-post.svg +0 -1
  339. package/core/built/admin/assets/icons/recycle.svg +0 -1
  340. package/core/built/admin/assets/icons/reload.svg +0 -1
  341. package/core/built/admin/assets/icons/repo.svg +0 -1
  342. package/core/built/admin/assets/icons/retry.svg +0 -6
  343. package/core/built/admin/assets/icons/satellite.svg +0 -1
  344. package/core/built/admin/assets/icons/search.svg +0 -1
  345. package/core/built/admin/assets/icons/send-email.svg +0 -1
  346. package/core/built/admin/assets/icons/server.svg +0 -1
  347. package/core/built/admin/assets/icons/settings.svg +0 -1
  348. package/core/built/admin/assets/icons/shield-lock.svg +0 -1
  349. package/core/built/admin/assets/icons/shield.svg +0 -1
  350. package/core/built/admin/assets/icons/sidemenu-open.svg +0 -4
  351. package/core/built/admin/assets/icons/sidemenu.svg +0 -3
  352. package/core/built/admin/assets/icons/signal-tower.svg +0 -1
  353. package/core/built/admin/assets/icons/signout.svg +0 -1
  354. package/core/built/admin/assets/icons/smiley.svg +0 -1
  355. package/core/built/admin/assets/icons/social-facebook.svg +0 -7
  356. package/core/built/admin/assets/icons/social-share.svg +0 -4
  357. package/core/built/admin/assets/icons/social-twitter.svg +0 -4
  358. package/core/built/admin/assets/icons/spinner.svg +0 -1
  359. package/core/built/admin/assets/icons/staff.svg +0 -1
  360. package/core/built/admin/assets/icons/star-filled.svg +0 -1
  361. package/core/built/admin/assets/icons/store.svg +0 -1
  362. package/core/built/admin/assets/icons/stripe-verified-partner-badge.svg +0 -1
  363. package/core/built/admin/assets/icons/summer.svg +0 -1
  364. package/core/built/admin/assets/icons/sun.svg +0 -1
  365. package/core/built/admin/assets/icons/support.svg +0 -1
  366. package/core/built/admin/assets/icons/sync.svg +0 -3
  367. package/core/built/admin/assets/icons/tag.svg +0 -1
  368. package/core/built/admin/assets/icons/tags-placeholder.svg +0 -5
  369. package/core/built/admin/assets/icons/tenor.svg +0 -7
  370. package/core/built/admin/assets/icons/terminal.svg +0 -1
  371. package/core/built/admin/assets/icons/text-vector.svg +0 -1
  372. package/core/built/admin/assets/icons/text.svg +0 -1
  373. package/core/built/admin/assets/icons/theme.svg +0 -1
  374. package/core/built/admin/assets/icons/ticket.svg +0 -1
  375. package/core/built/admin/assets/icons/trash.svg +0 -3
  376. package/core/built/admin/assets/icons/trophy.svg +0 -1
  377. package/core/built/admin/assets/icons/tumbleweed.svg +0 -10
  378. package/core/built/admin/assets/icons/twitter-comment.svg +0 -5
  379. package/core/built/admin/assets/icons/twitter-like.svg +0 -5
  380. package/core/built/admin/assets/icons/twitter-link.svg +0 -6
  381. package/core/built/admin/assets/icons/twitter-logo.svg +0 -3
  382. package/core/built/admin/assets/icons/twitter-retweet.svg +0 -5
  383. package/core/built/admin/assets/icons/twitter-share.svg +0 -6
  384. package/core/built/admin/assets/icons/twitter.svg +0 -1
  385. package/core/built/admin/assets/icons/ufo-attack.svg +0 -1
  386. package/core/built/admin/assets/icons/unmute.svg +0 -3
  387. package/core/built/admin/assets/icons/unsplash-heart.svg +0 -1
  388. package/core/built/admin/assets/icons/unsplash.svg +0 -1
  389. package/core/built/admin/assets/icons/unsubscribed.svg +0 -1
  390. package/core/built/admin/assets/icons/upload-fill.svg +0 -15
  391. package/core/built/admin/assets/icons/upload.svg +0 -1
  392. package/core/built/admin/assets/icons/user-circle.svg +0 -1
  393. package/core/built/admin/assets/icons/user-group.svg +0 -1
  394. package/core/built/admin/assets/icons/user-group2.svg +0 -1
  395. package/core/built/admin/assets/icons/v-ellipsis.svg +0 -1
  396. package/core/built/admin/assets/icons/view-site.svg +0 -1
  397. package/core/built/admin/assets/icons/warning-stroke.svg +0 -1
  398. package/core/built/admin/assets/icons/warning.svg +0 -1
  399. package/core/built/admin/assets/icons/window-app.svg +0 -1
  400. package/core/built/admin/assets/icons/window-pulse.svg +0 -1
  401. package/core/built/admin/assets/icons/wrench-double.svg +0 -1
  402. package/core/built/admin/assets/icons/zap.svg +0 -1
  403. package/core/built/admin/assets/img/abstract-2-2937e2902b64360d0cbe4cec8bd8479b.jpg +0 -0
  404. package/core/built/admin/assets/img/abstract-c52b2f4208e7fd2e7b8abd8b1eec4f7b.jpg +0 -0
  405. package/core/built/admin/assets/img/community-be8c1dcecfb157f2bfba5cababc8e686.jpg +0 -0
  406. package/core/built/admin/assets/img/dashboard/bp1-03a13253453b372d0bbd5e6a19b20fca.jpg +0 -0
  407. package/core/built/admin/assets/img/dashboard/bp2-ed14f9f48c56d5d6fe997dc637a8b1ad.jpg +0 -0
  408. package/core/built/admin/assets/img/dashboard/join-community-bb5478f7dca6c04a2d0baf2b02f880fb.jpg +0 -0
  409. package/core/built/admin/assets/img/dashboard-feature-image-8949197550decb94a8f1dea57ad47819.jpeg +0 -0
  410. package/core/built/admin/assets/img/get-started-995c36b9ede90bb3777c83751e798ef7.jpg +0 -0
  411. package/core/built/admin/assets/img/install-welcome-ff3912d18bf8949df89c83b1c3b8bb66.png +0 -0
  412. package/core/built/admin/assets/img/invite-placeholder-4b3731d47c6c8f6cb3aaa6bc4d870c9f.png +0 -0
  413. package/core/built/admin/assets/img/launch-wizard-bg-13b995b1f02bce34b269db3190897384.png +0 -0
  414. package/core/built/admin/assets/img/more-fe5480ab76c7be7aec28bcfe844f41c1.png +0 -0
  415. package/core/built/admin/assets/img/newsletter-1-197ae8063dfb2e22278d355198029c9e.jpg +0 -0
  416. package/core/built/admin/assets/img/newsletter-2-5a2c7693ea9380d4282061302c01267a.jpg +0 -0
  417. package/core/built/admin/assets/img/themes/Alto-a5172a42994782321d8c9f268928d987.jpg +0 -0
  418. package/core/built/admin/assets/img/themes/Alto-cut-c667d9d6457c5e981aa7bdc8946b215a.jpg +0 -0
  419. package/core/built/admin/assets/img/themes/Ease-7cfb8f06f9b66b1aa04b92493a471fef.jpg +0 -0
  420. package/core/built/admin/assets/img/themes/Ease-cut-78d5aa00682bee6a4cf22155f09e49e8.jpg +0 -0
  421. package/core/built/admin/assets/img/themes/Edition-b94372eb5c88fce0f4befba39148ff28.jpg +0 -0
  422. package/core/built/admin/assets/img/themes/Edition-cut-e6545bab2768aafa1996100774f310ff.jpg +0 -0
  423. package/core/built/admin/assets/img/themes/London-cut-599cba221f81a15ad37fe395cf4e572c.jpg +0 -0
  424. package/core/built/admin/assets/img/users-33427addfe0f11c78b42cccaf83be073.png +0 -0
  425. package/core/built/admin/assets/img/whats-new-header-bg.svg +0 -1
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash');
2
- const Promise = require('bluebird');
3
2
  const debug = require('@tryghost/debug')('services:url:resources');
4
3
  const Resource = require('./Resource');
5
4
  const config = require('../../../shared/config');
@@ -65,7 +64,7 @@ class Resources {
65
64
  /**
66
65
  * @description Helper function to initialize data fetching.
67
66
  */
68
- fetchResources() {
67
+ async fetchResources() {
69
68
  const ops = [];
70
69
  debug('fetchResources');
71
70
 
@@ -77,7 +76,7 @@ class Resources {
77
76
  ops.push(this._fetch(resourceConfig));
78
77
  });
79
78
 
80
- return Promise.all(ops);
79
+ await Promise.all(ops);
81
80
  }
82
81
 
83
82
  /**
@@ -95,28 +94,28 @@ class Resources {
95
94
  * 3 event listeners connected to "_onResourceUpdated" handler and it's 'tag.edited', 'tag.attached', 'tag.detached' events
96
95
  * 1 event listener connected to "_onResourceRemoved" handler and it's 'tag.deleted' event
97
96
  */
98
- initEvenListeners() {
97
+ initEventListeners() {
99
98
  _.each(this.resourcesConfig, (resourceConfig) => {
100
99
  this.data[resourceConfig.type] = [];
101
100
 
102
- this._listenOn(resourceConfig.events.add, (model) => {
103
- return this._onResourceAdded.bind(this)(resourceConfig.type, model);
101
+ this._listenOn(resourceConfig.events.add, async (model) => {
102
+ await this._onResourceAdded(resourceConfig.type, model);
104
103
  });
105
104
 
106
105
  if (_.isArray(resourceConfig.events.update)) {
107
106
  resourceConfig.events.update.forEach((event) => {
108
- this._listenOn(event, (model) => {
109
- return this._onResourceUpdated.bind(this)(resourceConfig.type, model);
107
+ this._listenOn(event, async (model) => {
108
+ await this._onResourceUpdated(resourceConfig.type, model);
110
109
  });
111
110
  });
112
111
  } else {
113
- this._listenOn(resourceConfig.events.update, (model) => {
114
- return this._onResourceUpdated.bind(this)(resourceConfig.type, model);
112
+ this._listenOn(resourceConfig.events.update, async (model) => {
113
+ await this._onResourceUpdated(resourceConfig.type, model);
115
114
  });
116
115
  }
117
116
 
118
117
  this._listenOn(resourceConfig.events.remove, (model) => {
119
- return this._onResourceRemoved.bind(this)(resourceConfig.type, model);
118
+ this._onResourceRemoved(resourceConfig.type, model);
120
119
  });
121
120
  });
122
121
  }
@@ -240,10 +239,9 @@ class Resources {
240
239
  *
241
240
  * @param {String} type (post,user...)
242
241
  * @param {Bookshelf-Model} model
243
- * @returns {Promise}
244
242
  * @private
245
243
  */
246
- _onResourceAdded(type, model) {
244
+ async _onResourceAdded(type, model) {
247
245
  debug('_onResourceAdded', type);
248
246
 
249
247
  const resourceConfig = _.find(this.resourcesConfig, {type: type});
@@ -267,27 +265,23 @@ class Resources {
267
265
  }
268
266
  });
269
267
  } else {
270
- return Promise.resolve()
271
- .then(() => {
272
- return this._fetchSingle(resourceConfig, model.id);
273
- })
274
- .then(([dbResource]) => {
275
- if (dbResource) {
276
- const resource = new Resource(type, dbResource);
268
+ const [dbResource] = await this._fetchSingle(resourceConfig, model.id);
277
269
 
278
- debug('_onResourceAdded', type);
279
- this.data[type].push(resource);
270
+ if (dbResource) {
271
+ const resource = new Resource(type, dbResource);
280
272
 
281
- this.queue.start({
282
- event: 'added',
283
- action: 'added:' + model.id,
284
- eventData: {
285
- id: model.id,
286
- type: type
287
- }
288
- });
273
+ debug('_onResourceAdded', type);
274
+ this.data[type].push(resource);
275
+
276
+ this.queue.start({
277
+ event: 'added',
278
+ action: 'added:' + model.id,
279
+ eventData: {
280
+ id: model.id,
281
+ type: type
289
282
  }
290
283
  });
284
+ }
291
285
  }
292
286
  }
293
287
 
@@ -309,10 +303,9 @@ class Resources {
309
303
  *
310
304
  * @param {String} type (post,user...)
311
305
  * @param {Bookshelf-Model} model
312
- * @returns {Promise}
313
306
  * @private
314
307
  */
315
- _onResourceUpdated(type, model) {
308
+ async _onResourceUpdated(type, model) {
316
309
  debug('_onResourceUpdated', type);
317
310
 
318
311
  const resourceConfig = _.find(this.resourcesConfig, {type: type});
@@ -346,34 +339,30 @@ class Resources {
346
339
  return true;
347
340
  });
348
341
  } else {
349
- return Promise.resolve()
350
- .then(() => {
351
- return this._fetchSingle(resourceConfig, model.id);
352
- })
353
- .then(([dbResource]) => {
354
- const resource = this.data[type].find(r => (r.data.id === model.id));
355
-
356
- // CASE: cached resource exists, API conditions matched with the data in the db
357
- if (resource && dbResource) {
358
- resource.update(dbResource);
359
-
360
- // CASE: pretend it was added
361
- if (!resource.isReserved()) {
362
- this.queue.start({
363
- event: 'added',
364
- action: 'added:' + dbResource.id,
365
- eventData: {
366
- id: dbResource.id,
367
- type: type
368
- }
369
- });
342
+ const [dbResource] = await this._fetchSingle(resourceConfig, model.id);
343
+
344
+ const resource = this.data[type].find(r => (r.data.id === model.id));
345
+
346
+ // CASE: cached resource exists, API conditions matched with the data in the db
347
+ if (resource && dbResource) {
348
+ resource.update(dbResource);
349
+
350
+ // CASE: pretend it was added
351
+ if (!resource.isReserved()) {
352
+ this.queue.start({
353
+ event: 'added',
354
+ action: 'added:' + dbResource.id,
355
+ eventData: {
356
+ id: dbResource.id,
357
+ type: type
370
358
  }
371
- } else if (!resource && dbResource) {
372
- this._onResourceAdded(type, model);
373
- } else if (resource && !dbResource) {
374
- this._onResourceRemoved(type, model);
375
- }
376
- });
359
+ });
360
+ }
361
+ } else if (!resource && dbResource) {
362
+ await this._onResourceAdded(type, model);
363
+ } else if (resource && !dbResource) {
364
+ await this._onResourceRemoved(type, model);
365
+ }
377
366
  }
378
367
  }
379
368
 
@@ -322,12 +322,12 @@ class UrlService {
322
322
  this.urls.urls = persistedUrls;
323
323
  this.resources.data = persistedResources;
324
324
  this.resources.initResourceConfig();
325
- this.resources.initEvenListeners();
325
+ this.resources.initEventListeners();
326
326
 
327
327
  this._onQueueEnded('init');
328
328
  } else {
329
329
  this.resources.initResourceConfig();
330
- this.resources.initEvenListeners();
330
+ this.resources.initEventListeners();
331
331
  await this.resources.fetchResources();
332
332
  // CASE: all resources are fetched, start the queue
333
333
  this.queue.start({
@@ -59,7 +59,16 @@ const listen = async () => {
59
59
 
60
60
  const webhookTrigger = new WebhookTrigger({models, payload});
61
61
  _.each(WEBHOOKS, (event) => {
62
- events.on(event, (model, options) => {
62
+ // @NOTE: The early exit makes sure the listeners are only registered once.
63
+ // During testing the "events" instance is kept around with all the
64
+ // listeners even after a reboot. This method could be removed once
65
+ // the common/events is refactored into something that starts from a
66
+ // clean instance on each reboot.
67
+ if (events.hasRegisteredListener(event, 'processWebhookTrigger')) {
68
+ return;
69
+ }
70
+
71
+ events.on(event, function processWebhookTrigger(model, options) {
63
72
  // CASE: avoid triggering webhooks when importing
64
73
  if (options && options.importing) {
65
74
  return;
@@ -36,6 +36,7 @@ let privateBlogInstance;
36
36
  let globalResetInstance;
37
37
  let globalBlockInstance;
38
38
  let userLoginInstance;
39
+ let membersAuthInstance;
39
40
  let userResetInstance;
40
41
  let contentApiKeyInstance;
41
42
 
@@ -121,6 +122,36 @@ const globalReset = () => {
121
122
  return globalResetInstance;
122
123
  };
123
124
 
125
+ const membersAuth = () => {
126
+ const ExpressBrute = require('express-brute');
127
+ const BruteKnex = require('brute-knex');
128
+ const db = require('../../../../data/db');
129
+
130
+ store = store || new BruteKnex({
131
+ tablename: 'brute',
132
+ createTable: false,
133
+ knex: db.knex
134
+ });
135
+
136
+ if (!membersAuthInstance) {
137
+ membersAuthInstance = new ExpressBrute(store,
138
+ extend({
139
+ attachResetToRequest: true,
140
+ failCallback(req, res, next, nextValidRequestDate) {
141
+ return next(new errors.TooManyRequestsError({
142
+ message: `Too many sign-in attempts try again in ${moment(nextValidRequestDate).fromNow(true)}`,
143
+ context: tpl(messages.tooManySigninAttempts.context),
144
+ help: tpl(messages.tooManySigninAttempts.context)
145
+ }));
146
+ },
147
+ handleStoreError: handleStoreError
148
+ }, pick(spamUserLogin, spamConfigKeys))
149
+ );
150
+ }
151
+
152
+ return membersAuthInstance;
153
+ };
154
+
124
155
  // Stops login attempts for a user+IP pair with an increasing time period starting from 10 minutes
125
156
  // and rising to a week in a fibonnaci sequence
126
157
  // The user+IP count is reset when on successful login
@@ -249,6 +280,7 @@ module.exports = {
249
280
  globalBlock: globalBlock,
250
281
  globalReset: globalReset,
251
282
  userLogin: userLogin,
283
+ membersAuth: membersAuth,
252
284
  userReset: userReset,
253
285
  privateBlog: privateBlog,
254
286
  contentApiKey: contentApiKey
@@ -86,7 +86,7 @@ module.exports = {
86
86
  /**
87
87
  */
88
88
  membersAuth(req, res, next) {
89
- return spamPrevention.userLogin().getMiddleware({
89
+ return spamPrevention.membersAuth().getMiddleware({
90
90
  ignoreIP: false,
91
91
  key(_req, _res, _next) {
92
92
  if (_req.body.email) {
@@ -52,6 +52,7 @@
52
52
  },
53
53
  "logging": {
54
54
  "level": "info",
55
+ "useLocalTime": false,
55
56
  "rotation": {
56
57
  "enabled": false,
57
58
  "period": "1d",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.12.4",
3
+ "version": "5.13.2",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -45,79 +45,79 @@
45
45
  "lint:code": "yarn lint:server && yarn lint:shared && yarn lint:frontend",
46
46
  "lint": "yarn lint:server && yarn lint:shared && yarn lint:frontend && yarn lint:test",
47
47
  "build:css": "postcss core/frontend/public/ghost.css --no-map --use cssnano -o core/frontend/public/ghost.min.css",
48
- "prepack": "npx --yes daniellockyer/monobundle && yarn workspace ghost-admin run build:prod && yarn build:css"
48
+ "prepack": "yarn workspace ghost-admin run build:prod && yarn build:css && npx --yes daniellockyer/monobundle"
49
49
  },
50
50
  "engines": {
51
51
  "node": "^14.17.0 || ^16.13.0",
52
52
  "cli": "^1.17.0"
53
53
  },
54
54
  "dependencies": {
55
- "@sentry/node": "7.11.1",
56
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.12.4.tgz",
55
+ "@sentry/node": "7.12.0",
56
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.13.2.tgz",
57
57
  "@tryghost/admin-api-schema": "4.1.1",
58
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.12.4.tgz",
59
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.12.4.tgz",
58
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.13.2.tgz",
59
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.13.2.tgz",
60
60
  "@tryghost/bookshelf-plugins": "0.5.0",
61
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.12.4.tgz",
61
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.13.2.tgz",
62
62
  "@tryghost/color-utils": "0.1.20",
63
63
  "@tryghost/config-url-helpers": "1.0.3",
64
- "@tryghost/constants": "file:components/tryghost-constants-5.12.4.tgz",
65
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.12.4.tgz",
64
+ "@tryghost/constants": "file:components/tryghost-constants-5.13.2.tgz",
65
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.13.2.tgz",
66
66
  "@tryghost/database-info": "0.3.9",
67
67
  "@tryghost/debug": "0.1.18",
68
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.12.4.tgz",
69
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.12.4.tgz",
70
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.12.4.tgz",
71
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.12.4.tgz",
68
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.13.2.tgz",
69
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.13.2.tgz",
70
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.13.2.tgz",
71
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.13.2.tgz",
72
72
  "@tryghost/errors": "1.2.15",
73
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.12.4.tgz",
73
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.13.2.tgz",
74
74
  "@tryghost/helpers": "1.1.72",
75
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.12.4.tgz",
75
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.13.2.tgz",
76
76
  "@tryghost/image-transform": "1.2.2",
77
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.12.4.tgz",
77
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.13.2.tgz",
78
78
  "@tryghost/kg-card-factory": "3.1.4",
79
79
  "@tryghost/kg-default-atoms": "3.1.3",
80
80
  "@tryghost/kg-default-cards": "5.16.3",
81
81
  "@tryghost/kg-mobiledoc-html-renderer": "5.3.6",
82
82
  "@tryghost/limit-service": "1.2.3",
83
- "@tryghost/logging": "2.2.4",
84
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.12.4.tgz",
85
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.12.4.tgz",
86
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.12.4.tgz",
87
- "@tryghost/member-events": "file:components/tryghost-member-events-5.12.4.tgz",
88
- "@tryghost/members-api": "file:components/tryghost-members-api-5.12.4.tgz",
89
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.12.4.tgz",
90
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.12.4.tgz",
91
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.12.4.tgz",
92
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.12.4.tgz",
93
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.12.4.tgz",
94
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.12.4.tgz",
83
+ "@tryghost/logging": "2.3.0",
84
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.13.2.tgz",
85
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.13.2.tgz",
86
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.13.2.tgz",
87
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.13.2.tgz",
88
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.13.2.tgz",
89
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.13.2.tgz",
90
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.13.2.tgz",
91
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.13.2.tgz",
92
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.13.2.tgz",
93
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.13.2.tgz",
94
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.13.2.tgz",
95
95
  "@tryghost/metrics": "1.0.15",
96
- "@tryghost/minifier": "file:components/tryghost-minifier-5.12.4.tgz",
97
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.12.4.tgz",
98
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.12.4.tgz",
99
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.12.4.tgz",
100
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.12.4.tgz",
101
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.12.4.tgz",
96
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.13.2.tgz",
97
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.13.2.tgz",
98
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.13.2.tgz",
99
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.13.2.tgz",
100
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.13.2.tgz",
101
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.13.2.tgz",
102
102
  "@tryghost/nodemailer": "0.3.25",
103
103
  "@tryghost/nql": "0.9.2",
104
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.12.4.tgz",
105
- "@tryghost/package-json": "file:components/tryghost-package-json-5.12.4.tgz",
104
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.13.2.tgz",
105
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.13.2.tgz",
106
106
  "@tryghost/pretty-cli": "1.2.30",
107
107
  "@tryghost/promise": "0.1.21",
108
108
  "@tryghost/request": "0.1.29",
109
- "@tryghost/security": "file:components/tryghost-security-5.12.4.tgz",
110
- "@tryghost/session-service": "file:components/tryghost-session-service-5.12.4.tgz",
111
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.12.4.tgz",
109
+ "@tryghost/security": "file:components/tryghost-security-5.13.2.tgz",
110
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.13.2.tgz",
111
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.13.2.tgz",
112
112
  "@tryghost/social-urls": "0.1.33",
113
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.12.4.tgz",
113
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.13.2.tgz",
114
114
  "@tryghost/stats-service": "0.3.0",
115
115
  "@tryghost/string": "0.1.27",
116
116
  "@tryghost/tpl": "0.1.18",
117
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.12.4.tgz",
117
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.13.2.tgz",
118
118
  "@tryghost/url-utils": "4.0.3",
119
119
  "@tryghost/validator": "0.1.27",
120
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.12.4.tgz",
120
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.13.2.tgz",
121
121
  "@tryghost/version": "0.1.16",
122
122
  "@tryghost/zip": "1.1.28",
123
123
  "amperize": "0.6.1",
@@ -148,7 +148,7 @@
148
148
  "glob": "8.0.3",
149
149
  "got": "9.6.0",
150
150
  "gscan": "4.34.0",
151
- "human-number": "2.0.0",
151
+ "human-number": "2.0.1",
152
152
  "image-size": "1.0.2",
153
153
  "intl": "1.2.5",
154
154
  "intl-messageformat": "5.4.3",
@@ -157,8 +157,8 @@
157
157
  "jsonwebtoken": "8.5.1",
158
158
  "juice": "8.1.0",
159
159
  "keypair": "1.0.4",
160
- "knex": "2.2.0",
161
- "knex-migrator": "5.0.3",
160
+ "knex": "2.3.0",
161
+ "knex-migrator": "5.0.4",
162
162
  "lodash": "4.17.21",
163
163
  "luxon": "3.0.3",
164
164
  "moment": "2.24.0",
@@ -178,12 +178,12 @@
178
178
  "xml": "1.0.1"
179
179
  },
180
180
  "optionalDependencies": {
181
- "@tryghost/html-to-mobiledoc": "1.8.10",
181
+ "@tryghost/html-to-mobiledoc": "1.8.11",
182
182
  "sqlite3": "5.0.11"
183
183
  },
184
184
  "devDependencies": {
185
185
  "@playwright/test": "1.25.1",
186
- "@tryghost/express-test": "0.11.2",
186
+ "@tryghost/express-test": "0.11.3",
187
187
  "@tryghost/webhook-mock-receiver": "0.1.2",
188
188
  "@types/common-tags": "1.8.1",
189
189
  "c8": "7.12.0",
@@ -209,52 +209,52 @@
209
209
  "tmp": "0.2.1"
210
210
  },
211
211
  "resolutions": {
212
- "@tryghost/logging": "2.2.4",
212
+ "@tryghost/logging": "2.3.0",
213
213
  "moment": "2.24.0",
214
214
  "moment-timezone": "0.5.23",
215
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.12.4.tgz",
216
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.12.4.tgz",
217
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.12.4.tgz",
218
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.12.4.tgz",
219
- "@tryghost/constants": "file:components/tryghost-constants-5.12.4.tgz",
220
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.12.4.tgz",
221
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.12.4.tgz",
222
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.12.4.tgz",
223
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.12.4.tgz",
224
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.12.4.tgz",
225
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.12.4.tgz",
226
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.12.4.tgz",
227
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.12.4.tgz",
228
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.12.4.tgz",
229
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.12.4.tgz",
230
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.12.4.tgz",
231
- "@tryghost/member-analytics-service": "file:components/tryghost-member-analytics-service-5.12.4.tgz",
232
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.12.4.tgz",
233
- "@tryghost/member-events": "file:components/tryghost-member-events-5.12.4.tgz",
234
- "@tryghost/members-analytics-ingress": "file:components/tryghost-members-analytics-ingress-5.12.4.tgz",
235
- "@tryghost/members-api": "file:components/tryghost-members-api-5.12.4.tgz",
236
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.12.4.tgz",
237
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.12.4.tgz",
238
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.12.4.tgz",
239
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.12.4.tgz",
240
- "@tryghost/minifier": "file:components/tryghost-minifier-5.12.4.tgz",
241
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.12.4.tgz",
242
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.12.4.tgz",
243
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.12.4.tgz",
244
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.12.4.tgz",
245
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.12.4.tgz",
246
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.12.4.tgz",
247
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.12.4.tgz",
248
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.12.4.tgz",
249
- "@tryghost/package-json": "file:components/tryghost-package-json-5.12.4.tgz",
250
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.12.4.tgz",
251
- "@tryghost/security": "file:components/tryghost-security-5.12.4.tgz",
252
- "@tryghost/session-service": "file:components/tryghost-session-service-5.12.4.tgz",
253
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.12.4.tgz",
254
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.12.4.tgz",
255
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.12.4.tgz",
256
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.12.4.tgz",
257
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.12.4.tgz",
258
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.12.4.tgz"
215
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.13.2.tgz",
216
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.13.2.tgz",
217
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.13.2.tgz",
218
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.13.2.tgz",
219
+ "@tryghost/constants": "file:components/tryghost-constants-5.13.2.tgz",
220
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.13.2.tgz",
221
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.13.2.tgz",
222
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.13.2.tgz",
223
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.13.2.tgz",
224
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.13.2.tgz",
225
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.13.2.tgz",
226
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.13.2.tgz",
227
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.13.2.tgz",
228
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.13.2.tgz",
229
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.13.2.tgz",
230
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.13.2.tgz",
231
+ "@tryghost/member-analytics-service": "file:components/tryghost-member-analytics-service-5.13.2.tgz",
232
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.13.2.tgz",
233
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.13.2.tgz",
234
+ "@tryghost/members-analytics-ingress": "file:components/tryghost-members-analytics-ingress-5.13.2.tgz",
235
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.13.2.tgz",
236
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.13.2.tgz",
237
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.13.2.tgz",
238
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.13.2.tgz",
239
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.13.2.tgz",
240
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.13.2.tgz",
241
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.13.2.tgz",
242
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.13.2.tgz",
243
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.13.2.tgz",
244
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.13.2.tgz",
245
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.13.2.tgz",
246
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.13.2.tgz",
247
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.13.2.tgz",
248
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.13.2.tgz",
249
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.13.2.tgz",
250
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.13.2.tgz",
251
+ "@tryghost/security": "file:components/tryghost-security-5.13.2.tgz",
252
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.13.2.tgz",
253
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.13.2.tgz",
254
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.13.2.tgz",
255
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.13.2.tgz",
256
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.13.2.tgz",
257
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.13.2.tgz",
258
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.13.2.tgz"
259
259
  }
260
260
  }