ghost 5.96.0 → 5.96.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 (166) hide show
  1. package/components/{tryghost-adapter-cache-memory-ttl-5.96.0.tgz → tryghost-adapter-cache-memory-ttl-5.96.1.tgz} +0 -0
  2. package/components/{tryghost-adapter-cache-redis-5.96.0.tgz → tryghost-adapter-cache-redis-5.96.1.tgz} +0 -0
  3. package/components/{tryghost-adapter-manager-5.96.0.tgz → tryghost-adapter-manager-5.96.1.tgz} +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.96.1.tgz +0 -0
  5. package/components/{tryghost-api-framework-5.96.0.tgz → tryghost-api-framework-5.96.1.tgz} +0 -0
  6. package/components/{tryghost-api-version-compatibility-service-5.96.0.tgz → tryghost-api-version-compatibility-service-5.96.1.tgz} +0 -0
  7. package/components/{tryghost-audience-feedback-5.96.0.tgz → tryghost-audience-feedback-5.96.1.tgz} +0 -0
  8. package/components/tryghost-bookshelf-repository-5.96.1.tgz +0 -0
  9. package/components/{tryghost-bootstrap-socket-5.96.0.tgz → tryghost-bootstrap-socket-5.96.1.tgz} +0 -0
  10. package/components/tryghost-collections-5.96.1.tgz +0 -0
  11. package/components/tryghost-constants-5.96.1.tgz +0 -0
  12. package/components/{tryghost-custom-theme-settings-service-5.96.0.tgz → tryghost-custom-theme-settings-service-5.96.1.tgz} +0 -0
  13. package/components/{tryghost-data-generator-5.96.0.tgz → tryghost-data-generator-5.96.1.tgz} +0 -0
  14. package/components/{tryghost-domain-events-5.96.0.tgz → tryghost-domain-events-5.96.1.tgz} +0 -0
  15. package/components/tryghost-donations-5.96.1.tgz +0 -0
  16. package/components/{tryghost-dynamic-routing-events-5.96.0.tgz → tryghost-dynamic-routing-events-5.96.1.tgz} +0 -0
  17. package/components/tryghost-email-addresses-5.96.1.tgz +0 -0
  18. package/components/{tryghost-email-analytics-provider-mailgun-5.96.0.tgz → tryghost-email-analytics-provider-mailgun-5.96.1.tgz} +0 -0
  19. package/components/{tryghost-email-analytics-service-5.96.0.tgz → tryghost-email-analytics-service-5.96.1.tgz} +0 -0
  20. package/components/{tryghost-email-content-generator-5.96.0.tgz → tryghost-email-content-generator-5.96.1.tgz} +0 -0
  21. package/components/tryghost-email-events-5.96.1.tgz +0 -0
  22. package/components/tryghost-email-service-5.96.1.tgz +0 -0
  23. package/components/tryghost-email-suppression-list-5.96.1.tgz +0 -0
  24. package/components/{tryghost-express-dynamic-redirects-5.96.0.tgz → tryghost-express-dynamic-redirects-5.96.1.tgz} +0 -0
  25. package/components/{tryghost-external-media-inliner-5.96.0.tgz → tryghost-external-media-inliner-5.96.1.tgz} +0 -0
  26. package/components/tryghost-extract-api-key-5.96.1.tgz +0 -0
  27. package/components/tryghost-ghost-5.96.1.tgz +0 -0
  28. package/components/{tryghost-html-to-plaintext-5.96.0.tgz → tryghost-html-to-plaintext-5.96.1.tgz} +0 -0
  29. package/components/tryghost-i18n-5.96.1.tgz +0 -0
  30. package/components/{tryghost-importer-handler-content-files-5.96.0.tgz → tryghost-importer-handler-content-files-5.96.1.tgz} +0 -0
  31. package/components/{tryghost-importer-revue-5.96.0.tgz → tryghost-importer-revue-5.96.1.tgz} +0 -0
  32. package/components/tryghost-in-memory-repository-5.96.1.tgz +0 -0
  33. package/components/{tryghost-job-manager-5.96.0.tgz → tryghost-job-manager-5.96.1.tgz} +0 -0
  34. package/components/tryghost-link-redirects-5.96.1.tgz +0 -0
  35. package/components/tryghost-link-replacer-5.96.1.tgz +0 -0
  36. package/components/{tryghost-link-tracking-5.96.0.tgz → tryghost-link-tracking-5.96.1.tgz} +0 -0
  37. package/components/{tryghost-magic-link-5.96.0.tgz → tryghost-magic-link-5.96.1.tgz} +0 -0
  38. package/components/{tryghost-mail-events-5.96.0.tgz → tryghost-mail-events-5.96.1.tgz} +0 -0
  39. package/components/{tryghost-mailgun-client-5.96.0.tgz → tryghost-mailgun-client-5.96.1.tgz} +0 -0
  40. package/components/{tryghost-member-attribution-5.96.0.tgz → tryghost-member-attribution-5.96.1.tgz} +0 -0
  41. package/components/{tryghost-member-events-5.96.0.tgz → tryghost-member-events-5.96.1.tgz} +0 -0
  42. package/components/{tryghost-members-api-5.96.0.tgz → tryghost-members-api-5.96.1.tgz} +0 -0
  43. package/components/tryghost-members-csv-5.96.1.tgz +0 -0
  44. package/components/{tryghost-members-events-service-5.96.0.tgz → tryghost-members-events-service-5.96.1.tgz} +0 -0
  45. package/components/{tryghost-members-importer-5.96.0.tgz → tryghost-members-importer-5.96.1.tgz} +0 -0
  46. package/components/tryghost-members-offers-5.96.1.tgz +0 -0
  47. package/components/tryghost-members-payments-5.96.1.tgz +0 -0
  48. package/components/tryghost-members-ssr-5.96.1.tgz +0 -0
  49. package/components/tryghost-members-stripe-service-5.96.1.tgz +0 -0
  50. package/components/{tryghost-mentions-email-report-5.96.0.tgz → tryghost-mentions-email-report-5.96.1.tgz} +0 -0
  51. package/components/tryghost-metrics-server-5.96.1.tgz +0 -0
  52. package/components/{tryghost-milestones-5.96.0.tgz → tryghost-milestones-5.96.1.tgz} +0 -0
  53. package/components/tryghost-minifier-5.96.1.tgz +0 -0
  54. package/components/tryghost-model-to-domain-event-interceptor-5.96.1.tgz +0 -0
  55. package/components/{tryghost-mw-api-version-mismatch-5.96.0.tgz → tryghost-mw-api-version-mismatch-5.96.1.tgz} +0 -0
  56. package/components/tryghost-mw-cache-control-5.96.1.tgz +0 -0
  57. package/components/tryghost-mw-error-handler-5.96.1.tgz +0 -0
  58. package/components/{tryghost-mw-session-from-token-5.96.0.tgz → tryghost-mw-session-from-token-5.96.1.tgz} +0 -0
  59. package/components/{tryghost-mw-update-user-last-seen-5.96.0.tgz → tryghost-mw-update-user-last-seen-5.96.1.tgz} +0 -0
  60. package/components/{tryghost-mw-version-match-5.96.0.tgz → tryghost-mw-version-match-5.96.1.tgz} +0 -0
  61. package/components/tryghost-mw-vhost-5.96.1.tgz +0 -0
  62. package/components/tryghost-nql-filter-expansions-5.96.1.tgz +0 -0
  63. package/components/tryghost-oembed-service-5.96.1.tgz +0 -0
  64. package/components/{tryghost-package-json-5.96.0.tgz → tryghost-package-json-5.96.1.tgz} +0 -0
  65. package/components/tryghost-post-events-5.96.1.tgz +0 -0
  66. package/components/{tryghost-post-revisions-5.96.0.tgz → tryghost-post-revisions-5.96.1.tgz} +0 -0
  67. package/components/{tryghost-posts-service-5.96.0.tgz → tryghost-posts-service-5.96.1.tgz} +0 -0
  68. package/components/tryghost-recommendations-5.96.1.tgz +0 -0
  69. package/components/tryghost-referrers-5.96.1.tgz +0 -0
  70. package/components/{tryghost-security-5.96.0.tgz → tryghost-security-5.96.1.tgz} +0 -0
  71. package/components/{tryghost-session-service-5.96.0.tgz → tryghost-session-service-5.96.1.tgz} +0 -0
  72. package/components/{tryghost-settings-path-manager-5.96.0.tgz → tryghost-settings-path-manager-5.96.1.tgz} +0 -0
  73. package/components/tryghost-slack-notifications-5.96.1.tgz +0 -0
  74. package/components/{tryghost-staff-service-5.96.0.tgz → tryghost-staff-service-5.96.1.tgz} +0 -0
  75. package/components/{tryghost-stats-service-5.96.0.tgz → tryghost-stats-service-5.96.1.tgz} +0 -0
  76. package/components/{tryghost-tiers-5.96.0.tgz → tryghost-tiers-5.96.1.tgz} +0 -0
  77. package/components/{tryghost-update-check-service-5.96.0.tgz → tryghost-update-check-service-5.96.1.tgz} +0 -0
  78. package/components/{tryghost-verification-trigger-5.96.0.tgz → tryghost-verification-trigger-5.96.1.tgz} +0 -0
  79. package/components/tryghost-version-notifications-data-service-5.96.1.tgz +0 -0
  80. package/components/tryghost-webmentions-5.96.1.tgz +0 -0
  81. package/core/bridge.js +11 -8
  82. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +2 -2
  83. package/core/built/admin/assets/admin-x-activitypub/{index-043cbe5c.mjs → index-def21e23.mjs} +1606 -1608
  84. package/core/built/admin/assets/admin-x-activitypub/{modals-39d50cfc.mjs → modals-09282c4e.mjs} +2 -2
  85. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-ef508830.mjs → CodeEditorView-85a3642c.mjs} +2 -2
  86. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  87. package/core/built/admin/assets/admin-x-settings/{index-fb425884.mjs → index-ebbd8de9.mjs} +83 -90
  88. package/core/built/admin/assets/admin-x-settings/{index-9a5b6317.mjs → index-eeeca6f6.mjs} +2 -2
  89. package/core/built/admin/assets/admin-x-settings/{modals-12992e35.mjs → modals-8a98634b.mjs} +11206 -16095
  90. package/core/built/admin/assets/{chunk.524.c8d208efb3cca58fb564.js → chunk.524.9b3ed6b39dd6c575a36f.js} +5 -5
  91. package/core/built/admin/assets/{chunk.582.e1e1c593838cdd38970d.js → chunk.582.5218d47941a18a44ead8.js} +6 -6
  92. package/core/built/admin/assets/{chunk.874.2b603e6adcf3c2e9788c.js → chunk.874.e1d421507701daac30fb.js} +4529 -5591
  93. package/core/built/admin/assets/{ghost-6720b11b60bbdb3abbd6b3b5dd314d5d.js → ghost-286f9a114755e8c3c7e9c37550f624a9.js} +21 -21
  94. package/core/built/admin/assets/{ghost-0c7839fc6bdbca9bf08a2c1291159903.css → ghost-c75b9d653495f9cfce528f6e10900b3f.css} +1 -1
  95. package/core/built/admin/assets/{ghost-dark-40f095a0e0507e24e12b4bd7dd6bb5d5.css → ghost-dark-6ea629e177f77314f5d75c0ca97190ab.css} +1 -1
  96. package/core/built/admin/index.html +5 -5
  97. package/core/frontend/helpers/get.js +24 -41
  98. package/core/frontend/helpers/ghost_head.js +3 -3
  99. package/core/frontend/meta/generate-excerpt.js +1 -2
  100. package/core/frontend/services/{admin-auth-assets/AdminAuthAssetsService.js → assets-minification/AdminAuthAssets.js} +22 -62
  101. package/core/frontend/services/assets-minification/AssetsMinificationBase.js +79 -0
  102. package/core/frontend/services/{card-assets/CardAssetService.js → assets-minification/CardAssets.js} +20 -37
  103. package/core/frontend/services/assets-minification/CommentCountsAssets.js +34 -0
  104. package/core/frontend/services/assets-minification/MemberAttributionAssets.js +46 -0
  105. package/core/frontend/services/assets-minification/index.js +16 -0
  106. package/core/frontend/services/sitemap/BaseSiteMapGenerator.js +4 -1
  107. package/core/frontend/web/site.js +5 -4
  108. package/core/server/data/importer/importers/data/PostsImporter.js +2 -2
  109. package/core/server/data/migrations/versions/4.0/23-regenerate-posts-html.js +1 -1
  110. package/core/server/data/migrations/versions/4.9/05-fix-missed-mobiledoc-url-transforms.js +1 -1
  111. package/core/server/data/migrations/versions/5.0/2022-05-21-00-00-regenerate-posts-html.js +1 -1
  112. package/core/server/lib/mobiledoc.js +4 -0
  113. package/core/server/models/member.js +1 -1
  114. package/core/server/models/post.js +1 -1
  115. package/core/server/services/email-service/EmailServiceWrapper.js +1 -1
  116. package/core/server/services/themes/activate.js +2 -2
  117. package/core/server/services/themes/index.js +4 -1
  118. package/core/server/services/themes/validate.js +7 -5
  119. package/core/server/views/maintenance.html +3 -3
  120. package/core/server/web/admin/app.js +2 -1
  121. package/core/shared/config/defaults.json +3 -0
  122. package/core/shared/config/helpers.js +4 -1
  123. package/core/shared/config/utils.js +5 -6
  124. package/package.json +153 -153
  125. package/yarn.lock +129 -119
  126. package/components/tryghost-announcement-bar-settings-5.96.0.tgz +0 -0
  127. package/components/tryghost-bookshelf-repository-5.96.0.tgz +0 -0
  128. package/components/tryghost-collections-5.96.0.tgz +0 -0
  129. package/components/tryghost-constants-5.96.0.tgz +0 -0
  130. package/components/tryghost-donations-5.96.0.tgz +0 -0
  131. package/components/tryghost-email-addresses-5.96.0.tgz +0 -0
  132. package/components/tryghost-email-events-5.96.0.tgz +0 -0
  133. package/components/tryghost-email-service-5.96.0.tgz +0 -0
  134. package/components/tryghost-email-suppression-list-5.96.0.tgz +0 -0
  135. package/components/tryghost-extract-api-key-5.96.0.tgz +0 -0
  136. package/components/tryghost-ghost-5.96.0.tgz +0 -0
  137. package/components/tryghost-i18n-5.96.0.tgz +0 -0
  138. package/components/tryghost-in-memory-repository-5.96.0.tgz +0 -0
  139. package/components/tryghost-link-redirects-5.96.0.tgz +0 -0
  140. package/components/tryghost-link-replacer-5.96.0.tgz +0 -0
  141. package/components/tryghost-members-csv-5.96.0.tgz +0 -0
  142. package/components/tryghost-members-offers-5.96.0.tgz +0 -0
  143. package/components/tryghost-members-payments-5.96.0.tgz +0 -0
  144. package/components/tryghost-members-ssr-5.96.0.tgz +0 -0
  145. package/components/tryghost-members-stripe-service-5.96.0.tgz +0 -0
  146. package/components/tryghost-metrics-server-5.96.0.tgz +0 -0
  147. package/components/tryghost-minifier-5.96.0.tgz +0 -0
  148. package/components/tryghost-model-to-domain-event-interceptor-5.96.0.tgz +0 -0
  149. package/components/tryghost-mw-cache-control-5.96.0.tgz +0 -0
  150. package/components/tryghost-mw-error-handler-5.96.0.tgz +0 -0
  151. package/components/tryghost-mw-vhost-5.96.0.tgz +0 -0
  152. package/components/tryghost-nql-filter-expansions-5.96.0.tgz +0 -0
  153. package/components/tryghost-oembed-service-5.96.0.tgz +0 -0
  154. package/components/tryghost-post-events-5.96.0.tgz +0 -0
  155. package/components/tryghost-recommendations-5.96.0.tgz +0 -0
  156. package/components/tryghost-referrers-5.96.0.tgz +0 -0
  157. package/components/tryghost-slack-notifications-5.96.0.tgz +0 -0
  158. package/components/tryghost-version-notifications-data-service-5.96.0.tgz +0 -0
  159. package/components/tryghost-webmentions-5.96.0.tgz +0 -0
  160. package/core/frontend/services/admin-auth-assets/index.js +0 -4
  161. package/core/frontend/services/card-assets/index.js +0 -4
  162. package/core/frontend/services/comment-counts-assets/CommentCountsAssetsService.js +0 -59
  163. package/core/frontend/services/comment-counts-assets/index.js +0 -4
  164. package/core/frontend/services/member-attribution-assets/MemberAttributionAssetsService.js +0 -83
  165. package/core/frontend/services/member-attribution-assets/index.js +0 -4
  166. /package/core/built/admin/assets/{chunk.874.2b603e6adcf3c2e9788c.js.LICENSE.txt → chunk.874.e1d421507701daac30fb.js.LICENSE.txt} +0 -0
@@ -2,7 +2,6 @@ const ghostBookshelf = require('./base');
2
2
  const crypto = require('crypto');
3
3
  const _ = require('lodash');
4
4
  const config = require('../../shared/config');
5
- const {gravatar} = require('../lib/image');
6
5
 
7
6
  const Member = ghostBookshelf.Model.extend({
8
7
  tableName: 'members',
@@ -397,6 +396,7 @@ const Member = ghostBookshelf.Model.extend({
397
396
  // Will not use gravatar if privacy.useGravatar is false in config
398
397
  attrs.avatar_image = null;
399
398
  if (attrs.email && !config.isPrivacyDisabled('useGravatar')) {
399
+ const {gravatar} = require('../lib/image');
400
400
  attrs.avatar_image = gravatar.url(attrs.email, {size: 250, default: 'blank'});
401
401
  }
402
402
 
@@ -742,7 +742,7 @@ Post = ghostBookshelf.Model.extend({
742
742
  )
743
743
  ) {
744
744
  try {
745
- this.set('html', mobiledocLib.mobiledocHtmlRenderer.render(JSON.parse(this.get('mobiledoc'))));
745
+ this.set('html', mobiledocLib.render(JSON.parse(this.get('mobiledoc'))));
746
746
  } catch (err) {
747
747
  throw new errors.ValidationError({
748
748
  message: tpl(messages.invalidMobiledocStructure),
@@ -59,7 +59,7 @@ class EmailServiceWrapper {
59
59
  settingsCache,
60
60
  settingsHelpers,
61
61
  renderers: {
62
- mobiledoc: mobiledocLib.mobiledocHtmlRenderer,
62
+ mobiledoc: mobiledocLib,
63
63
  lexical: lexicalLib
64
64
  },
65
65
  imageSize,
@@ -14,14 +14,14 @@ const messages = {
14
14
  themeCannotBeActivated: '{themeName} cannot be activated because it was not found in the theme directory.'
15
15
  };
16
16
 
17
- module.exports.loadAndActivate = async (themeName) => {
17
+ module.exports.loadAndActivate = async (themeName, options = {}) => {
18
18
  debug('loadAndActivate', themeName);
19
19
  try {
20
20
  // Just read the active theme for now
21
21
  const loadedTheme = await themeLoader.loadOneTheme(themeName);
22
22
  // Validate
23
23
  // @NOTE: this is now the only usage of check, rather than checkSafe...
24
- const checkedTheme = await validate.check(themeName, loadedTheme);
24
+ const checkedTheme = await validate.check(themeName, loadedTheme, {skipChecks: options.skipChecks});
25
25
 
26
26
  if (!validate.canActivate(checkedTheme)) {
27
27
  logging.error(validate.getThemeValidationError('activeThemeHasFatalErrors', themeName, checkedTheme));
@@ -5,6 +5,7 @@ const getJSON = require('./to-json');
5
5
  const installer = require('./installer');
6
6
  const validate = require('./validate');
7
7
  const settingsCache = require('../../../shared/settings-cache');
8
+ const config = require('../../../shared/config');
8
9
 
9
10
  module.exports = {
10
11
  /*
@@ -13,8 +14,10 @@ module.exports = {
13
14
  init: async () => {
14
15
  validate.init();
15
16
 
17
+ const skipChecks = config.get('optimization:themes:skipBootChecks') || false;
18
+
16
19
  const themeName = settingsCache.get('active_theme');
17
- return activate.loadAndActivate(themeName);
20
+ return activate.loadAndActivate(themeName, {skipChecks});
18
21
  },
19
22
  /**
20
23
  * Load all inactive themes
@@ -44,25 +44,27 @@ const getErrorsFromCheckedTheme = function getErrorsFromCheckedTheme(checkedThem
44
44
  };
45
45
  };
46
46
 
47
- const check = async function check(themeName, theme, isZip) {
47
+ const check = async function check(themeName, theme, options = {}) {
48
48
  debug('Begin: Check');
49
49
  // gscan can slow down boot time if we require on boot, for now nest the require.
50
50
  const gscan = require('gscan');
51
51
  const checkedVersion = 'v5';
52
52
  let checkedTheme;
53
53
 
54
- if (isZip) {
54
+ if (options.isZip === true) {
55
55
  debug('zip mode');
56
56
  checkedTheme = await gscan.checkZip(theme, {
57
57
  keepExtractedDir: true,
58
58
  checkVersion: checkedVersion,
59
- labs: labs.getAll()
59
+ labs: labs.getAll(),
60
+ skipChecks: options.skipChecks || false
60
61
  });
61
62
  } else {
62
63
  debug('non-zip mode');
63
64
  checkedTheme = await gscan.check(theme.path, {
64
65
  checkVersion: checkedVersion,
65
- labs: labs.getAll()
66
+ labs: labs.getAll(),
67
+ skipChecks: options.skipChecks || false
66
68
  });
67
69
  }
68
70
 
@@ -119,7 +121,7 @@ const getThemeErrors = async function getThemeErrors(themeName) {
119
121
  };
120
122
 
121
123
  const checkSafe = async function checkSafe(themeName, theme, isZip) {
122
- const checkedTheme = await check(themeName, theme, isZip);
124
+ const checkedTheme = await check(themeName, theme, {isZip});
123
125
 
124
126
  if (canActivate(checkedTheme)) {
125
127
  return checkedTheme;
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>We'll be right back</title>
7
+ <title>Well be right back</title>
8
8
  <style type="text/css">
9
9
  * {
10
10
  box-sizing: border-box;
@@ -80,8 +80,8 @@ img {
80
80
  </head>
81
81
  <body>
82
82
  <div class="content">
83
- <h1>We'll be right back.</h1>
84
- <p>We're busy updating our site to give you the best experience, and will be back soon.</p>
83
+ <h1>Well be right back.</h1>
84
+ <p>Were busy updating our site to give you the best experience, and will be back soon.</p>
85
85
  </div>
86
86
  </body>
87
87
  </html>
@@ -9,6 +9,7 @@ const shared = require('../shared');
9
9
  const errorHandler = require('@tryghost/mw-error-handler');
10
10
  const sentry = require('../../../shared/sentry');
11
11
  const redirectAdminUrls = require('./middleware/redirect-admin-urls');
12
+ const bridge = require('../../../bridge');
12
13
 
13
14
  /**
14
15
  *
@@ -38,7 +39,7 @@ module.exports = function setupAdminApp() {
38
39
  // request to the Admin API /users/me/ endpoint to check if the user is logged in.
39
40
  //
40
41
  // Used by comments-ui to add moderation options to front-end comments when logged in.
41
- adminApp.use('/auth-frame', function authFrameMw(req, res, next) {
42
+ adminApp.use('/auth-frame', bridge.ensureAdminAuthAssetsMiddleware(), function authFrameMw(req, res, next) {
42
43
  // only render content when we have an Admin session cookie,
43
44
  // otherwise return a 204 to avoid JS and API requests being made unnecessarily
44
45
  try {
@@ -164,6 +164,9 @@
164
164
  "threshold": 200,
165
165
  "level": "warn"
166
166
  }
167
+ },
168
+ "themes": {
169
+ "skipBootChecks": false
167
170
  }
168
171
  },
169
172
  "imageOptimization": {
@@ -1,7 +1,10 @@
1
1
  const path = require('path');
2
- const escapeRegExp = require('lodash/escapeRegExp');
3
2
  const {URL} = require('url');
4
3
 
4
+ function escapeRegExp(string) {
5
+ return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
6
+ }
7
+
5
8
  const DEFAULT_HOST_ARG = /.*/;
6
9
 
7
10
  const getHostInfo = (config) => {
@@ -1,6 +1,5 @@
1
1
  const path = require('path');
2
- const fs = require('fs-extra');
3
- const _ = require('lodash');
2
+ const fs = require('fs');
4
3
 
5
4
  /**
6
5
  * transform all relative paths to absolute paths
@@ -11,11 +10,11 @@ const _ = require('lodash');
11
10
  * Path can be a "." to re-present current folder
12
11
  */
13
12
  const makePathsAbsolute = function makePathsAbsolute(nconf, obj, parent) {
14
- _.each(obj, function (configValue, pathsKey) {
15
- if (_.isObject(configValue)) {
13
+ Object.entries(obj).forEach(([pathsKey, configValue]) => {
14
+ if (configValue && typeof configValue === 'object') {
16
15
  makePathsAbsolute(nconf, configValue, parent + ':' + pathsKey);
17
16
  } else if (
18
- _.isString(configValue) &&
17
+ typeof configValue === 'string' &&
19
18
  (configValue.match(/\/+|\\+/) || configValue === '.') &&
20
19
  !path.isAbsolute(configValue)
21
20
  ) {
@@ -25,7 +24,7 @@ const makePathsAbsolute = function makePathsAbsolute(nconf, obj, parent) {
25
24
  };
26
25
 
27
26
  const doesContentPathExist = function doesContentPathExist(contentPath) {
28
- if (!fs.pathExistsSync(contentPath)) {
27
+ if (!fs.existsSync(contentPath)) {
29
28
  // new Error is allowed here, as we do not want config to depend on @tryghost/error
30
29
  // @TODO: revisit this decision when @tryghost/error is no longer dependent on all of ghost-ignition
31
30
  // eslint-disable-next-line ghost/ghost-custom/no-native-error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.96.0",
3
+ "version": "5.96.1",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -61,44 +61,44 @@
61
61
  "@sentry/node": "7.119.0",
62
62
  "@slack/webhook": "7.0.3",
63
63
  "@tryghost/adapter-base-cache": "0.1.12",
64
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.96.0.tgz",
65
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.96.0.tgz",
64
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.96.1.tgz",
65
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.96.1.tgz",
66
66
  "@tryghost/admin-api-schema": "4.5.5",
67
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.96.0.tgz",
68
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.96.0.tgz",
69
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.96.0.tgz",
70
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.96.0.tgz",
71
- "@tryghost/bookshelf-plugins": "0.6.24",
72
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.96.0.tgz",
73
- "@tryghost/collections": "file:components/tryghost-collections-5.96.0.tgz",
67
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.96.1.tgz",
68
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.96.1.tgz",
69
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.96.1.tgz",
70
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.96.1.tgz",
71
+ "@tryghost/bookshelf-plugins": "0.6.25",
72
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.96.1.tgz",
73
+ "@tryghost/collections": "file:components/tryghost-collections-5.96.1.tgz",
74
74
  "@tryghost/color-utils": "0.2.2",
75
75
  "@tryghost/config-url-helpers": "1.0.12",
76
- "@tryghost/constants": "file:components/tryghost-constants-5.96.0.tgz",
77
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.96.0.tgz",
78
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.96.0.tgz",
76
+ "@tryghost/constants": "file:components/tryghost-constants-5.96.1.tgz",
77
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.96.1.tgz",
78
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.96.1.tgz",
79
79
  "@tryghost/database-info": "0.3.27",
80
80
  "@tryghost/debug": "0.1.32",
81
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.96.0.tgz",
82
- "@tryghost/donations": "file:components/tryghost-donations-5.96.0.tgz",
83
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.96.0.tgz",
84
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.96.0.tgz",
85
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.96.0.tgz",
86
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.96.0.tgz",
81
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.96.1.tgz",
82
+ "@tryghost/donations": "file:components/tryghost-donations-5.96.1.tgz",
83
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.96.1.tgz",
84
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.96.1.tgz",
85
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.96.1.tgz",
86
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.96.1.tgz",
87
87
  "@tryghost/email-mock-receiver": "0.3.8",
88
- "@tryghost/email-service": "file:components/tryghost-email-service-5.96.0.tgz",
89
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.96.0.tgz",
88
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.96.1.tgz",
89
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.96.1.tgz",
90
90
  "@tryghost/errors": "1.3.5",
91
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.96.0.tgz",
92
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.96.0.tgz",
93
- "@tryghost/ghost": "file:components/tryghost-ghost-5.96.0.tgz",
91
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.96.1.tgz",
92
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.96.1.tgz",
93
+ "@tryghost/ghost": "file:components/tryghost-ghost-5.96.1.tgz",
94
94
  "@tryghost/helpers": "1.1.90",
95
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.96.0.tgz",
95
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.96.1.tgz",
96
96
  "@tryghost/http-cache-utils": "0.1.17",
97
- "@tryghost/i18n": "file:components/tryghost-i18n-5.96.0.tgz",
97
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.96.1.tgz",
98
98
  "@tryghost/image-transform": "1.3.0",
99
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.96.0.tgz",
100
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.96.0.tgz",
101
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.96.0.tgz",
99
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.96.1.tgz",
100
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.96.1.tgz",
101
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.96.1.tgz",
102
102
  "@tryghost/kg-card-factory": "5.0.5",
103
103
  "@tryghost/kg-converters": "1.0.7",
104
104
  "@tryghost/kg-default-atoms": "5.0.3",
@@ -108,59 +108,59 @@
108
108
  "@tryghost/kg-lexical-html-renderer": "1.1.21",
109
109
  "@tryghost/kg-mobiledoc-html-renderer": "7.0.6",
110
110
  "@tryghost/limit-service": "1.2.14",
111
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.96.0.tgz",
112
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.96.0.tgz",
113
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.96.0.tgz",
111
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.96.1.tgz",
112
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.96.1.tgz",
113
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.96.1.tgz",
114
114
  "@tryghost/logging": "2.4.18",
115
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.96.0.tgz",
116
- "@tryghost/mail-events": "file:components/tryghost-mail-events-5.96.0.tgz",
117
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.96.0.tgz",
118
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.96.0.tgz",
119
- "@tryghost/member-events": "file:components/tryghost-member-events-5.96.0.tgz",
120
- "@tryghost/members-api": "file:components/tryghost-members-api-5.96.0.tgz",
121
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.96.0.tgz",
122
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.96.0.tgz",
123
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.96.0.tgz",
124
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.96.0.tgz",
125
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.96.0.tgz",
126
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.96.0.tgz",
127
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.96.0.tgz",
115
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.96.1.tgz",
116
+ "@tryghost/mail-events": "file:components/tryghost-mail-events-5.96.1.tgz",
117
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.96.1.tgz",
118
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.96.1.tgz",
119
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.96.1.tgz",
120
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.96.1.tgz",
121
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.96.1.tgz",
122
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.96.1.tgz",
123
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.96.1.tgz",
124
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.96.1.tgz",
125
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.96.1.tgz",
126
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.96.1.tgz",
127
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.96.1.tgz",
128
128
  "@tryghost/metrics": "1.0.34",
129
- "@tryghost/milestones": "file:components/tryghost-milestones-5.96.0.tgz",
130
- "@tryghost/minifier": "file:components/tryghost-minifier-5.96.0.tgz",
131
- "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.96.0.tgz",
132
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.96.0.tgz",
133
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.96.0.tgz",
134
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.96.0.tgz",
135
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.96.0.tgz",
136
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.96.0.tgz",
137
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.96.0.tgz",
129
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.96.1.tgz",
130
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.96.1.tgz",
131
+ "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.96.1.tgz",
132
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.96.1.tgz",
133
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.96.1.tgz",
134
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.96.1.tgz",
135
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.96.1.tgz",
136
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.96.1.tgz",
137
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.96.1.tgz",
138
138
  "@tryghost/nodemailer": "0.3.45",
139
- "@tryghost/nql": "0.12.5",
140
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.96.0.tgz",
141
- "@tryghost/package-json": "file:components/tryghost-package-json-5.96.0.tgz",
142
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.96.0.tgz",
143
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.96.0.tgz",
139
+ "@tryghost/nql": "0.12.6",
140
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.96.1.tgz",
141
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.96.1.tgz",
142
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.96.1.tgz",
143
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.96.1.tgz",
144
144
  "@tryghost/pretty-cli": "1.2.44",
145
145
  "@tryghost/promise": "0.3.12",
146
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.96.0.tgz",
146
+ "@tryghost/recommendations": "file:components/tryghost-recommendations-5.96.1.tgz",
147
147
  "@tryghost/request": "1.0.8",
148
- "@tryghost/security": "file:components/tryghost-security-5.96.0.tgz",
149
- "@tryghost/session-service": "file:components/tryghost-session-service-5.96.0.tgz",
150
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.96.0.tgz",
151
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.96.0.tgz",
148
+ "@tryghost/security": "file:components/tryghost-security-5.96.1.tgz",
149
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.96.1.tgz",
150
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.96.1.tgz",
151
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.96.1.tgz",
152
152
  "@tryghost/social-urls": "0.1.43",
153
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.96.0.tgz",
154
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.96.0.tgz",
153
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.96.1.tgz",
154
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.96.1.tgz",
155
155
  "@tryghost/string": "0.2.12",
156
- "@tryghost/tiers": "file:components/tryghost-tiers-5.96.0.tgz",
156
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.96.1.tgz",
157
157
  "@tryghost/tpl": "0.1.32",
158
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.96.0.tgz",
158
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.96.1.tgz",
159
159
  "@tryghost/url-utils": "4.4.8",
160
160
  "@tryghost/validator": "0.2.14",
161
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.96.0.tgz",
161
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.96.1.tgz",
162
162
  "@tryghost/version": "0.1.30",
163
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.96.0.tgz",
163
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.96.1.tgz",
164
164
  "@tryghost/zip": "1.1.46",
165
165
  "amperize": "0.6.1",
166
166
  "body-parser": "1.20.3",
@@ -176,19 +176,19 @@
176
176
  "cookie-session": "2.1.0",
177
177
  "cors": "2.8.5",
178
178
  "downsize": "0.0.8",
179
- "express": "4.21.0",
179
+ "express": "4.21.1",
180
180
  "express-brute": "1.0.1",
181
181
  "express-hbs": "2.5.0",
182
182
  "express-jwt": "8.4.1",
183
183
  "express-lazy-router": "1.0.6",
184
184
  "express-query-boolean": "2.0.0",
185
185
  "express-queue": "0.0.13",
186
- "express-session": "1.18.0",
186
+ "express-session": "1.18.1",
187
187
  "fs-extra": "11.2.0",
188
188
  "ghost-storage-base": "1.0.0",
189
189
  "glob": "8.1.0",
190
190
  "got": "11.8.6",
191
- "gscan": "4.43.5",
191
+ "gscan": "4.44.0",
192
192
  "human-number": "2.0.4",
193
193
  "image-size": "1.1.1",
194
194
  "intl": "1.2.5",
@@ -265,86 +265,86 @@
265
265
  "jackspeak": "2.1.1",
266
266
  "moment": "2.24.0",
267
267
  "moment-timezone": "0.5.45",
268
- "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.96.0.tgz",
269
- "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.96.0.tgz",
270
- "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.96.0.tgz",
271
- "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.96.0.tgz",
272
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.96.0.tgz",
273
- "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.96.0.tgz",
274
- "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.96.0.tgz",
275
- "@tryghost/bookshelf-repository": "file:components/tryghost-bookshelf-repository-5.96.0.tgz",
276
- "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.96.0.tgz",
277
- "@tryghost/collections": "file:components/tryghost-collections-5.96.0.tgz",
278
- "@tryghost/constants": "file:components/tryghost-constants-5.96.0.tgz",
279
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.96.0.tgz",
280
- "@tryghost/data-generator": "file:components/tryghost-data-generator-5.96.0.tgz",
281
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.96.0.tgz",
282
- "@tryghost/donations": "file:components/tryghost-donations-5.96.0.tgz",
283
- "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.96.0.tgz",
284
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.96.0.tgz",
285
- "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.96.0.tgz",
286
- "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.96.0.tgz",
287
- "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.96.0.tgz",
288
- "@tryghost/email-events": "file:components/tryghost-email-events-5.96.0.tgz",
289
- "@tryghost/email-service": "file:components/tryghost-email-service-5.96.0.tgz",
290
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.96.0.tgz",
291
- "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.96.0.tgz",
292
- "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.96.0.tgz",
293
- "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.96.0.tgz",
294
- "@tryghost/ghost": "file:components/tryghost-ghost-5.96.0.tgz",
295
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.96.0.tgz",
296
- "@tryghost/i18n": "file:components/tryghost-i18n-5.96.0.tgz",
297
- "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.96.0.tgz",
298
- "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.96.0.tgz",
299
- "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.96.0.tgz",
300
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.96.0.tgz",
301
- "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.96.0.tgz",
302
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.96.0.tgz",
303
- "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.96.0.tgz",
304
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.96.0.tgz",
305
- "@tryghost/mail-events": "file:components/tryghost-mail-events-5.96.0.tgz",
306
- "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.96.0.tgz",
307
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.96.0.tgz",
308
- "@tryghost/member-events": "file:components/tryghost-member-events-5.96.0.tgz",
309
- "@tryghost/members-api": "file:components/tryghost-members-api-5.96.0.tgz",
310
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.96.0.tgz",
311
- "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.96.0.tgz",
312
- "@tryghost/members-importer": "file:components/tryghost-members-importer-5.96.0.tgz",
313
- "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.96.0.tgz",
314
- "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.96.0.tgz",
315
- "@tryghost/metrics-server": "file:components/tryghost-metrics-server-5.96.0.tgz",
316
- "@tryghost/milestones": "file:components/tryghost-milestones-5.96.0.tgz",
317
- "@tryghost/minifier": "file:components/tryghost-minifier-5.96.0.tgz",
318
- "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.96.0.tgz",
319
- "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.96.0.tgz",
320
- "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.96.0.tgz",
321
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.96.0.tgz",
322
- "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.96.0.tgz",
323
- "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.96.0.tgz",
324
- "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.96.0.tgz",
325
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.96.0.tgz",
326
- "@tryghost/nql-filter-expansions": "file:components/tryghost-nql-filter-expansions-5.96.0.tgz",
327
- "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.96.0.tgz",
328
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.96.0.tgz",
329
- "@tryghost/package-json": "file:components/tryghost-package-json-5.96.0.tgz",
330
- "@tryghost/members-payments": "file:components/tryghost-members-payments-5.96.0.tgz",
331
- "@tryghost/post-events": "file:components/tryghost-post-events-5.96.0.tgz",
332
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.96.0.tgz",
333
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.96.0.tgz",
334
- "@tryghost/recommendations": "file:components/tryghost-recommendations-5.96.0.tgz",
335
- "@tryghost/referrers": "file:components/tryghost-referrers-5.96.0.tgz",
336
- "@tryghost/security": "file:components/tryghost-security-5.96.0.tgz",
337
- "@tryghost/session-service": "file:components/tryghost-session-service-5.96.0.tgz",
338
- "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.96.0.tgz",
339
- "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.96.0.tgz",
340
- "@tryghost/staff-service": "file:components/tryghost-staff-service-5.96.0.tgz",
341
- "@tryghost/stats-service": "file:components/tryghost-stats-service-5.96.0.tgz",
342
- "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.96.0.tgz",
343
- "@tryghost/tiers": "file:components/tryghost-tiers-5.96.0.tgz",
344
- "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.96.0.tgz",
345
- "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.96.0.tgz",
346
- "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.96.0.tgz",
347
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.96.0.tgz"
268
+ "@tryghost/adapter-cache-memory-ttl": "file:components/tryghost-adapter-cache-memory-ttl-5.96.1.tgz",
269
+ "@tryghost/adapter-cache-redis": "file:components/tryghost-adapter-cache-redis-5.96.1.tgz",
270
+ "@tryghost/adapter-manager": "file:components/tryghost-adapter-manager-5.96.1.tgz",
271
+ "@tryghost/announcement-bar-settings": "file:components/tryghost-announcement-bar-settings-5.96.1.tgz",
272
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.96.1.tgz",
273
+ "@tryghost/api-version-compatibility-service": "file:components/tryghost-api-version-compatibility-service-5.96.1.tgz",
274
+ "@tryghost/audience-feedback": "file:components/tryghost-audience-feedback-5.96.1.tgz",
275
+ "@tryghost/bookshelf-repository": "file:components/tryghost-bookshelf-repository-5.96.1.tgz",
276
+ "@tryghost/bootstrap-socket": "file:components/tryghost-bootstrap-socket-5.96.1.tgz",
277
+ "@tryghost/collections": "file:components/tryghost-collections-5.96.1.tgz",
278
+ "@tryghost/constants": "file:components/tryghost-constants-5.96.1.tgz",
279
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.96.1.tgz",
280
+ "@tryghost/data-generator": "file:components/tryghost-data-generator-5.96.1.tgz",
281
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.96.1.tgz",
282
+ "@tryghost/donations": "file:components/tryghost-donations-5.96.1.tgz",
283
+ "@tryghost/dynamic-routing-events": "file:components/tryghost-dynamic-routing-events-5.96.1.tgz",
284
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.96.1.tgz",
285
+ "@tryghost/email-analytics-provider-mailgun": "file:components/tryghost-email-analytics-provider-mailgun-5.96.1.tgz",
286
+ "@tryghost/email-analytics-service": "file:components/tryghost-email-analytics-service-5.96.1.tgz",
287
+ "@tryghost/email-content-generator": "file:components/tryghost-email-content-generator-5.96.1.tgz",
288
+ "@tryghost/email-events": "file:components/tryghost-email-events-5.96.1.tgz",
289
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.96.1.tgz",
290
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.96.1.tgz",
291
+ "@tryghost/express-dynamic-redirects": "file:components/tryghost-express-dynamic-redirects-5.96.1.tgz",
292
+ "@tryghost/external-media-inliner": "file:components/tryghost-external-media-inliner-5.96.1.tgz",
293
+ "@tryghost/extract-api-key": "file:components/tryghost-extract-api-key-5.96.1.tgz",
294
+ "@tryghost/ghost": "file:components/tryghost-ghost-5.96.1.tgz",
295
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.96.1.tgz",
296
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.96.1.tgz",
297
+ "@tryghost/importer-handler-content-files": "file:components/tryghost-importer-handler-content-files-5.96.1.tgz",
298
+ "@tryghost/importer-revue": "file:components/tryghost-importer-revue-5.96.1.tgz",
299
+ "@tryghost/in-memory-repository": "file:components/tryghost-in-memory-repository-5.96.1.tgz",
300
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.96.1.tgz",
301
+ "@tryghost/link-redirects": "file:components/tryghost-link-redirects-5.96.1.tgz",
302
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.96.1.tgz",
303
+ "@tryghost/link-tracking": "file:components/tryghost-link-tracking-5.96.1.tgz",
304
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.96.1.tgz",
305
+ "@tryghost/mail-events": "file:components/tryghost-mail-events-5.96.1.tgz",
306
+ "@tryghost/mailgun-client": "file:components/tryghost-mailgun-client-5.96.1.tgz",
307
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.96.1.tgz",
308
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.96.1.tgz",
309
+ "@tryghost/members-api": "file:components/tryghost-members-api-5.96.1.tgz",
310
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.96.1.tgz",
311
+ "@tryghost/members-events-service": "file:components/tryghost-members-events-service-5.96.1.tgz",
312
+ "@tryghost/members-importer": "file:components/tryghost-members-importer-5.96.1.tgz",
313
+ "@tryghost/members-ssr": "file:components/tryghost-members-ssr-5.96.1.tgz",
314
+ "@tryghost/mentions-email-report": "file:components/tryghost-mentions-email-report-5.96.1.tgz",
315
+ "@tryghost/metrics-server": "file:components/tryghost-metrics-server-5.96.1.tgz",
316
+ "@tryghost/milestones": "file:components/tryghost-milestones-5.96.1.tgz",
317
+ "@tryghost/minifier": "file:components/tryghost-minifier-5.96.1.tgz",
318
+ "@tryghost/model-to-domain-event-interceptor": "file:components/tryghost-model-to-domain-event-interceptor-5.96.1.tgz",
319
+ "@tryghost/mw-api-version-mismatch": "file:components/tryghost-mw-api-version-mismatch-5.96.1.tgz",
320
+ "@tryghost/mw-cache-control": "file:components/tryghost-mw-cache-control-5.96.1.tgz",
321
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.96.1.tgz",
322
+ "@tryghost/mw-session-from-token": "file:components/tryghost-mw-session-from-token-5.96.1.tgz",
323
+ "@tryghost/mw-update-user-last-seen": "file:components/tryghost-mw-update-user-last-seen-5.96.1.tgz",
324
+ "@tryghost/mw-version-match": "file:components/tryghost-mw-version-match-5.96.1.tgz",
325
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.96.1.tgz",
326
+ "@tryghost/nql-filter-expansions": "file:components/tryghost-nql-filter-expansions-5.96.1.tgz",
327
+ "@tryghost/oembed-service": "file:components/tryghost-oembed-service-5.96.1.tgz",
328
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.96.1.tgz",
329
+ "@tryghost/package-json": "file:components/tryghost-package-json-5.96.1.tgz",
330
+ "@tryghost/members-payments": "file:components/tryghost-members-payments-5.96.1.tgz",
331
+ "@tryghost/post-events": "file:components/tryghost-post-events-5.96.1.tgz",
332
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.96.1.tgz",
333
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.96.1.tgz",
334
+ "@tryghost/recommendations": "file:components/tryghost-recommendations-5.96.1.tgz",
335
+ "@tryghost/referrers": "file:components/tryghost-referrers-5.96.1.tgz",
336
+ "@tryghost/security": "file:components/tryghost-security-5.96.1.tgz",
337
+ "@tryghost/session-service": "file:components/tryghost-session-service-5.96.1.tgz",
338
+ "@tryghost/settings-path-manager": "file:components/tryghost-settings-path-manager-5.96.1.tgz",
339
+ "@tryghost/slack-notifications": "file:components/tryghost-slack-notifications-5.96.1.tgz",
340
+ "@tryghost/staff-service": "file:components/tryghost-staff-service-5.96.1.tgz",
341
+ "@tryghost/stats-service": "file:components/tryghost-stats-service-5.96.1.tgz",
342
+ "@tryghost/members-stripe-service": "file:components/tryghost-members-stripe-service-5.96.1.tgz",
343
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.96.1.tgz",
344
+ "@tryghost/update-check-service": "file:components/tryghost-update-check-service-5.96.1.tgz",
345
+ "@tryghost/verification-trigger": "file:components/tryghost-verification-trigger-5.96.1.tgz",
346
+ "@tryghost/version-notifications-data-service": "file:components/tryghost-version-notifications-data-service-5.96.1.tgz",
347
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.96.1.tgz"
348
348
  },
349
349
  "nx": {
350
350
  "targets": {