0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-11 02:12:21 -05:00
Commit graph

40445 commits

Author SHA1 Message Date
Chris Raible
cee2b99e37
Improved stripe listen command in dev.js script (#22245)
no issue

Problem:
- Running `yarn dev` with `--stripe` runs the `stripe listen ...`
command in a subprocess to forward webhook events to your local instance
of Ghost in development.
- Currently, you have to run `stripe login` manually before this will
work. If you fail to do so, the `yarn dev` script simply hangs
indefinitely without any logging to indicate why.
- Running `stripe login` manually is also a non-starter in Docker since
you'd have to do this for each new container instance, which isn't
practical.

Solution:
- Luckily the `stripe listen ...` command accepts an `--api-key`
argument, which expects your stripe secret key. This change updates the
`dev.js` script to read your stripe API key from the `STRIPE_SECRET_KEY`
environment variable if it's present. As long as `STRIPE_SECRET_KEY`
exists, you won't need to run `stripe login` anymore.
- It also adds a timeout of 5 seconds to the initial `stripe listen`
command and will exit the process if this step fails, indicating with a
clear log message that you need to either set the `STRIPE_SECRET_KEY`
variable or run `stripe login`
- I also added a bunch of debug statements to the dev script which were
useful in debugging this, and may prove useful for similar issues in the
future, so I'll leave them in there.
2025-02-19 11:04:30 -08:00
Daniel Lockyer
5a5e67aef2 Fixed collection of URL service init time metrics
- the original implementation of this was wrong in that it would
  calculate the init time from a static point in the boot process until
  "now", which would be fine for the boot process
- however, if someone uploads a routes.yaml file much later, it would
  still call `onFinished` and compare itself to the static time in the
  boot process, resulting in huge "url service init" metrics
- to fix that, we can just collect the timestamp from `_onQueueStarted`, calculate
  the diff in `_onQueueEnded` and then do logging/metrics
- as a result, we can then remove the `onFinished` function, as it's no
  longer necessary
2025-02-19 18:44:58 +01:00
Chris Raible
fa377b5ac0
Configured ssh agent forwarding for docker compose (#22232)
no issue

- Currently running any `git` commands in the docker container (i.e.
updating submodules) that use ssh are failing because the container
can't see your ssh keys. This commit adds a volume & environment
variable to enable forwarding your local ssh agent into the container.
As long as you've got an ssh agent running locally with your keys
enabled, this will allow you to e.g. push to a remote over ssh from
inside the container.
- It also mounts your local `.gitconfig` file into the container, so
your git configuration (i.e. name & email address) will also work inside
the container
- Finally, it adds githubs ssh keys to known_hosts in the development
target of the Dockerfile to avoid the prompt, which only works in
interactive environments and fails in any kind of script (like `yarn
main:submodules`).
2025-02-19 09:38:05 -08:00
Steve Larson
11ca9e3009
Removed job queue handling within the email analytics job (#22243)
ref https://linear.app/ghost/issue/ENG-2026/

This is being removed as the JobQueueManager is being removed. By
removing this, we can allow the queue to deplete itself before stripping
out that functionality.
2025-02-19 10:29:30 -06:00
Daniel Lockyer
6b7f65c0b0 Improved JSDoc and comments for URL service Queue class
- no implementation changes, just improving the JSDoc and comments to
  make this more readable
- also switches some assertions in the tests to use the spy instance to
  fix a typing issue
2025-02-19 13:18:59 +01:00
Daniel Lockyer
ceda978b38 Refactored roles E2E test to new test framework
- just a simple refactor to switch it to the new framework and add the
  new snapshots
2025-02-19 11:49:42 +01:00
Sanne de Vries
31bb7d11e2
Fixed responsive styles for CTA card frontend rendering (#22210)
Ref https://linear.app/ghost/issue/PLG-337/create-cta-card-web-design
- The minimal layout version now changes to a column layout on mobile
- The sponsor label color now inherits the theme color so that it works
on any background color
- The spacing is adjusted for mobile
2025-02-19 10:36:06 +00:00
Kevin Ansfield
453a53f5b8 Cleaned up i18n file formatting
no issue

- automatic formatting fixes from running the i18n script
2025-02-19 09:38:30 +00:00
Daniel Lockyer
76e91b8b10 Added support for Node 22
ref https://linear.app/ghost/issue/ENG-2013/add-node-22-support-to-ghost

- we're adding support for Node 22 because it's now LTS
- this adds the current latest Node 22 version to the package.json for
  Ghost + Admin, and adds Node 22 testing to CI
2025-02-19 10:00:50 +01:00
Daniel Lockyer
bf6bf51b8c Ensured only one Stripe settings handler is listening
- due to how our test framework works, we end up running the boot
  process many times
- each boot causes the Stripe service to re-add this handler
- that means we end up with like 100 handlers for `settings.edited`
- whilst it would be ideal if we could reset the event listener each
  boot, the simplest thing for now is to just remove and re-add it
- I've pulled `stripeSettingsChanged` out of the init function because
  `removeListener` only works on the specific instance of that function,
  so it won't clean it up if it's a local function
2025-02-19 09:41:38 +01:00
Daniel Lockyer
4a9575d179 Ensured only one XMLRPC handler is listening
- due to our testing framework, we run the boot over and over, but this
  means we constantly add new xmlrpc listeners
- from profiling, this accounts for ~3% of the total test time, which is
  minimal, but given it's an easy fix, this commit performs that
- ideally our test framework would reset the events between runs, or
  keep them completely separate, but that's a while away yet without a
  big refactor
2025-02-19 09:41:38 +01:00
Peter Zimon
3dfc275241
ActivityPub UI restructure (#22209)
ref AP-748

- The current structure of the AcitivyPub app makes it hard to scale and
extend, and it also lacks basic design heuristics. This PR adds a new header
and right sidebar for clear orientation and navigation.
2025-02-19 09:29:15 +01:00
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