ghost 5.118.0 → 5.118.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 (98) hide show
  1. package/bin/minify-assets.js +119 -0
  2. package/components/{tryghost-api-framework-5.118.0.tgz → tryghost-api-framework-5.118.1.tgz} +0 -0
  3. package/components/tryghost-constants-5.118.1.tgz +0 -0
  4. package/components/tryghost-custom-fonts-5.118.1.tgz +0 -0
  5. package/components/{tryghost-custom-theme-settings-service-5.118.0.tgz → tryghost-custom-theme-settings-service-5.118.1.tgz} +0 -0
  6. package/components/tryghost-domain-events-5.118.1.tgz +0 -0
  7. package/components/tryghost-donations-5.118.1.tgz +0 -0
  8. package/components/{tryghost-email-addresses-5.118.0.tgz → tryghost-email-addresses-5.118.1.tgz} +0 -0
  9. package/components/{tryghost-email-service-5.118.0.tgz → tryghost-email-service-5.118.1.tgz} +0 -0
  10. package/components/tryghost-email-suppression-list-5.118.1.tgz +0 -0
  11. package/components/tryghost-html-to-plaintext-5.118.1.tgz +0 -0
  12. package/components/tryghost-i18n-5.118.1.tgz +0 -0
  13. package/components/{tryghost-job-manager-5.118.0.tgz → tryghost-job-manager-5.118.1.tgz} +0 -0
  14. package/components/tryghost-link-replacer-5.118.1.tgz +0 -0
  15. package/components/tryghost-magic-link-5.118.1.tgz +0 -0
  16. package/components/{tryghost-member-attribution-5.118.0.tgz → tryghost-member-attribution-5.118.1.tgz} +0 -0
  17. package/components/{tryghost-member-events-5.118.0.tgz → tryghost-member-events-5.118.1.tgz} +0 -0
  18. package/components/{tryghost-members-csv-5.118.0.tgz → tryghost-members-csv-5.118.1.tgz} +0 -0
  19. package/components/{tryghost-members-offers-5.118.0.tgz → tryghost-members-offers-5.118.1.tgz} +0 -0
  20. package/components/tryghost-mw-error-handler-5.118.1.tgz +0 -0
  21. package/components/{tryghost-mw-vhost-5.118.0.tgz → tryghost-mw-vhost-5.118.1.tgz} +0 -0
  22. package/components/tryghost-post-events-5.118.1.tgz +0 -0
  23. package/components/{tryghost-post-revisions-5.118.0.tgz → tryghost-post-revisions-5.118.1.tgz} +0 -0
  24. package/components/tryghost-posts-service-5.118.1.tgz +0 -0
  25. package/components/tryghost-prometheus-metrics-5.118.1.tgz +0 -0
  26. package/components/tryghost-security-5.118.1.tgz +0 -0
  27. package/components/tryghost-tiers-5.118.1.tgz +0 -0
  28. package/components/{tryghost-webmentions-5.118.0.tgz → tryghost-webmentions-5.118.1.tgz} +0 -0
  29. package/core/bridge.js +1 -11
  30. package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +9210 -8727
  31. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-1143c509.mjs → CodeEditorView-9d2a0119.mjs} +2 -2
  32. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  33. package/core/built/admin/assets/admin-x-settings/{index-19ebc8ad.mjs → index-48250e60.mjs} +2 -2
  34. package/core/built/admin/assets/admin-x-settings/{index-ac104f42.mjs → index-fd83d7a5.mjs} +3400 -3356
  35. package/core/built/admin/assets/admin-x-settings/{modals-994901ee.mjs → modals-8fdc40a2.mjs} +7714 -7257
  36. package/core/built/admin/assets/chunk.524.9c1e444ecff073f053f5.js +35 -0
  37. package/core/built/admin/assets/chunk.582.9b35e36c109a3c2d486b.js +37 -0
  38. package/core/built/admin/assets/{chunk.713.48f120c377bcaffdfddf.js → chunk.709.0cb431c2ada3758f5368.js} +2728 -2726
  39. package/core/built/admin/assets/{chunk.713.48f120c377bcaffdfddf.js.LICENSE.txt → chunk.709.0cb431c2ada3758f5368.js.LICENSE.txt} +2 -2
  40. package/core/built/admin/assets/{ghost-cd90a28b214ee800a007bb62cd45e6e6.js → ghost-941b0691f9ab77a31452151d2828caee.js} +388 -388
  41. package/core/built/admin/assets/{ghost-ba58e9822f7384461e926c7e23f04a75.css → ghost-c10c25cbf2256a65051bf20fdb32b1a9.css} +1 -1
  42. package/core/built/admin/assets/{ghost-dark-f1f29683b14ffa11615b3bba8b6ab92c.css → ghost-dark-6cbe9c3d45b8b605f846c4b417881e50.css} +1 -1
  43. package/core/built/admin/assets/posts/posts.js +79873 -29814
  44. package/core/built/admin/assets/stats/stats.js +14441 -14417
  45. package/core/built/admin/assets/{vendor-8e3ee8261528bb429cfe78ce79a4a82a.js → vendor-778197221846b9f24b630ecc57b8d8a9.js} +25 -25
  46. package/core/built/admin/index.html +13 -22
  47. package/core/frontend/apps/private-blogging/lib/views/private.hbs +4 -12
  48. package/core/frontend/helpers/ghost_head.js +2 -2
  49. package/core/frontend/public/admin-auth/admin-auth.min.js +1 -0
  50. package/core/frontend/public/comment-counts.min.js +1 -0
  51. package/core/frontend/public/ghost-stats.min.js +1 -0
  52. package/core/frontend/public/member-attribution.min.js +1 -0
  53. package/core/frontend/services/assets-minification/index.js +1 -11
  54. package/core/frontend/src/ghost-stats/ghost-stats.js +234 -0
  55. package/core/frontend/src/member-attribution/member-attribution.js +29 -29
  56. package/core/frontend/src/utils/privacy.js +70 -0
  57. package/core/frontend/src/utils/session-storage.js +68 -0
  58. package/core/frontend/src/utils/url-attribution.js +92 -0
  59. package/core/frontend/web/site.js +26 -6
  60. package/core/server/services/activitypub/ActivityPubService.js +0 -5
  61. package/core/server/services/activitypub/ActivityPubService.ts +0 -5
  62. package/core/server/views/error.hbs +4 -9
  63. package/core/server/web/admin/app.js +3 -5
  64. package/core/server/web/admin/middleware/serve-auth-frame-file.js +35 -0
  65. package/core/shared/config/env/config.development.docker.json +8 -0
  66. package/core/shared/config/env/config.development.json +1 -1
  67. package/core/shared/config/helpers.js +1 -21
  68. package/core/shared/labs.js +3 -6
  69. package/package.json +75 -66
  70. package/tsconfig.tsbuildinfo +1 -1
  71. package/yarn.lock +379 -351
  72. package/components/tryghost-constants-5.118.0.tgz +0 -0
  73. package/components/tryghost-custom-fonts-5.118.0.tgz +0 -0
  74. package/components/tryghost-domain-events-5.118.0.tgz +0 -0
  75. package/components/tryghost-donations-5.118.0.tgz +0 -0
  76. package/components/tryghost-email-suppression-list-5.118.0.tgz +0 -0
  77. package/components/tryghost-html-to-plaintext-5.118.0.tgz +0 -0
  78. package/components/tryghost-i18n-5.118.0.tgz +0 -0
  79. package/components/tryghost-link-replacer-5.118.0.tgz +0 -0
  80. package/components/tryghost-magic-link-5.118.0.tgz +0 -0
  81. package/components/tryghost-mw-error-handler-5.118.0.tgz +0 -0
  82. package/components/tryghost-post-events-5.118.0.tgz +0 -0
  83. package/components/tryghost-posts-service-5.118.0.tgz +0 -0
  84. package/components/tryghost-prometheus-metrics-5.118.0.tgz +0 -0
  85. package/components/tryghost-security-5.118.0.tgz +0 -0
  86. package/components/tryghost-tiers-5.118.0.tgz +0 -0
  87. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +0 -6
  88. package/core/built/admin/assets/admin-x-demo/index-09325f38.mjs +0 -11427
  89. package/core/built/admin/assets/admin-x-demo/modals-1a9ae8b7.mjs +0 -397
  90. package/core/built/admin/assets/chunk.524.5710919eb507b9a81166.js +0 -35
  91. package/core/built/admin/assets/chunk.582.c8cb99b85cfa13fc7df1.js +0 -37
  92. package/core/frontend/public/ghost-stats.js +0 -297
  93. package/core/frontend/services/assets-minification/AdminAuthAssets.js +0 -69
  94. package/core/frontend/services/assets-minification/CommentCountsAssets.js +0 -33
  95. package/core/frontend/services/assets-minification/MemberAttributionAssets.js +0 -45
  96. package/core/frontend/src/admin-auth/index.html +0 -6
  97. package/core/frontend/src/member-attribution/.eslintrc +0 -10
  98. /package/core/frontend/src/comment-counts/{js/comment-counts.js → comment-counts.js} +0 -0
@@ -9,7 +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
+ const createServeAuthFrameFileMw = require('./middleware/serve-auth-frame-file');
13
13
 
14
14
  /**
15
15
  *
@@ -39,7 +39,7 @@ module.exports = function setupAdminApp() {
39
39
  // request to the Admin API /users/me/ endpoint to check if the user is logged in.
40
40
  //
41
41
  // Used by comments-ui to add moderation options to front-end comments when logged in.
42
- adminApp.use('/auth-frame', bridge.ensureAdminAuthAssetsMiddleware(), function authFrameMw(req, res, next) {
42
+ adminApp.use('/auth-frame', function authFrameMw(req, res, next) {
43
43
  // only render content when we have an Admin session cookie,
44
44
  // otherwise return a 204 to avoid JS and API requests being made unnecessarily
45
45
  try {
@@ -52,9 +52,7 @@ module.exports = function setupAdminApp() {
52
52
  } catch (err) {
53
53
  next(err);
54
54
  }
55
- }, serveStatic(
56
- path.join(config.getContentPath('public'), 'admin-auth')
57
- ));
55
+ }, createServeAuthFrameFileMw(config, urlUtils));
58
56
 
59
57
  // Ember CLI's live-reload script
60
58
  if (config.get('env') === 'development') {
@@ -0,0 +1,35 @@
1
+ const path = require('node:path');
2
+ const fs = require('node:fs/promises');
3
+
4
+ function createServeAuthFrameFileMw(config, urlUtils) {
5
+ const placeholders = {
6
+ '{{SITE_ORIGIN}}': new URL(urlUtils.getSiteUrl()).origin
7
+ };
8
+
9
+ return function serveAuthFrameFileMw(req, res, next) {
10
+ const filename = path.parse(req.url).base;
11
+
12
+ let basePath = path.join(config.get('paths').publicFilePath, 'admin-auth');
13
+ let filePath;
14
+
15
+ if (filename === '') {
16
+ filePath = path.join(basePath, 'index.html');
17
+ } else {
18
+ filePath = path.join(basePath, filename);
19
+ }
20
+
21
+ return fs.readFile(filePath).then((data) => {
22
+ let dataString = data.toString();
23
+
24
+ for (const [key, value] of Object.entries(placeholders)) {
25
+ dataString = dataString.replace(key, value);
26
+ }
27
+
28
+ res.end(dataString);
29
+ }).catch(() => {
30
+ return next();
31
+ });
32
+ };
33
+ }
34
+
35
+ module.exports = createServeAuthFrameFileMw;
@@ -8,6 +8,14 @@
8
8
  "database": "ghost"
9
9
  }
10
10
  },
11
+ "mail": {
12
+ "from": "test@example.com",
13
+ "transport": "SMTP",
14
+ "options": {
15
+ "host": "mailhog",
16
+ "port": 1025
17
+ }
18
+ },
11
19
  "adapters": {
12
20
  "Redis": {
13
21
  "host": "redis",
@@ -35,4 +35,4 @@
35
35
  "maxAge": 0
36
36
  }
37
37
  }
38
- }
38
+ }
@@ -1,5 +1,3 @@
1
- const crypto = require('crypto');
2
- const os = require('os');
3
1
  const path = require('path');
4
2
  const {URL} = require('url');
5
3
 
@@ -66,24 +64,6 @@ const isPrivacyDisabled = function isPrivacyDisabled(privacyFlag) {
66
64
  return this.get('privacy')[privacyFlag] === false;
67
65
  };
68
66
 
69
- /** @type {string|null} */
70
- let processTmpDirPath = null;
71
-
72
- /**
73
- * Get a tmp dir path for the current process
74
- *
75
- * @returns {string} - tmp dir path for the current process
76
- */
77
- function getProcessTmpDirPath() {
78
- // Memoize the computed path to avoid re-computing it on each call - The
79
- // value should not change during the lifetime of the process.
80
- if (processTmpDirPath === null) {
81
- processTmpDirPath = path.join(os.tmpdir(), `ghost_${crypto.randomUUID()}`);
82
- }
83
-
84
- return processTmpDirPath;
85
- }
86
-
87
67
  /**
88
68
  * @callback getContentPathFn
89
69
  * @param {string} type - the type of context you want the path for
@@ -108,7 +88,7 @@ const getContentPath = function getContentPath(type) {
108
88
  case 'settings':
109
89
  return path.join(this.get('paths:contentPath'), 'settings/');
110
90
  case 'public':
111
- return path.join(getProcessTmpDirPath(this), 'public/');
91
+ return path.join(this.get('paths:contentPath'), 'public/');
112
92
  default:
113
93
  // new Error is allowed here, as we do not want config to depend on @tryghost/error
114
94
  // @TODO: revisit this decision when @tryghost/error is no longer dependent on all of ghost-ignition
@@ -26,8 +26,7 @@ const GA_FEATURES = [
26
26
  'themeErrorsNotification',
27
27
  'announcementBar',
28
28
  'customFonts',
29
- 'contentVisibility',
30
- 'socialLinks'
29
+ 'contentVisibility'
31
30
  ];
32
31
 
33
32
  // NOTE: this allowlist is meant to be used to filter out any unexpected
@@ -38,20 +37,18 @@ const BETA_FEATURES = [
38
37
  'webmentions',
39
38
  'editorExcerpt',
40
39
  'ActivityPub',
40
+ 'trafficAnalytics',
41
41
  'importMemberTier',
42
42
  'superEditors'
43
43
  ];
44
44
 
45
45
  const ALPHA_FEATURES = [
46
- 'NestPlayground',
47
46
  'urlCache',
48
47
  'emailCustomization',
49
48
  'mailEvents',
50
49
  'collectionsCard',
51
50
  'lexicalIndicators',
52
- 'adminXDemo',
53
- 'postsX',
54
- 'statsX',
51
+ 'trafficAnalyticsAlpha',
55
52
  'captcha',
56
53
  'contentVisibilityAlpha',
57
54
  'explore'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost",
3
- "version": "5.118.0",
3
+ "version": "5.118.1",
4
4
  "description": "The professional publishing platform",
5
5
  "author": "Ghost Foundation",
6
6
  "homepage": "https://ghost.org",
@@ -22,8 +22,11 @@
22
22
  "scripts": {
23
23
  "archive": "npm pack",
24
24
  "dev": "node --watch --import=tsx index.js",
25
- "build:assets": "postcss core/frontend/public/ghost.css --no-map --use cssnano -o core/frontend/public/ghost.min.css",
25
+ "build:assets": "yarn build:assets:css && yarn build:assets:js",
26
+ "build:assets:js": "node bin/minify-assets.js",
27
+ "build:assets:css": "postcss core/frontend/public/ghost.css --no-map --use cssnano -o core/frontend/public/ghost.min.css",
26
28
  "build:tsc": "tsc",
29
+ "pretest": "yarn build:assets",
27
30
  "test": "yarn test:unit",
28
31
  "test:base": "mocha --reporter dot --require tsx --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js,test.ts",
29
32
  "test:single": "yarn test:base --timeout=60000",
@@ -40,7 +43,7 @@
40
43
  "test:browser:setup": "npx playwright install",
41
44
  "test:ci:e2e": "c8 -c ./.c8rc.e2e.json -o coverage-e2e yarn test:e2e -b",
42
45
  "test:ci:regression": "yarn test:regression -b",
43
- "test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 53 --functions 47 --branches 74 --statements 53 yarn test:integration -b",
46
+ "test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 52 --functions 47 --branches 74 --statements 52 yarn test:integration -b",
44
47
  "test:unit:slow": "yarn test:unit --reporter=mocha-slow-test-reporter",
45
48
  "test:int:slow": "yarn test:integration --reporter=mocha-slow-test-reporter",
46
49
  "test:e2e:slow": "yarn test:e2e --reporter=mocha-slow-test-reporter",
@@ -66,28 +69,28 @@
66
69
  "@slack/webhook": "7.0.5",
67
70
  "@tryghost/adapter-base-cache": "0.1.12",
68
71
  "@tryghost/admin-api-schema": "4.5.5",
69
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.118.0.tgz",
72
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.118.1.tgz",
70
73
  "@tryghost/bookshelf-plugins": "0.6.25",
71
74
  "@tryghost/color-utils": "0.2.2",
72
75
  "@tryghost/config-url-helpers": "1.0.12",
73
- "@tryghost/constants": "file:components/tryghost-constants-5.118.0.tgz",
74
- "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.118.0.tgz",
75
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.118.0.tgz",
76
+ "@tryghost/constants": "file:components/tryghost-constants-5.118.1.tgz",
77
+ "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.118.1.tgz",
78
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.118.1.tgz",
76
79
  "@tryghost/database-info": "0.3.27",
77
80
  "@tryghost/debug": "0.1.32",
78
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.118.0.tgz",
79
- "@tryghost/donations": "file:components/tryghost-donations-5.118.0.tgz",
80
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.118.0.tgz",
81
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.118.1.tgz",
82
+ "@tryghost/donations": "file:components/tryghost-donations-5.118.1.tgz",
83
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.118.1.tgz",
81
84
  "@tryghost/email-mock-receiver": "0.3.8",
82
- "@tryghost/email-service": "file:components/tryghost-email-service-5.118.0.tgz",
83
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.118.0.tgz",
84
- "@tryghost/errors": "1.3.5",
85
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.118.1.tgz",
86
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.118.1.tgz",
87
+ "@tryghost/errors": "1.3.7",
85
88
  "@tryghost/helpers": "1.1.90",
86
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.118.0.tgz",
89
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.118.1.tgz",
87
90
  "@tryghost/http-cache-utils": "0.1.17",
88
- "@tryghost/i18n": "file:components/tryghost-i18n-5.118.0.tgz",
91
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.118.1.tgz",
89
92
  "@tryghost/image-transform": "1.3.0",
90
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.118.0.tgz",
93
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.118.1.tgz",
91
94
  "@tryghost/kg-card-factory": "5.1.0",
92
95
  "@tryghost/kg-converters": "1.1.0",
93
96
  "@tryghost/kg-default-atoms": "5.1.0",
@@ -97,34 +100,34 @@
97
100
  "@tryghost/kg-lexical-html-renderer": "1.3.5",
98
101
  "@tryghost/kg-mobiledoc-html-renderer": "7.1.1",
99
102
  "@tryghost/limit-service": "1.2.14",
100
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.118.0.tgz",
103
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.118.1.tgz",
101
104
  "@tryghost/logging": "2.4.21",
102
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.118.0.tgz",
103
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.118.0.tgz",
104
- "@tryghost/member-events": "file:components/tryghost-member-events-5.118.0.tgz",
105
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.118.0.tgz",
106
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.118.0.tgz",
105
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.118.1.tgz",
106
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.118.1.tgz",
107
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.118.1.tgz",
108
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.118.1.tgz",
109
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.118.1.tgz",
107
110
  "@tryghost/metrics": "1.0.37",
108
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.118.0.tgz",
109
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.118.0.tgz",
111
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.118.1.tgz",
112
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.118.1.tgz",
110
113
  "@tryghost/nodemailer": "0.3.45",
111
114
  "@tryghost/nql": "0.12.7",
112
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.118.0.tgz",
113
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.118.0.tgz",
115
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.118.1.tgz",
116
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.118.1.tgz",
114
117
  "@tryghost/pretty-cli": "1.2.44",
115
- "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.118.0.tgz",
118
+ "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.118.1.tgz",
116
119
  "@tryghost/promise": "0.3.12",
117
120
  "@tryghost/request": "1.0.8",
118
121
  "@tryghost/root-utils": "0.3.30",
119
- "@tryghost/security": "file:components/tryghost-security-5.118.0.tgz",
122
+ "@tryghost/security": "file:components/tryghost-security-5.118.1.tgz",
120
123
  "@tryghost/social-urls": "0.1.46",
121
124
  "@tryghost/string": "0.2.12",
122
- "@tryghost/tiers": "file:components/tryghost-tiers-5.118.0.tgz",
125
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.118.1.tgz",
123
126
  "@tryghost/tpl": "0.1.32",
124
127
  "@tryghost/url-utils": "4.4.8",
125
128
  "@tryghost/validator": "0.2.14",
126
129
  "@tryghost/version": "0.1.30",
127
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.118.0.tgz",
130
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.118.1.tgz",
128
131
  "@tryghost/zip": "1.1.46",
129
132
  "amperize": "0.6.1",
130
133
  "body-parser": "1.20.3",
@@ -173,7 +176,7 @@
173
176
  "intl": "1.2.5",
174
177
  "intl-messageformat": "5.4.3",
175
178
  "js-yaml": "4.1.0",
176
- "json-stable-stringify": "1.2.1",
179
+ "json-stable-stringify": "1.3.0",
177
180
  "jsonpath": "1.1.1",
178
181
  "jsonwebtoken": "8.5.1",
179
182
  "juice": "9.1.0",
@@ -198,7 +201,7 @@
198
201
  "moment-timezone": "0.5.45",
199
202
  "multer": "1.4.4",
200
203
  "mysql2": "3.14.0",
201
- "nconf": "0.12.1",
204
+ "nconf": "0.13.0",
202
205
  "node-fetch": "2.7.0",
203
206
  "node-jose": "2.2.0",
204
207
  "otplib": "12.0.1",
@@ -232,8 +235,8 @@
232
235
  "@tryghost/webhook-mock-receiver": "0.2.14",
233
236
  "@types/bookshelf": "1.2.9",
234
237
  "@types/common-tags": "1.8.4",
235
- "@types/jsonwebtoken": "9.0.6",
236
- "@types/node": "22.13.5",
238
+ "@types/jsonwebtoken": "9.0.9",
239
+ "@types/node": "22.14.1",
237
240
  "@types/node-jose": "1.1.13",
238
241
  "@types/sinon": "17.0.4",
239
242
  "@types/supertest": "6.0.3",
@@ -263,41 +266,41 @@
263
266
  "tmp": "0.2.3",
264
267
  "toml": "3.0.0",
265
268
  "tsx": "4.19.3",
266
- "typescript": "5.8.2"
269
+ "typescript": "5.8.3"
267
270
  },
268
271
  "resolutions": {
269
- "@tryghost/errors": "1.3.5",
272
+ "@tryghost/errors": "1.3.7",
270
273
  "@tryghost/logging": "2.4.21",
271
274
  "jackspeak": "2.1.1",
272
275
  "moment": "2.24.0",
273
276
  "moment-timezone": "0.5.45",
274
- "@tryghost/api-framework": "file:components/tryghost-api-framework-5.118.0.tgz",
275
- "@tryghost/constants": "file:components/tryghost-constants-5.118.0.tgz",
276
- "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.118.0.tgz",
277
- "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.118.0.tgz",
278
- "@tryghost/domain-events": "file:components/tryghost-domain-events-5.118.0.tgz",
279
- "@tryghost/donations": "file:components/tryghost-donations-5.118.0.tgz",
280
- "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.118.0.tgz",
281
- "@tryghost/email-service": "file:components/tryghost-email-service-5.118.0.tgz",
282
- "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.118.0.tgz",
283
- "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.118.0.tgz",
284
- "@tryghost/i18n": "file:components/tryghost-i18n-5.118.0.tgz",
285
- "@tryghost/job-manager": "file:components/tryghost-job-manager-5.118.0.tgz",
286
- "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.118.0.tgz",
287
- "@tryghost/magic-link": "file:components/tryghost-magic-link-5.118.0.tgz",
288
- "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.118.0.tgz",
289
- "@tryghost/member-events": "file:components/tryghost-member-events-5.118.0.tgz",
290
- "@tryghost/members-csv": "file:components/tryghost-members-csv-5.118.0.tgz",
291
- "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.118.0.tgz",
292
- "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.118.0.tgz",
293
- "@tryghost/members-offers": "file:components/tryghost-members-offers-5.118.0.tgz",
294
- "@tryghost/post-events": "file:components/tryghost-post-events-5.118.0.tgz",
295
- "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.118.0.tgz",
296
- "@tryghost/posts-service": "file:components/tryghost-posts-service-5.118.0.tgz",
297
- "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.118.0.tgz",
298
- "@tryghost/security": "file:components/tryghost-security-5.118.0.tgz",
299
- "@tryghost/tiers": "file:components/tryghost-tiers-5.118.0.tgz",
300
- "@tryghost/webmentions": "file:components/tryghost-webmentions-5.118.0.tgz"
277
+ "@tryghost/api-framework": "file:components/tryghost-api-framework-5.118.1.tgz",
278
+ "@tryghost/constants": "file:components/tryghost-constants-5.118.1.tgz",
279
+ "@tryghost/custom-fonts": "file:components/tryghost-custom-fonts-5.118.1.tgz",
280
+ "@tryghost/custom-theme-settings-service": "file:components/tryghost-custom-theme-settings-service-5.118.1.tgz",
281
+ "@tryghost/domain-events": "file:components/tryghost-domain-events-5.118.1.tgz",
282
+ "@tryghost/donations": "file:components/tryghost-donations-5.118.1.tgz",
283
+ "@tryghost/email-addresses": "file:components/tryghost-email-addresses-5.118.1.tgz",
284
+ "@tryghost/email-service": "file:components/tryghost-email-service-5.118.1.tgz",
285
+ "@tryghost/email-suppression-list": "file:components/tryghost-email-suppression-list-5.118.1.tgz",
286
+ "@tryghost/html-to-plaintext": "file:components/tryghost-html-to-plaintext-5.118.1.tgz",
287
+ "@tryghost/i18n": "file:components/tryghost-i18n-5.118.1.tgz",
288
+ "@tryghost/job-manager": "file:components/tryghost-job-manager-5.118.1.tgz",
289
+ "@tryghost/link-replacer": "file:components/tryghost-link-replacer-5.118.1.tgz",
290
+ "@tryghost/magic-link": "file:components/tryghost-magic-link-5.118.1.tgz",
291
+ "@tryghost/member-attribution": "file:components/tryghost-member-attribution-5.118.1.tgz",
292
+ "@tryghost/member-events": "file:components/tryghost-member-events-5.118.1.tgz",
293
+ "@tryghost/members-csv": "file:components/tryghost-members-csv-5.118.1.tgz",
294
+ "@tryghost/mw-error-handler": "file:components/tryghost-mw-error-handler-5.118.1.tgz",
295
+ "@tryghost/mw-vhost": "file:components/tryghost-mw-vhost-5.118.1.tgz",
296
+ "@tryghost/members-offers": "file:components/tryghost-members-offers-5.118.1.tgz",
297
+ "@tryghost/post-events": "file:components/tryghost-post-events-5.118.1.tgz",
298
+ "@tryghost/post-revisions": "file:components/tryghost-post-revisions-5.118.1.tgz",
299
+ "@tryghost/posts-service": "file:components/tryghost-posts-service-5.118.1.tgz",
300
+ "@tryghost/prometheus-metrics": "file:components/tryghost-prometheus-metrics-5.118.1.tgz",
301
+ "@tryghost/security": "file:components/tryghost-security-5.118.1.tgz",
302
+ "@tryghost/tiers": "file:components/tryghost-tiers-5.118.1.tgz",
303
+ "@tryghost/webmentions": "file:components/tryghost-webmentions-5.118.1.tgz"
301
304
  },
302
305
  "nx": {
303
306
  "targets": {
@@ -316,7 +319,8 @@
316
319
  },
317
320
  "dev": {
318
321
  "dependsOn": [
319
- "^build:ts"
322
+ "^build:ts",
323
+ "build:assets"
320
324
  ]
321
325
  },
322
326
  "test": {
@@ -331,12 +335,14 @@
331
335
  },
332
336
  "test:all": {
333
337
  "dependsOn": [
334
- "^build:ts"
338
+ "^build:ts",
339
+ "build:assets"
335
340
  ]
336
341
  },
337
342
  "test:unit": {
338
343
  "dependsOn": [
339
- "^build:ts"
344
+ "^build:ts",
345
+ "build:assets"
340
346
  ]
341
347
  },
342
348
  "test:integration": {
@@ -352,18 +358,21 @@
352
358
  "test:browser": {
353
359
  "dependsOn": [
354
360
  "^build:ts",
361
+ "build:assets",
355
362
  "ghost-admin:build"
356
363
  ]
357
364
  },
358
365
  "test:browser:admin": {
359
366
  "dependsOn": [
360
367
  "^build:ts",
368
+ "build:assets",
361
369
  "ghost-admin:build"
362
370
  ]
363
371
  },
364
372
  "test:browser:portal": {
365
373
  "dependsOn": [
366
374
  "^build:ts",
375
+ "build:assets",
367
376
  "ghost-admin:build"
368
377
  ]
369
378
  },