0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-04 02:01:58 -05:00
Commit graph

40433 commits

Author SHA1 Message Date
renovate[bot]
3138701d7d Update dependency nx to v19.8.14 2025-02-19 08:32:47 +01:00
renovate[bot]
6d2151b8d0 Update dependency @doist/react-interpolate to v2 2025-02-19 07:44:57 +01:00
Sodbileg Gansukh
d984140f6b
Added dark mode support to ActivityPub (#22228)
ref AP-755
2025-02-19 14:29:46 +08:00
Chris Raible
0501610973
Added force recreate option to yarn docker:dev script (#22230)
no issue

- There is still some flaky behavior with the docker setup that seems to
be caused by the container not shutting down or cleaning up properly.
Sometimes `yarn dev` just hangs, or sometimes it only runs some of the
commands required. This seems to only happen when running `docker
compose up` after having previously run it and stopped it.
- Passing the `--force-recreate` option to docker compose recreates all
the containers, which seems to avoid this problem without incurring a
noticeable performance penalty.
2025-02-19 06:10:18 +00:00
Chris Raible
9dcb7d69e7
Removed lexical ports from docker compose config (#22229)
no issue

- Port 4173 and 41730 are used to load a locally running version of
lexical into Ghost, and these ports were added to the Dockerfile and
compose.yml along with the ports for portal, admin, etc. However,
lexical runs _outside_ the container, so we don't really need to expose
these ports.
2025-02-18 21:21:13 -08:00
Chris Raible
96bc01a3ae
Reduced the size of the development docker image by ~100 MB (#22226)
no issue

- This commit includes a few minor optimizations to the Dockerfile
- Removes `/var/lib/apt/lists` and runs `apt clean` to remove the apt
cache after each `apt install ...` command. This reduces the resulting
image size by about 100 MB
- Also moved the playwright install to after the `package.json` and
`yarn.lock` files are copied in, so we don't have to specifically pin
the version in the Dockerfile — it will instead just look at the version
specified in the `package.json` files.
2025-02-18 18:09:47 -08:00
Chris Raible
cf6ff55241
Improved configuration setup for Docker development (#22224)
no issue

- When running Ghost in docker compose, you need to set the database
connection, redis connection, and the server host to values that are
suitable for the environment.
- Previously this was done by automatically editing your
`config.local.json` file to update these parameters in the container's
entrypoint script. This made it somewhat annoying to switch from Docker
to local development because you have to remember to update your
`config.local.json` manually.
- This change adds a new static configuration file for running in docker
compose. The values set in this configuration file will override any of
the same keys in the `config.local.json` file, while still allowing the
use of `config.local.json` for any _other_ configuration keys. The
upshot of this is that you won't need to modify your `config.local.json`
file when switching back and forth between local and docker dev — you
can keep your local database, redis, etc configuration in
`config.local.json`, and they will simply be ignored when running in
docker.
- This also removes the script that updates your `config.local.json`
file from the entrypoint, since we no longer need to perform this step.
2025-02-18 17:49:18 -08:00
Chris Raible
1891c2a6be
Rename compose profile to ghost (#22223)
no issue

- Renamed the docker compose profile for Ghost from `full` to `ghost`,
because it is clearer and makes more sense this way
- Also added an explicit `GHOST_DEV_IS_DOCKER` environment variable to
the `compose.yml` file to make checking if running in docker less
fragile and more explicit.
2025-02-18 16:45:18 -08:00
Chris Raible
12f14ae891
Removed knex-migrator init from Docker entrypoint (#22222)
no issue

- This fails when running the Ghost container alone (i.e. for unit
tests) since there is no database available.
- The database will be initialized when running `yarn dev` for the first
time anyhow, so this isn't really necessary here.
2025-02-19 00:14:39 +00:00
Chris Raible
dd521a13ef
Removed git submodule update from Dockerfile (#22221)
no issue

- Doing the submodule update in the Dockerfile doesn't work if you cloned Ghost via ssh,
because the Docker container doesn't have access to your ssh keys.
2025-02-19 00:02:40 +00:00
Chris Raible
0665ed6e9d
Improved docker development setup (#22177)
no issue

This commit is a fairly significant rework of the docker development
setup, with the goal of improving the performance of the Ghost container
and generally improving the DX of the docker development setup.

**Enumerating `node_modules` directories as volume exclusions for the
bind mount**
- The main source of performance overhead with the docker setup is the
bind mount, which mounts all the code into the container. Especially on
macOS, the bind mount introduces quite a bit of file system overhead.
Currently the bind mount includes all the `node_modules` directories,
which adds up to many thousands of files in the bind mount. This change
attempts to reduce this overhead by mounting in named volumes for each
`node_modules` directory in the monorepo, which effectively tells the
main bind mount to ignore these directories, thus reducing the
filesystem overhead.

**Removing the `yarn install` from the entrypoint script and the `yarn
setup:docker` step**
- This change has two more benefits: since all the `node_modules` are
installed into named volumes, we can now be confident that our local
`node_modules` won't conflict with the `node_modules` in the container.
Therefore, we can install `node_modules` at build time in the Dockerfile
instead of in the entrypoint script, and we can also get rid of the
`yarn setup:docker` setup command, which nukes your local `node_modules`
before building the container.

**Build optimization - enumerating all `package.json` files**
- In a typical node app's Dockerfile, you copy the `package.json` and
`yarn.lock` files into the container first, then run `yarn install`,
then copy the rest of the code in. This takes advantage of Docker's
build cache to avoid having to reinstall `node_modules` on every build
if you've only changed code files, but not any dependencies.
- This is more challenging to do with the monorepo since we have many
`package.json` files. This commit brute forces our way through that by
copying every single `package.json` file in the Dockerfile before
installing dependencies and copying the code in. The result is that
Docker builds become much faster, after the initial full build.

**Additional scripts**
- Since enumerating all the `node_modules` directories and
`package.json` files is tedious to do manually, this commit also
includes two new scripts to automate this work. Ideally we'll eventually
integrate these scripts with Slimer, so when you add a new package to
the monorepo it automatically updates the `Dockerfile` and
`compose.yml`, but for now we can manage that ourselves since it's a
fairly rare occurrence.
2025-02-18 23:47:39 +00:00
Chris Raible
bc25569843
Improved docstrings in the Stripe service and added README.md (#22214)
no issue

- No real code changes
- Added README.md to stripe service as a starting point to document some of the more complex stripe related flows
- Added typedefs and docstrings to most of the Stripe service code for improved type safety and clarity
2025-02-18 19:16:40 +00:00
Techkrypt-xyz
5f465b14e6
🌐 Updated Slovak translations (#21800)
I have completed the translation of the Slovak language for the missing
phrases and edited some of them for grammatical correctness, word order
and context.

---------

Co-authored-by: Peter Gonda <pipo@pipoline.com>
Co-authored-by: Cathy Sarisky <42299862+cathysarisky@users.noreply.github.com>
2025-02-18 15:17:29 +00:00
Daniel Lockyer
3945931059 Switched prepareContentFolder in legacy E2E utils to async-await
- this is slightly faster than the sync methods and brings it inline
  with that we have in the E2E framework, so it'll be easier to switch
  down the line
2025-02-18 16:01:34 +01:00
Daniel Lockyer
ae81a3650c Removed real-world waits in test by replacing with sinon
- this test needs to pass some time to make it work, and the current
  method awaits a setTimeout, which means we're waiting in the real
  world for it to finish
- we can just replace this with sinon to fake the clock jumping a second
  ahead of time
- this saves 2s in tests
2025-02-18 14:53:58 +01:00
Daniel Lockyer
463d6e0631 Removed Stripe API throttling in test environment
- I've discovered that 20% of our E2E test time is spent waiting around
  because we're throttling the requests to the Stripe API
- this makes sense in production because we have a requests/second limit
  but for testing it just makes things slower
- to avoid this, this commit increases the throttling thresholds if we
  detect we're in the testing environment
- the 10_000 limits are somewhat arbitrary, I tried Infinity but
  LeakyBucket doesn't like that number, and this achieves what I want
2025-02-18 14:29:01 +01:00
Paul
0a2d8f0264
🌐 Added missing Russian translations (#22186)
As title of the PR says: I translated all new strings into Russian,
keeping my style and glossary (previous full translation was also made
by me).
2025-02-18 13:27:24 +00:00
Daniel Lockyer
c56895fead Fixed NaN values when logging metrics to stdout
ref https://linear.app/ghost/issue/ENG-2022/fix-nan-timestamps-in-stdout-logging

- there was a bug in @tryghost/pretty-stream, which was fixed and so
  this commit bumps all the relevant packages to ensure we get the
  fix here
2025-02-18 14:05:17 +01:00
Daniel Lockyer
cb0fe4ba65 Refactored several test files to new E2E framework
- just some gentle refactors to move them to the new E2E test suite
- includes the new snapshots with the necessary matchers in place to
  ensure the tests aren't hardcoded with specific IDs
2025-02-17 17:16:01 +01:00
Sanne de Vries
794a8f066f
Updated CTA card bg and link styles (#22207)
Ref
https://linear.app/ghost/issue/PLG-355/improve-cta-card-settings-panel
- Added pink and purple as background colors to the CTA card.
- Changed CTA card link styles to currentColor instead of accent color –
both for the label and the body text.
2025-02-17 14:59:23 +00:00
Daniel Lockyer
aee0d3ce6e Removed use of deprecated email mock util
- this util has been deprecated for a while so this commit cleans up all
  uses of it and replaces it with the `emailMockReceiver` assertion
  function
2025-02-17 15:11:12 +01:00
Daniel Lockyer
4bcc0f5b6e Reverted "Removed experimental URL cache"
This reverts commit 1f8366b363.
2025-02-17 15:10:49 +01:00
Daniel Lockyer
1f8366b363 Removed experimental URL cache
fix https://linear.app/ghost/issue/ENG-1803/remove-url-cache-code

- this feature is experimental and was designed in order to speed up our
  URL service init by storing a cache of the object
- however, it was never really finished and we've had a few bugs with it
- to avoid further issues, this commit removes it
- along the way, I've discovered that our tests REQUIRE the URL cache in
  order to pass, which I thought was weird. Turns out it's because they
  incorrectly set cache values into the URL service that are outdated, which
  meant our snapshots are wrong
- this is why several of the snapshots have been updated, because URLs
  have changed
- sadly this commit touches so many files, but this feature was really
  spread around the codebase
- this technically removes test util API support for a split
  backend/frontend but that wasn't properly finished. I'd like to get
  that working, but first we need to unpick the mess we've got ourselves
  into
2025-02-17 14:44:39 +01:00
Daniel Lockyer
59917a8457 Deleted deprecated clearData util
- this util has been deprecated for a long time so we can just replace
  it with a suitable alternative and clean it up
2025-02-17 14:33:22 +01:00
Daniel Lockyer
7967c43a19 Improved Node 22 compatibility by bumping Koenig packages
ref https://linear.app/ghost/issue/ENG-2014/add-node-22-support-to-koenig

- we're working on adding support for Node 22 and part of that involves
  bumping the Koenig packages because they have version ranges we need
  updating in Ghost
- this commit bumps the packages so they have support for Node 22
2025-02-17 13:51:23 +01:00
Peter Zimon
c0179b4704
ActivityPub typography fix (#22202)
ref
https://linear.app/ghost/issue/AP-750/visual-designfrontend-regressions

- Default font-family is not set properly in local storage
2025-02-17 13:19:37 +01:00
Sodbileg Gansukh
db8b0c289d
Updated naming convention for hooks in ActivityPub (#22200)
ref AP-744

- we're using kebab case for non-component files for ActivitiPub
- updated the imports with path aliases while doing that
2025-02-17 09:47:07 +00:00
Sam Lord
2740686d53
Refactored Captcha to simplify usage
ref BAE-397

Moved the hCaptcha component outside of the page level, since it was
complicating the logic within the pages with no good reason.

The hCaptcha component is now attached to the pop-up modal. Since it's
invisible, this doesn't impact layout anyway, but means that any action
can trigger Captcha to run, and use the result within that same action.

This simplifies the flow by having the action itself confirm that
Captcha is enabled, then grabbing the token by running either a
challenge (for self-hosters) or using their enterprise heuristics system
(for Ghost Pro).

This also fixes issues where sites with multiple tiers wouldn't work
with Captcha, since the page had changed and the hCaptcha component was
unloaded.
2025-02-17 08:17:58 +00:00
Sodbileg Gansukh
13c5c5ff17
Moved NewPostModal component to the Feed page (#22199)
ref AP-744

- NewPostModal component is only used in Feed
- For that reason, this should be placed with the Feed component itself
in view directory
- Inbox and Feed components are still in a single file at the moment as
the separation isn't in the context of file structure updates
- Once componets are separated into smaller ones, Feed directory will be
populated with the corresponding files
2025-02-17 05:51:47 +00:00
Sodbileg Gansukh
0476bb1cb9
Moved the rest of the page components to views directory in ActivityPub (#22198)
ref AP-744

- moved Notifications, Profile, and Search components to views directory
as they're all page components
- updated the imports with path aliases
2025-02-17 13:37:54 +08:00
Sodbileg Gansukh
95efa15d18
Moved the Inbox component to views directory in ActivityPub (#22197)
ref AP-744

- according to the new file structure, moved the Inbox component to
views directory as it's a page
- added path aliases to minimize the changes for imports
2025-02-17 12:31:36 +08:00
renovate[bot]
ca67c0fd93
Update dependency react-hot-toast to v2.5.2 (#22196)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-hot-toast](https://redirect.github.com/timolins/react-hot-toast)
| [`2.5.1` ->
`2.5.2`](https://renovatebot.com/diffs/npm/react-hot-toast/2.5.1/2.5.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-hot-toast/2.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-hot-toast/2.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-hot-toast/2.5.1/2.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-hot-toast/2.5.1/2.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>timolins/react-hot-toast (react-hot-toast)</summary>

###
[`v2.5.2`](https://redirect.github.com/timolins/react-hot-toast/releases/tag/v2.5.2)

[Compare
Source](https://redirect.github.com/timolins/react-hot-toast/compare/v2.5.1...v2.5.2)

- Fix race condition in backwards compatible way – fixes
[#&#8203;101](https://redirect.github.com/timolins/react-hot-toast/issues/101)
[`1556d28`](https://redirect.github.com/timolins/react-hot-toast/commit/1556d28)
- Replace JSX.Element type with React.ReactElement
[`87c7a52`](https://redirect.github.com/timolins/react-hot-toast/commit/87c7a52)

***

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 01:12:47 +00:00
Ghost CI
72aea19736 v5.109.6 2025-02-14 15:08:10 +00:00
Chris Raible
72fd57a9d7
Removed linkClickTracking config (#22188)
ref
https://linear.app/ghost/issue/ENG-2002/remove-linkclicktracking-config-in-lieu-of

- This was introduced as a way to disable `linkClickTracking` as a last
resort for sites that weren't handling email link redirects well, but
since we've introduced a more comprehensive config in
`hostSettings:settingsOverrides` that allows us to accomplish the same
thing.
- Now this `linkClickTracking` config isn't in use or really doing
anything, so this commit cleans it up.
2025-02-13 16:24:24 -08:00
Steve Larson
0b4ea162ca
Revert "🐛 Fixed missing subscription attribution on free to paid upgrade (#21846)" (#22191)
ref https://linear.app/ghost/issue/ONC-729/
- this commit caused issues w/ subscription linking
2025-02-13 17:13:24 -06:00
renovate[bot]
2277992e52
Update dependency webpack to v5.98.0 (#22185)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [webpack](https://redirect.github.com/webpack/webpack) | [`5.97.1` ->
`5.98.0`](https://renovatebot.com/diffs/npm/webpack/5.97.1/5.98.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/webpack/5.98.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/webpack/5.98.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/webpack/5.97.1/5.98.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/webpack/5.97.1/5.98.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>webpack/webpack (webpack)</summary>

###
[`v5.98.0`](https://redirect.github.com/webpack/webpack/releases/tag/v5.98.0)

[Compare
Source](https://redirect.github.com/webpack/webpack/compare/v5.97.1...v5.98.0)

##### Fixes

- Avoid the deprecation message
[#&#8203;19062](https://redirect.github.com/webpack/webpack/issues/19062)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)
- Should not escape CSS local ident in JS
[#&#8203;19060](https://redirect.github.com/webpack/webpack/issues/19060)
by [@&#8203;JSerFeng](https://redirect.github.com/JSerFeng)
- MF parse range not compatible with Safari
[#&#8203;19083](https://redirect.github.com/webpack/webpack/issues/19083)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)
- Preserve `filenameTemplate` in new split chunk
[#&#8203;19104](https://redirect.github.com/webpack/webpack/issues/19104)
by [@&#8203;henryqdineen](https://redirect.github.com/henryqdineen)
- Use module IDs for final render order
[#&#8203;19184](https://redirect.github.com/webpack/webpack/issues/19184)
by [@&#8203;dmichon-msft](https://redirect.github.com/dmichon-msft)
- Strip `blob:` protocol when public path is `auto`
[#&#8203;19199](https://redirect.github.com/webpack/webpack/issues/19199)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)
- Respect `output.charset` everywhere
[#&#8203;19202](https://redirect.github.com/webpack/webpack/issues/19202)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)
- Node async WASM loader generation
[#&#8203;19210](https://redirect.github.com/webpack/webpack/issues/19210)
by [@&#8203;ashi009](https://redirect.github.com/ashi009)
- Correct `BuildInfo` and `BuildMeta` type definitions
[#&#8203;19200](https://redirect.github.com/webpack/webpack/issues/19200)
by [@&#8203;inottn](https://redirect.github.com/inottn)

##### Performance Improvements

- Improve `FlagDependencyExportsPlugin` for large JSON by depth
[#&#8203;19058](https://redirect.github.com/webpack/webpack/issues/19058)
by [@&#8203;hai-x](https://redirect.github.com/hai-x)
- Optimize assign-depths
[#&#8203;19193](https://redirect.github.com/webpack/webpack/issues/19193)
by [@&#8203;dmichon-msft](https://redirect.github.com/dmichon-msft)
- Use `startsWith` for matching instead of converting the string to a
regex
[#&#8203;19207](https://redirect.github.com/webpack/webpack/issues/19207)
by [@&#8203;inottn](https://redirect.github.com/inottn)

##### Chores

- Bump `nanoid` from 3.3.7 to 3.3.8
[#&#8203;19063](https://redirect.github.com/webpack/webpack/issues/19063)
by [@&#8203;dependabot](https://redirect.github.com/dependabot)
- Fixed incorrect typecast in `DefaultStatsFactoryPlugin`
[#&#8203;19156](https://redirect.github.com/webpack/webpack/issues/19156)
by [@&#8203;Andarist](https://redirect.github.com/Andarist)
- Improved `readme.md` by adding video links for understanding webpack
[#&#8203;19101](https://redirect.github.com/webpack/webpack/issues/19101)
by [@&#8203;Vansh5632](https://redirect.github.com/Vansh5632)
- Typo fix
[#&#8203;19205](https://redirect.github.com/webpack/webpack/issues/19205)
by [@&#8203;hai-x](https://redirect.github.com/hai-x)
- Adopt the new webpack governance model
[#&#8203;18804](https://redirect.github.com/webpack/webpack/issues/18804)
by [@&#8203;ovflowd](https://redirect.github.com/ovflowd)

##### Features

- Implement `/* webpackIgnore: true */` for `require.resolve`
[#&#8203;19201](https://redirect.github.com/webpack/webpack/issues/19201)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)

##### Continuous Integration

- CI fix
[#&#8203;19196](https://redirect.github.com/webpack/webpack/issues/19196)
by
[@&#8203;alexander-akait](https://redirect.github.com/alexander-akait)

#### New Contributors

- [@&#8203;Andarist](https://redirect.github.com/Andarist) made their
first contribution in
[https://github.com/webpack/webpack/pull/19156](https://redirect.github.com/webpack/webpack/pull/19156)
- [@&#8203;Vansh5632](https://redirect.github.com/Vansh5632) made their
first contribution in
[https://github.com/webpack/webpack/pull/19101](https://redirect.github.com/webpack/webpack/pull/19101)
- [@&#8203;ashi009](https://redirect.github.com/ashi009) made their
first contribution in
[https://github.com/webpack/webpack/pull/19210](https://redirect.github.com/webpack/webpack/pull/19210)
- [@&#8203;ovflowd](https://redirect.github.com/ovflowd) made their
first contribution in
[https://github.com/webpack/webpack/pull/18804](https://redirect.github.com/webpack/webpack/pull/18804)

**Full Changelog**:
https://github.com/webpack/webpack/compare/v5.97.1...v5.98.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 18:13:23 +00:00
renovate[bot]
bf610152b1 Update dependency gscan to v4.47.0 2025-02-13 16:42:05 +01:00
renovate[bot]
57fcfd049a Update dependency knex-migrator to v5.3.0 2025-02-13 16:41:56 +01:00
renovate[bot]
e60bbaee43
Update dependency bookshelf-relations to v2.8.0 (#22184)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[bookshelf-relations](https://redirect.github.com/TryGhost/bookshelf-relations)
| [`2.7.0` ->
`2.8.0`](https://renovatebot.com/diffs/npm/bookshelf-relations/2.7.0/2.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/bookshelf-relations/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bookshelf-relations/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bookshelf-relations/2.7.0/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bookshelf-relations/2.7.0/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TryGhost/bookshelf-relations (bookshelf-relations)</summary>

###
[`v2.8.0`](https://redirect.github.com/TryGhost/bookshelf-relations/compare/v2.7.0...v2.8.0)

[Compare
Source](https://redirect.github.com/TryGhost/bookshelf-relations/compare/v2.7.0...v2.8.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 13:40:47 +00:00
Paul Davis
76ddb9611f
Add WordPress to migration tools (#22152)
no issue

This PR adds WordPress to the migration options, related tests, and
adjusts the close button to more closely match that of the Settings
screen under it.
2025-02-13 11:54:09 +00:00
Paul Davis
4ef04e4b6a
Add more terminations to external media inliner (#22147)
Builds on top of 9dd48f9d83

This adds more terminations, which means more URLs are matched. Also
added tests.
2025-02-13 11:39:06 +00:00
Sanne de Vries
aba1f24e53
Added email styles for CTA card (#22167)
Ref https://linear.app/ghost/issue/PLG-336/create-cta-card-email-design
2025-02-13 20:06:54 +09:00
Ghost CI
4ab99029db Merged v5.109.5 into main 2025-02-13 09:40:05 +00:00
Ghost CI
e0b4fce192 v5.109.5 2025-02-13 09:40:03 +00:00
Michael Barrett
fa5bd1bbe7
🐛 Fixed invalid routes.yaml filter preventing Ghost from booting (#22174)
refs
[ONC-776](https://linear.app/ghost/issue/ONC-776/invalid-routesyaml-nql-filter-can-prevent-ghost-from-booting)

If the `routes.yaml` has a definition containing a malformed filter,
i.e:

```yaml
collections:
  /foo/:
    permalink: /foo/
    template: foo
    filter: tags:-foo,-bar
```

(`tags:-foo,-bar` invalid because there should be a property directly
after the ',`)

then it is possible for the URL service to fail to start due to an
unhandled error being thrown when the filter is parsed during URL
generation.

This commit handles the error and returns `false` when the filter cannot
be parsed, allowing the URL service to still start
2025-02-13 09:22:16 +00:00
Michael Barrett
381c91bf1b
🐛 Fixed invalid routes.yaml filter preventing Ghost from booting (#22174)
refs
[ONC-776](https://linear.app/ghost/issue/ONC-776/invalid-routesyaml-nql-filter-can-prevent-ghost-from-booting)

If the `routes.yaml` has a definition containing a malformed filter,
i.e:

```yaml
collections:
  /foo/:
    permalink: /foo/
    template: foo
    filter: tags:-foo,-bar
```

(`tags:-foo,-bar` invalid because there should be a property directly
after the ',`)

then it is possible for the URL service to fail to start due to an
unhandled error being thrown when the filter is parsed during URL
generation.

This commit handles the error and returns `false` when the filter cannot
be parsed, allowing the URL service to still start
2025-02-13 09:14:46 +00:00
Daniel Lockyer
931ae3332e Improved performance of logging to stdout
refs 66cfc15628
refs be5ddf2587
ref https://linear.app/ghost/issue/ENG-2005/improve-stdout-logging-performance

- most of the technical context is in the 2 commits but this commit just
  bumps the packages so we can take advantage of the lovely improvements
2025-02-12 16:21:02 +01:00
Kevin Ansfield
da182544dc Removed Admin util methods and icons related to portal settings
no issue

- portal settings now lives in Admin-X-Settings so this code and icons were unused
2025-02-12 08:37:49 +00:00
Sodbileg Gansukh
784baa1fba
Fixed skeleton loader on ActivityPub inbox and feed screens (#22171)
no issues
2025-02-12 08:01:39 +00:00
Sanne de Vries
01a7a71e2c
Removed unused Portal code from Admin (#22170)
No ref
- Portal settings have moved to the Admin-X-Settings app but some of the
old Admin code was left hanging around
2025-02-12 07:14:44 +00:00