ghost 5.87.0 → 5.87.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 (168) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +6 -5
  3. package/components/{tryghost-adapter-cache-memory-ttl-5.87.0.tgz → tryghost-adapter-cache-memory-ttl-5.87.1.tgz} +0 -0
  4. package/components/{tryghost-adapter-cache-redis-5.87.0.tgz → tryghost-adapter-cache-redis-5.87.1.tgz} +0 -0
  5. package/components/{tryghost-adapter-manager-5.87.0.tgz → tryghost-adapter-manager-5.87.1.tgz} +0 -0
  6. package/components/tryghost-announcement-bar-settings-5.87.1.tgz +0 -0
  7. package/components/{tryghost-api-framework-5.87.0.tgz → tryghost-api-framework-5.87.1.tgz} +0 -0
  8. package/components/{tryghost-api-version-compatibility-service-5.87.0.tgz → tryghost-api-version-compatibility-service-5.87.1.tgz} +0 -0
  9. package/components/tryghost-audience-feedback-5.87.1.tgz +0 -0
  10. package/components/tryghost-bookshelf-repository-5.87.1.tgz +0 -0
  11. package/components/{tryghost-bootstrap-socket-5.87.0.tgz → tryghost-bootstrap-socket-5.87.1.tgz} +0 -0
  12. package/components/tryghost-collections-5.87.1.tgz +0 -0
  13. package/components/tryghost-constants-5.87.1.tgz +0 -0
  14. package/components/tryghost-custom-theme-settings-service-5.87.1.tgz +0 -0
  15. package/components/{tryghost-data-generator-5.87.0.tgz → tryghost-data-generator-5.87.1.tgz} +0 -0
  16. package/components/{tryghost-domain-events-5.87.0.tgz → tryghost-domain-events-5.87.1.tgz} +0 -0
  17. package/components/tryghost-donations-5.87.1.tgz +0 -0
  18. package/components/{tryghost-dynamic-routing-events-5.87.0.tgz → tryghost-dynamic-routing-events-5.87.1.tgz} +0 -0
  19. package/components/tryghost-email-addresses-5.87.1.tgz +0 -0
  20. package/components/{tryghost-email-analytics-provider-mailgun-5.87.0.tgz → tryghost-email-analytics-provider-mailgun-5.87.1.tgz} +0 -0
  21. package/components/{tryghost-email-analytics-service-5.87.0.tgz → tryghost-email-analytics-service-5.87.1.tgz} +0 -0
  22. package/components/tryghost-email-content-generator-5.87.1.tgz +0 -0
  23. package/components/{tryghost-email-events-5.87.0.tgz → tryghost-email-events-5.87.1.tgz} +0 -0
  24. package/components/tryghost-email-service-5.87.1.tgz +0 -0
  25. package/components/tryghost-email-suppression-list-5.87.1.tgz +0 -0
  26. package/components/{tryghost-express-dynamic-redirects-5.87.0.tgz → tryghost-express-dynamic-redirects-5.87.1.tgz} +0 -0
  27. package/components/{tryghost-external-media-inliner-5.87.0.tgz → tryghost-external-media-inliner-5.87.1.tgz} +0 -0
  28. package/components/{tryghost-extract-api-key-5.87.0.tgz → tryghost-extract-api-key-5.87.1.tgz} +0 -0
  29. package/components/tryghost-ghost-5.87.1.tgz +0 -0
  30. package/components/tryghost-html-to-plaintext-5.87.1.tgz +0 -0
  31. package/components/tryghost-i18n-5.87.1.tgz +0 -0
  32. package/components/{tryghost-importer-handler-content-files-5.87.0.tgz → tryghost-importer-handler-content-files-5.87.1.tgz} +0 -0
  33. package/components/{tryghost-importer-revue-5.87.0.tgz → tryghost-importer-revue-5.87.1.tgz} +0 -0
  34. package/components/tryghost-in-memory-repository-5.87.1.tgz +0 -0
  35. package/components/{tryghost-job-manager-5.87.0.tgz → tryghost-job-manager-5.87.1.tgz} +0 -0
  36. package/components/tryghost-link-redirects-5.87.1.tgz +0 -0
  37. package/components/tryghost-link-replacer-5.87.1.tgz +0 -0
  38. package/components/tryghost-link-tracking-5.87.1.tgz +0 -0
  39. package/components/{tryghost-magic-link-5.87.0.tgz → tryghost-magic-link-5.87.1.tgz} +0 -0
  40. package/components/{tryghost-mail-events-5.87.0.tgz → tryghost-mail-events-5.87.1.tgz} +0 -0
  41. package/components/{tryghost-mailgun-client-5.87.0.tgz → tryghost-mailgun-client-5.87.1.tgz} +0 -0
  42. package/components/{tryghost-member-attribution-5.87.0.tgz → tryghost-member-attribution-5.87.1.tgz} +0 -0
  43. package/components/{tryghost-member-events-5.87.0.tgz → tryghost-member-events-5.87.1.tgz} +0 -0
  44. package/components/tryghost-members-api-5.87.1.tgz +0 -0
  45. package/components/tryghost-members-csv-5.87.1.tgz +0 -0
  46. package/components/tryghost-members-events-service-5.87.1.tgz +0 -0
  47. package/components/{tryghost-members-importer-5.87.0.tgz → tryghost-members-importer-5.87.1.tgz} +0 -0
  48. package/components/{tryghost-members-offers-5.87.0.tgz → tryghost-members-offers-5.87.1.tgz} +0 -0
  49. package/components/{tryghost-members-payments-5.87.0.tgz → tryghost-members-payments-5.87.1.tgz} +0 -0
  50. package/components/tryghost-members-ssr-5.87.1.tgz +0 -0
  51. package/components/{tryghost-members-stripe-service-5.87.0.tgz → tryghost-members-stripe-service-5.87.1.tgz} +0 -0
  52. package/components/{tryghost-mentions-email-report-5.87.0.tgz → tryghost-mentions-email-report-5.87.1.tgz} +0 -0
  53. package/components/{tryghost-milestones-5.87.0.tgz → tryghost-milestones-5.87.1.tgz} +0 -0
  54. package/components/{tryghost-minifier-5.87.0.tgz → tryghost-minifier-5.87.1.tgz} +0 -0
  55. package/components/tryghost-model-to-domain-event-interceptor-5.87.1.tgz +0 -0
  56. package/components/{tryghost-mw-api-version-mismatch-5.87.0.tgz → tryghost-mw-api-version-mismatch-5.87.1.tgz} +0 -0
  57. package/components/tryghost-mw-cache-control-5.87.1.tgz +0 -0
  58. package/components/tryghost-mw-error-handler-5.87.1.tgz +0 -0
  59. package/components/{tryghost-mw-session-from-token-5.87.0.tgz → tryghost-mw-session-from-token-5.87.1.tgz} +0 -0
  60. package/components/{tryghost-mw-update-user-last-seen-5.87.0.tgz → tryghost-mw-update-user-last-seen-5.87.1.tgz} +0 -0
  61. package/components/{tryghost-mw-version-match-5.87.0.tgz → tryghost-mw-version-match-5.87.1.tgz} +0 -0
  62. package/components/{tryghost-mw-vhost-5.87.0.tgz → tryghost-mw-vhost-5.87.1.tgz} +0 -0
  63. package/components/tryghost-nql-filter-expansions-5.87.1.tgz +0 -0
  64. package/components/tryghost-oembed-service-5.87.1.tgz +0 -0
  65. package/components/{tryghost-package-json-5.87.0.tgz → tryghost-package-json-5.87.1.tgz} +0 -0
  66. package/components/tryghost-post-events-5.87.1.tgz +0 -0
  67. package/components/{tryghost-post-revisions-5.87.0.tgz → tryghost-post-revisions-5.87.1.tgz} +0 -0
  68. package/components/{tryghost-posts-service-5.87.0.tgz → tryghost-posts-service-5.87.1.tgz} +0 -0
  69. package/components/tryghost-recommendations-5.87.1.tgz +0 -0
  70. package/components/tryghost-referrers-5.87.1.tgz +0 -0
  71. package/components/{tryghost-security-5.87.0.tgz → tryghost-security-5.87.1.tgz} +0 -0
  72. package/components/{tryghost-session-service-5.87.0.tgz → tryghost-session-service-5.87.1.tgz} +0 -0
  73. package/components/{tryghost-settings-path-manager-5.87.0.tgz → tryghost-settings-path-manager-5.87.1.tgz} +0 -0
  74. package/components/tryghost-slack-notifications-5.87.1.tgz +0 -0
  75. package/components/{tryghost-staff-service-5.87.0.tgz → tryghost-staff-service-5.87.1.tgz} +0 -0
  76. package/components/tryghost-stats-service-5.87.1.tgz +0 -0
  77. package/components/{tryghost-tiers-5.87.0.tgz → tryghost-tiers-5.87.1.tgz} +0 -0
  78. package/components/{tryghost-update-check-service-5.87.0.tgz → tryghost-update-check-service-5.87.1.tgz} +0 -0
  79. package/components/{tryghost-verification-trigger-5.87.0.tgz → tryghost-verification-trigger-5.87.1.tgz} +0 -0
  80. package/components/tryghost-version-notifications-data-service-5.87.1.tgz +0 -0
  81. package/components/{tryghost-webmentions-5.87.0.tgz → tryghost-webmentions-5.87.1.tgz} +0 -0
  82. package/content/themes/casper/assets/built/screen.css +1 -1
  83. package/content/themes/casper/assets/built/screen.css.map +1 -1
  84. package/content/themes/casper/assets/css/screen.css +10 -0
  85. package/content/themes/casper/package.json +1 -1
  86. package/content/themes/casper/post.hbs +1 -1
  87. package/content/themes/source/assets/built/screen.css +1 -1
  88. package/content/themes/source/assets/built/screen.css.map +1 -1
  89. package/content/themes/source/assets/css/screen.css +11 -45
  90. package/content/themes/source/default.hbs +3 -0
  91. package/content/themes/source/package.json +1 -1
  92. package/content/themes/source/partials/email-subscription.hbs +1 -1
  93. package/content/themes/source/partials/feature-image.hbs +8 -9
  94. package/content/themes/source/partials/typography/fonts.hbs +15 -0
  95. package/content/themes/source/partials/typography/mono.hbs +21 -0
  96. package/content/themes/source/partials/typography/sans.hbs +11 -0
  97. package/content/themes/source/partials/typography/serif.hbs +21 -0
  98. package/content/themes/source/post.hbs +2 -2
  99. package/core/boot.js +0 -4
  100. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +2 -2
  101. package/core/built/admin/assets/admin-x-activitypub/index-9a6a8e4b.mjs +18689 -0
  102. package/core/built/admin/assets/admin-x-activitypub/modals-5aad7e41.mjs +516 -0
  103. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +1 -1
  104. package/core/built/admin/assets/admin-x-demo/index-f1fae1e6.mjs +12341 -0
  105. package/core/built/admin/assets/admin-x-demo/{modals-0790023d.mjs → modals-344029a3.mjs} +109 -108
  106. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-18434b62.mjs → CodeEditorView-1a93227f.mjs} +2 -2
  107. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  108. package/core/built/admin/assets/admin-x-settings/{index-26c4c463.mjs → index-1caa03f1.mjs} +2 -2
  109. package/core/built/admin/assets/admin-x-settings/{index-c8f7240c.mjs → index-bb355172.mjs} +14004 -10339
  110. package/core/built/admin/assets/admin-x-settings/{modals-bef82301.mjs → modals-f496bf28.mjs} +10881 -14499
  111. package/core/built/admin/assets/{chunk.216.1641331b33471771559d.js → chunk.42.167fc5e3f3a1c1088f2e.js} +2032 -2307
  112. package/core/built/admin/assets/{chunk.216.1641331b33471771559d.js.LICENSE.txt → chunk.42.167fc5e3f3a1c1088f2e.js.LICENSE.txt} +0 -43
  113. package/core/built/admin/assets/{chunk.524.d2e0fcb8c19f3c1a3b30.js → chunk.524.a032fbf6d6bbe20b0eb3.js} +5 -5
  114. package/core/built/admin/assets/{chunk.582.21faf5b79ae545480852.js → chunk.582.bc65953e4022c385c144.js} +11 -11
  115. package/core/built/admin/assets/{ghost-7cd5e5705abfd8aa74248fc44aec54b5.js → ghost-b645099f33022aa37d96a2be8d8ddad1.js} +95 -111
  116. package/core/built/admin/assets/ghost-cc31d867156dbb76ec96cdd93bd39d36.css +1 -0
  117. package/core/built/admin/assets/ghost-dark-69968977cce01f9101da418724176290.css +1 -0
  118. package/core/built/admin/assets/koenig-lexical/index.css +1 -1
  119. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +30093 -28927
  120. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +166 -179
  121. package/core/built/admin/assets/{vendor-104fd33edb243021ce2f1a3797d513ef.js → vendor-4e0f92ca2b1c0850606b912c70852e32.js} +502 -926
  122. package/core/built/admin/index.html +6 -6
  123. package/core/server/api/endpoints/utils/serializers/output/authentication.js +1 -1
  124. package/core/server/services/custom-redirects/validation.js +21 -3
  125. package/core/server/services/webhooks/WebhookTrigger.js +2 -1
  126. package/core/shared/labs.js +0 -3
  127. package/package.json +157 -159
  128. package/yarn.lock +273 -562
  129. package/components/tryghost-announcement-bar-settings-5.87.0.tgz +0 -0
  130. package/components/tryghost-audience-feedback-5.87.0.tgz +0 -0
  131. package/components/tryghost-bookshelf-repository-5.87.0.tgz +0 -0
  132. package/components/tryghost-collections-5.87.0.tgz +0 -0
  133. package/components/tryghost-constants-5.87.0.tgz +0 -0
  134. package/components/tryghost-custom-theme-settings-service-5.87.0.tgz +0 -0
  135. package/components/tryghost-donations-5.87.0.tgz +0 -0
  136. package/components/tryghost-email-addresses-5.87.0.tgz +0 -0
  137. package/components/tryghost-email-content-generator-5.87.0.tgz +0 -0
  138. package/components/tryghost-email-service-5.87.0.tgz +0 -0
  139. package/components/tryghost-email-suppression-list-5.87.0.tgz +0 -0
  140. package/components/tryghost-ghost-5.87.0.tgz +0 -0
  141. package/components/tryghost-html-to-plaintext-5.87.0.tgz +0 -0
  142. package/components/tryghost-i18n-5.87.0.tgz +0 -0
  143. package/components/tryghost-in-memory-repository-5.87.0.tgz +0 -0
  144. package/components/tryghost-link-redirects-5.87.0.tgz +0 -0
  145. package/components/tryghost-link-replacer-5.87.0.tgz +0 -0
  146. package/components/tryghost-link-tracking-5.87.0.tgz +0 -0
  147. package/components/tryghost-members-api-5.87.0.tgz +0 -0
  148. package/components/tryghost-members-csv-5.87.0.tgz +0 -0
  149. package/components/tryghost-members-events-service-5.87.0.tgz +0 -0
  150. package/components/tryghost-members-ssr-5.87.0.tgz +0 -0
  151. package/components/tryghost-model-to-domain-event-interceptor-5.87.0.tgz +0 -0
  152. package/components/tryghost-mw-cache-control-5.87.0.tgz +0 -0
  153. package/components/tryghost-mw-error-handler-5.87.0.tgz +0 -0
  154. package/components/tryghost-nql-filter-expansions-5.87.0.tgz +0 -0
  155. package/components/tryghost-oembed-service-5.87.0.tgz +0 -0
  156. package/components/tryghost-post-events-5.87.0.tgz +0 -0
  157. package/components/tryghost-recommendations-5.87.0.tgz +0 -0
  158. package/components/tryghost-referrers-5.87.0.tgz +0 -0
  159. package/components/tryghost-slack-notifications-5.87.0.tgz +0 -0
  160. package/components/tryghost-stats-service-5.87.0.tgz +0 -0
  161. package/components/tryghost-version-notifications-data-service-5.87.0.tgz +0 -0
  162. package/core/built/admin/assets/admin-x-activitypub/index-adf6f50d.mjs +0 -15011
  163. package/core/built/admin/assets/admin-x-activitypub/modals-c796922a.mjs +0 -511
  164. package/core/built/admin/assets/admin-x-demo/index-ea257d67.mjs +0 -8664
  165. package/core/built/admin/assets/ghost-ce50e3eb300a8e297d8b1f8b372c25d6.css +0 -1
  166. package/core/built/admin/assets/ghost-dark-4b969016a590f3112196d4ba3da7843a.css +0 -1
  167. package/core/server/services/websockets/index.js +0 -1
  168. package/core/server/services/websockets/service.js +0 -38
@@ -8,7 +8,7 @@
8
8
  <title>Ghost Admin</title>
9
9
 
10
10
 
11
- <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.87%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22ember-websockets%22%3A%7B%22socketIO%22%3Atrue%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%228266664e32%22%2C%22adminXDemoFilename%22%3A%22admin-x-demo.js%22%2C%22adminXDemoHash%22%3A%224245030234%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%2265275a5bdb%22%2C%22adminXActivitypubFilename%22%3A%22admin-x-activitypub.js%22%2C%22adminXActivitypubHash%22%3A%22c9a754a9f6%22%7D" />
11
+ <meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.87%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%2247bfbf88f0%22%2C%22adminXDemoFilename%22%3A%22admin-x-demo.js%22%2C%22adminXDemoHash%22%3A%229c49d06c68%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%2236ec618662%22%2C%22adminXActivitypubFilename%22%3A%22admin-x-activitypub.js%22%2C%22adminXActivitypubHash%22%3A%22b147b1abae%22%7D" />
12
12
 
13
13
  <meta name="HandheldFriendly" content="True" />
14
14
  <meta name="MobileOptimized" content="320" />
@@ -37,7 +37,7 @@
37
37
  </style>
38
38
 
39
39
  <link integrity="" rel="stylesheet" href="assets/vendor-0ede59da8efb5e28fa929557f7ff7154.css">
40
- <link integrity="" rel="stylesheet" href="assets/ghost-ce50e3eb300a8e297d8b1f8b372c25d6.css" title="light">
40
+ <link integrity="" rel="stylesheet" href="assets/ghost-cc31d867156dbb76ec96cdd93bd39d36.css" title="light">
41
41
 
42
42
 
43
43
  </head>
@@ -56,9 +56,9 @@
56
56
 
57
57
  <div id="ember-basic-dropdown-wormhole"></div>
58
58
 
59
- <script src="assets/vendor-104fd33edb243021ce2f1a3797d513ef.js"></script>
60
- <script src="assets/chunk.216.1641331b33471771559d.js"></script>
61
- <script src="assets/chunk.524.d2e0fcb8c19f3c1a3b30.js"></script>
62
- <script src="assets/ghost-7cd5e5705abfd8aa74248fc44aec54b5.js"></script>
59
+ <script src="assets/vendor-4e0f92ca2b1c0850606b912c70852e32.js"></script>
60
+ <script src="assets/chunk.42.167fc5e3f3a1c1088f2e.js"></script>
61
+ <script src="assets/chunk.524.a032fbf6d6bbe20b0eb3.js"></script>
62
+ <script src="assets/ghost-b645099f33022aa37d96a2be8d8ddad1.js"></script>
63
63
  </body>
64
64
  </html>
@@ -4,7 +4,7 @@ const debug = require('@tryghost/debug')('api:endpoints:utils:serializers:output
4
4
 
5
5
  const messages = {
6
6
  checkEmailForInstructions: 'Check your email for further instructions.',
7
- passwordChanged: 'Password changed successfully.',
7
+ passwordChanged: 'Password updated',
8
8
  invitationAccepted: 'Invitation accepted.'
9
9
  };
10
10
 
@@ -1,6 +1,7 @@
1
1
  const _ = require('lodash');
2
2
  const tpl = require('@tryghost/tpl');
3
3
  const errors = require('@tryghost/errors');
4
+ const {isSafePattern} = require('redos-detector');
4
5
 
5
6
  const messages = {
6
7
  redirectsWrongFormat: 'Incorrect redirects file format.',
@@ -33,18 +34,35 @@ const validate = (redirects) => {
33
34
  if (!redirect.from || !redirect.to) {
34
35
  throw new errors.ValidationError({
35
36
  message: tpl(messages.redirectsWrongFormat),
36
- context: redirect,
37
37
  help: tpl(messages.redirectsHelp)
38
38
  });
39
39
  }
40
40
 
41
+ // Ensure valid regex
41
42
  try {
42
- // each 'from' property should be a valid RegExp string
43
43
  new RegExp(redirect.from);
44
44
  } catch (error) {
45
45
  throw new errors.ValidationError({
46
46
  message: tpl(messages.invalidRedirectsFromRegex),
47
- context: redirect,
47
+ errorDetails: {
48
+ redirect,
49
+ invalid: true
50
+ },
51
+ help: tpl(messages.redirectsHelp)
52
+ });
53
+ }
54
+
55
+ // Ensure safe regex
56
+ const analysis = isSafePattern(redirect.from);
57
+
58
+ if (analysis.safe === false) {
59
+ throw new errors.ValidationError({
60
+ message: tpl(messages.invalidRedirectsFromRegex),
61
+ errorDetails: {
62
+ redirect,
63
+ unsafe: true,
64
+ reason: analysis.error
65
+ },
48
66
  help: tpl(messages.redirectsHelp)
49
67
  });
50
68
  }
@@ -87,6 +87,7 @@ class WebhookTrigger {
87
87
  const reqPayload = JSON.stringify(hookPayload);
88
88
  const url = webhook.get('target_url');
89
89
  const secret = webhook.get('secret') || '';
90
+ const ts = Date.now();
90
91
 
91
92
  const headers = {
92
93
  'Content-Length': Buffer.byteLength(reqPayload),
@@ -95,7 +96,7 @@ class WebhookTrigger {
95
96
  };
96
97
 
97
98
  if (secret !== '') {
98
- headers['X-Ghost-Signature'] = `sha256=${crypto.createHmac('sha256', secret).update(reqPayload).digest('hex')}, t=${Date.now()}`;
99
+ headers['X-Ghost-Signature'] = `sha256=${crypto.createHmac('sha256', secret).update(`${reqPayload}${ts}`).digest('hex')}, t=${ts}`;
99
100
  }
100
101
 
101
102
  const opts = {
@@ -24,8 +24,6 @@ const GA_FEATURES = [
24
24
  'listUnsubscribeHeader',
25
25
  'filterEmailDisabled',
26
26
  'newEmailAddresses',
27
- 'portalImprovements',
28
- 'newsletterExcerpt',
29
27
  'internalLinking'
30
28
  ];
31
29
 
@@ -45,7 +43,6 @@ const ALPHA_FEATURES = [
45
43
  'NestPlayground',
46
44
  'urlCache',
47
45
  'lexicalMultiplayer',
48
- 'websockets',
49
46
  'emailCustomization',
50
47
  'mailEvents',
51
48
  'collectionsCard',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.87.0",
3
+ "version": "5.87.1",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -69,109 +69,108 @@
69
69
  "@opentelemetry/sdk-trace-node": "1.25.1",
70
70
  "@sentry/node": "7.118.0",
71
71
  "@tryghost/adapter-base-cache": "0.1.12",
72
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.87.0.tgz",
73
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.87.0.tgz",
72
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.87.1.tgz",
73
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.87.1.tgz",
74
74
  "@tryghost/admin-api-schema": "4.5.5",
75
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.87.0.tgz",
76
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.87.0.tgz",
77
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.87.0.tgz",
78
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.87.0.tgz",
75
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.87.1.tgz",
76
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.87.1.tgz",
77
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.87.1.tgz",
78
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.87.1.tgz",
79
79
  "@tryghost/bookshelf-plugins": "0.6.19",
80
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.87.0.tgz",
81
- "@tryghost/collections": "file:components/tryghost-collections-5.87.0.tgz",
80
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.87.1.tgz",
81
+ "@tryghost/collections": "file:components/tryghost-collections-5.87.1.tgz",
82
82
  "@tryghost/color-utils": "0.2.2",
83
83
  "@tryghost/config-url-helpers": "1.0.12",
84
- "@tryghost/constants": "file:components/tryghost-constants-5.87.0.tgz",
85
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.87.0.tgz",
86
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.87.0.tgz",
84
+ "@tryghost/constants": "file:components/tryghost-constants-5.87.1.tgz",
85
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.87.1.tgz",
86
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.87.1.tgz",
87
87
  "@tryghost/database-info": "0.3.24",
88
88
  "@tryghost/debug": "0.1.30",
89
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.87.0.tgz",
90
- "@tryghost/donations": "file:components/tryghost-donations-5.87.0.tgz",
91
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.87.0.tgz",
92
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.87.0.tgz",
93
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.87.0.tgz",
94
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.87.0.tgz",
89
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.87.1.tgz",
90
+ "@tryghost/donations": "file:components/tryghost-donations-5.87.1.tgz",
91
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.87.1.tgz",
92
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.87.1.tgz",
93
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.87.1.tgz",
94
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.87.1.tgz",
95
95
  "@tryghost/email-mock-receiver": "0.3.6",
96
- "@tryghost/email-service": "file:components/tryghost-email-service-5.87.0.tgz",
97
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.87.0.tgz",
96
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.87.1.tgz",
97
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.87.1.tgz",
98
98
  "@tryghost/errors": "1.3.2",
99
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.87.0.tgz",
100
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.87.0.tgz",
101
- "@tryghost/ghost": "file:components/tryghost-ghost-5.87.0.tgz",
99
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.87.1.tgz",
100
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.87.1.tgz",
101
+ "@tryghost/ghost": "file:components/tryghost-ghost-5.87.1.tgz",
102
102
  "@tryghost/helpers": "1.1.90",
103
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.87.0.tgz",
103
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.87.1.tgz",
104
104
  "@tryghost/http-cache-utils": "0.1.15",
105
- "@tryghost/i18n": "file:components/tryghost-i18n-5.87.0.tgz",
105
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.87.1.tgz",
106
106
  "@tryghost/image-transform": "1.3.0",
107
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.87.0.tgz",
108
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.87.0.tgz",
109
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.87.0.tgz",
107
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.87.1.tgz",
108
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.87.1.tgz",
109
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.87.1.tgz",
110
110
  "@tryghost/kg-card-factory": "5.0.4",
111
111
  "@tryghost/kg-converters": "1.0.5",
112
112
  "@tryghost/kg-default-atoms": "5.0.3",
113
113
  "@tryghost/kg-default-cards": "10.0.6",
114
- "@tryghost/kg-default-nodes": "1.1.4",
115
- "@tryghost/kg-html-to-lexical": "1.1.5",
116
- "@tryghost/kg-lexical-html-renderer": "1.1.5",
114
+ "@tryghost/kg-default-nodes": "1.1.5",
115
+ "@tryghost/kg-html-to-lexical": "1.1.6",
116
+ "@tryghost/kg-lexical-html-renderer": "1.1.6",
117
117
  "@tryghost/kg-mobiledoc-html-renderer": "7.0.4",
118
118
  "@tryghost/limit-service": "1.2.14",
119
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.87.0.tgz",
120
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.87.0.tgz",
121
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.87.0.tgz",
119
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.87.1.tgz",
120
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.87.1.tgz",
121
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.87.1.tgz",
122
122
  "@tryghost/logging": "2.4.15",
123
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.87.0.tgz",
124
- "@tryghost/mail-events": "file:components/tryghost-mail-events-5.87.0.tgz",
125
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.87.0.tgz",
126
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.87.0.tgz",
127
- "@tryghost/member-events": "file:components/tryghost-member-events-5.87.0.tgz",
128
- "@tryghost/members-api": "file:components/tryghost-members-api-5.87.0.tgz",
129
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.87.0.tgz",
130
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.87.0.tgz",
131
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.87.0.tgz",
132
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.87.0.tgz",
133
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.87.0.tgz",
134
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.87.0.tgz",
135
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.87.0.tgz",
136
- "@tryghost/metrics": "1.0.31",
137
- "@tryghost/milestones": "file:components/tryghost-milestones-5.87.0.tgz",
138
- "@tryghost/minifier": "file:components/tryghost-minifier-5.87.0.tgz",
139
- "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.87.0.tgz",
140
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.87.0.tgz",
141
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.87.0.tgz",
142
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.87.0.tgz",
143
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.87.0.tgz",
144
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.87.0.tgz",
145
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.87.0.tgz",
123
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.87.1.tgz",
124
+ "@tryghost/mail-events": "file:components/tryghost-mail-events-5.87.1.tgz",
125
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.87.1.tgz",
126
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.87.1.tgz",
127
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.87.1.tgz",
128
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.87.1.tgz",
129
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.87.1.tgz",
130
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.87.1.tgz",
131
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.87.1.tgz",
132
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.87.1.tgz",
133
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.87.1.tgz",
134
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.87.1.tgz",
135
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.87.1.tgz",
136
+ "@tryghost/metrics": "1.0.34",
137
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.87.1.tgz",
138
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.87.1.tgz",
139
+ "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.87.1.tgz",
140
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.87.1.tgz",
141
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.87.1.tgz",
142
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.87.1.tgz",
143
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.87.1.tgz",
144
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.87.1.tgz",
145
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.87.1.tgz",
146
146
  "@tryghost/nodemailer": "0.3.42",
147
147
  "@tryghost/nql": "0.12.3",
148
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.87.0.tgz",
149
- "@tryghost/package-json": "file:components/tryghost-package-json-5.87.0.tgz",
150
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.87.0.tgz",
151
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.87.0.tgz",
148
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.87.1.tgz",
149
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.87.1.tgz",
150
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.87.1.tgz",
151
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.87.1.tgz",
152
152
  "@tryghost/pretty-cli": "1.2.42",
153
153
  "@tryghost/promise": "0.3.10",
154
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.87.0.tgz",
154
+ "@tryghost/recommendations": "file:components/tryghost-recommendations-5.87.1.tgz",
155
155
  "@tryghost/request": "1.0.5",
156
- "@tryghost/security": "file:components/tryghost-security-5.87.0.tgz",
157
- "@tryghost/session-service": "file:components/tryghost-session-service-5.87.0.tgz",
158
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.87.0.tgz",
159
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.87.0.tgz",
156
+ "@tryghost/security": "file:components/tryghost-security-5.87.1.tgz",
157
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.87.1.tgz",
158
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.87.1.tgz",
159
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.87.1.tgz",
160
160
  "@tryghost/social-urls": "0.1.43",
161
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.87.0.tgz",
162
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.87.0.tgz",
161
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.87.1.tgz",
162
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.87.1.tgz",
163
163
  "@tryghost/string": "0.2.12",
164
- "@tryghost/tiers": "file:components/tryghost-tiers-5.87.0.tgz",
164
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.87.1.tgz",
165
165
  "@tryghost/tpl": "0.1.30",
166
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.87.0.tgz",
166
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.87.1.tgz",
167
167
  "@tryghost/url-utils": "4.4.8",
168
168
  "@tryghost/validator": "0.2.11",
169
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.87.0.tgz",
169
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.87.1.tgz",
170
170
  "@tryghost/version": "0.1.28",
171
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.87.0.tgz",
171
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.87.1.tgz",
172
172
  "@tryghost/zip": "1.1.43",
173
173
  "amperize": "0.6.1",
174
- "analytics-node": "6.2.0",
175
174
  "body-parser": "1.20.2",
176
175
  "bookshelf": "1.2.0",
177
176
  "bookshelf-relations": "2.7.0",
@@ -206,35 +205,34 @@
206
205
  "json-stable-stringify": "1.1.1",
207
206
  "jsonpath": "1.1.1",
208
207
  "jsonwebtoken": "8.5.1",
209
- "juice": "9.1.0",
210
208
  "keypair": "1.0.4",
211
209
  "knex": "2.4.2",
212
210
  "knex-migrator": "5.2.1",
213
- "lib0": "0.2.88",
211
+ "lib0": "0.2.94",
214
212
  "lodash": "4.17.21",
215
213
  "luxon": "3.4.4",
216
214
  "moment": "2.24.0",
217
215
  "moment-timezone": "0.5.23",
218
216
  "multer": "1.4.4",
219
- "mysql2": "3.10.1",
217
+ "mysql2": "3.10.2",
220
218
  "nconf": "0.12.1",
221
219
  "node-jose": "2.2.0",
222
220
  "path-match": "1.2.4",
223
221
  "probe-image-size": "7.2.3",
222
+ "redos-detector": "5.1.0",
224
223
  "rss": "1.2.2",
225
224
  "sanitize-html": "2.13.0",
226
225
  "semver": "7.6.2",
227
- "socket.io": "4.7.5",
228
226
  "stoppable": "1.1.0",
229
227
  "uuid": "9.0.1",
230
- "ws": "8.17.1",
228
+ "ws": "8.18.0",
231
229
  "xml": "1.0.1",
232
230
  "y-protocols": "1.0.6",
233
231
  "yjs": "13.6.18"
234
232
  },
235
233
  "optionalDependencies": {
236
234
  "@sentry/profiling-node": "7.118.0",
237
- "@tryghost/html-to-mobiledoc": "3.1.0",
235
+ "@tryghost/html-to-mobiledoc": "3.1.2",
238
236
  "sqlite3": "5.1.7"
239
237
  },
240
238
  "devDependencies": {
@@ -258,7 +256,7 @@
258
256
  "mock-knex": "TryGhost/mock-knex#d8b93b1c20d4820323477f2c60db016ab3e73192",
259
257
  "nock": "13.3.3",
260
258
  "papaparse": "5.3.2",
261
- "postcss": "8.4.38",
259
+ "postcss": "8.4.39",
262
260
  "postcss-cli": "11.0.0",
263
261
  "rewire": "6.0.0",
264
262
  "should": "13.2.3",
@@ -273,85 +271,85 @@
273
271
  "jackspeak": "2.1.1",
274
272
  "moment": "2.24.0",
275
273
  "moment-timezone": "0.5.23",
276
- "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.87.0.tgz",
277
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.87.0.tgz",
278
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.87.0.tgz",
279
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.87.0.tgz",
280
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.87.0.tgz",
281
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.87.0.tgz",
282
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.87.0.tgz",
283
- "@tryghost/bookshelf-repository": "file:components/tryghost-bookshelf-repository-5.87.0.tgz",
284
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.87.0.tgz",
285
- "@tryghost/collections": "file:components/tryghost-collections-5.87.0.tgz",
286
- "@tryghost/constants": "file:components/tryghost-constants-5.87.0.tgz",
287
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.87.0.tgz",
288
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.87.0.tgz",
289
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.87.0.tgz",
290
- "@tryghost/donations": "file:components/tryghost-donations-5.87.0.tgz",
291
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.87.0.tgz",
292
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.87.0.tgz",
293
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.87.0.tgz",
294
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.87.0.tgz",
295
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.87.0.tgz",
296
- "@tryghost/email-events": "file:components/tryghost-email-events-5.87.0.tgz",
297
- "@tryghost/email-service": "file:components/tryghost-email-service-5.87.0.tgz",
298
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.87.0.tgz",
299
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.87.0.tgz",
300
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.87.0.tgz",
301
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.87.0.tgz",
302
- "@tryghost/ghost": "file:components/tryghost-ghost-5.87.0.tgz",
303
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.87.0.tgz",
304
- "@tryghost/i18n": "file:components/tryghost-i18n-5.87.0.tgz",
305
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.87.0.tgz",
306
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.87.0.tgz",
307
- "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.87.0.tgz",
308
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.87.0.tgz",
309
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.87.0.tgz",
310
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.87.0.tgz",
311
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.87.0.tgz",
312
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.87.0.tgz",
313
- "@tryghost/mail-events": "file:components/tryghost-mail-events-5.87.0.tgz",
314
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.87.0.tgz",
315
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.87.0.tgz",
316
- "@tryghost/member-events": "file:components/tryghost-member-events-5.87.0.tgz",
317
- "@tryghost/members-api": "file:components/tryghost-members-api-5.87.0.tgz",
318
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.87.0.tgz",
319
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.87.0.tgz",
320
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.87.0.tgz",
321
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.87.0.tgz",
322
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.87.0.tgz",
323
- "@tryghost/milestones": "file:components/tryghost-milestones-5.87.0.tgz",
324
- "@tryghost/minifier": "file:components/tryghost-minifier-5.87.0.tgz",
325
- "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.87.0.tgz",
326
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.87.0.tgz",
327
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.87.0.tgz",
328
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.87.0.tgz",
329
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.87.0.tgz",
330
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.87.0.tgz",
331
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.87.0.tgz",
332
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.87.0.tgz",
333
- "@tryghost/nql-filter-expansions": "file:components/tryghost-nql-filter-expansions-5.87.0.tgz",
334
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.87.0.tgz",
335
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.87.0.tgz",
336
- "@tryghost/package-json": "file:components/tryghost-package-json-5.87.0.tgz",
337
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.87.0.tgz",
338
- "@tryghost/post-events": "file:components/tryghost-post-events-5.87.0.tgz",
339
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.87.0.tgz",
340
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.87.0.tgz",
341
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.87.0.tgz",
342
- "@tryghost/referrers": "file:components/tryghost-referrers-5.87.0.tgz",
343
- "@tryghost/security": "file:components/tryghost-security-5.87.0.tgz",
344
- "@tryghost/session-service": "file:components/tryghost-session-service-5.87.0.tgz",
345
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.87.0.tgz",
346
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.87.0.tgz",
347
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.87.0.tgz",
348
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.87.0.tgz",
349
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.87.0.tgz",
350
- "@tryghost/tiers": "file:components/tryghost-tiers-5.87.0.tgz",
351
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.87.0.tgz",
352
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.87.0.tgz",
353
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.87.0.tgz",
354
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.87.0.tgz"
274
+ "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.87.1.tgz",
275
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.87.1.tgz",
276
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.87.1.tgz",
277
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.87.1.tgz",
278
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.87.1.tgz",
279
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.87.1.tgz",
280
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.87.1.tgz",
281
+ "@tryghost/bookshelf-repository": "file:components/tryghost-bookshelf-repository-5.87.1.tgz",
282
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.87.1.tgz",
283
+ "@tryghost/collections": "file:components/tryghost-collections-5.87.1.tgz",
284
+ "@tryghost/constants": "file:components/tryghost-constants-5.87.1.tgz",
285
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.87.1.tgz",
286
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.87.1.tgz",
287
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.87.1.tgz",
288
+ "@tryghost/donations": "file:components/tryghost-donations-5.87.1.tgz",
289
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.87.1.tgz",
290
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.87.1.tgz",
291
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.87.1.tgz",
292
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.87.1.tgz",
293
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.87.1.tgz",
294
+ "@tryghost/email-events": "file:components/tryghost-email-events-5.87.1.tgz",
295
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.87.1.tgz",
296
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.87.1.tgz",
297
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.87.1.tgz",
298
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.87.1.tgz",
299
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.87.1.tgz",
300
+ "@tryghost/ghost": "file:components/tryghost-ghost-5.87.1.tgz",
301
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.87.1.tgz",
302
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.87.1.tgz",
303
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.87.1.tgz",
304
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.87.1.tgz",
305
+ "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.87.1.tgz",
306
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.87.1.tgz",
307
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.87.1.tgz",
308
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.87.1.tgz",
309
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.87.1.tgz",
310
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.87.1.tgz",
311
+ "@tryghost/mail-events": "file:components/tryghost-mail-events-5.87.1.tgz",
312
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.87.1.tgz",
313
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.87.1.tgz",
314
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.87.1.tgz",
315
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.87.1.tgz",
316
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.87.1.tgz",
317
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.87.1.tgz",
318
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.87.1.tgz",
319
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.87.1.tgz",
320
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.87.1.tgz",
321
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.87.1.tgz",
322
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.87.1.tgz",
323
+ "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.87.1.tgz",
324
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.87.1.tgz",
325
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.87.1.tgz",
326
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.87.1.tgz",
327
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.87.1.tgz",
328
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.87.1.tgz",
329
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.87.1.tgz",
330
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.87.1.tgz",
331
+ "@tryghost/nql-filter-expansions": "file:components/tryghost-nql-filter-expansions-5.87.1.tgz",
332
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.87.1.tgz",
333
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.87.1.tgz",
334
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.87.1.tgz",
335
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.87.1.tgz",
336
+ "@tryghost/post-events": "file:components/tryghost-post-events-5.87.1.tgz",
337
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.87.1.tgz",
338
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.87.1.tgz",
339
+ "@tryghost/recommendations": "file:components/tryghost-recommendations-5.87.1.tgz",
340
+ "@tryghost/referrers": "file:components/tryghost-referrers-5.87.1.tgz",
341
+ "@tryghost/security": "file:components/tryghost-security-5.87.1.tgz",
342
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.87.1.tgz",
343
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.87.1.tgz",
344
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.87.1.tgz",
345
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.87.1.tgz",
346
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.87.1.tgz",
347
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.87.1.tgz",
348
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.87.1.tgz",
349
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.87.1.tgz",
350
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.87.1.tgz",
351
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.87.1.tgz",
352
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.87.1.tgz"
355
353
  },
356
354
  "nx": {
357
355
  "targets": {