Update all digest updates #105

Open
renovate[bot] wants to merge 1 commits from renovate/all-digest into master
pull from: renovate/all-digest
Collaborator

This PR contains the following updates:

Package Change Age Confidence
@strapi/plugin-cloud (source) 5.52.3 → 5.60.0 age confidence
@strapi/plugin-users-permissions (source) 5.52.3 → 5.60.0 age confidence
@strapi/strapi (source) 5.52.3 → 5.60.0 age confidence
@strapi/typescript-utils (source) 5.52.3 → 5.60.0 age confidence
@types/react (source) 19.2.18 → 19.3.0 age confidence
@types/react-dom (source) 19.2.7 → 19.3.0 age confidence
fs-extra 11.4.0 → 11.4.1 age confidence
jest (source) 30.5.1 → 30.5.2 age confidence
prettier (source) 3.9.6 → 3.9.10 age confidence
react-intl (source) 12.0.1 → 12.1.6 age confidence
styled-components (source) 6.5.3 → 6.6.0 age confidence
supertest 7.2.2 → 7.3.1 age confidence

Release Notes

strapi/strapi (@​strapi/plugin-cloud)

v5.60.0

Compare Source

5.60.0 (2026-10-28)
🚀 New feature
  • admin: record SSO settings updates in audit logs (#​28135)
  • webhooks: select entry events per content type (#​27931)
🔥 Bug fix
  • admin: i18n tokens that were translated in 7 locales (#​27767)
  • admin: admin user updates and deletes crash when the super admin role does not exist (#​28149)
  • admin: webhook header input keeps stale text after clearing the last row (#​28168)
  • content-manager: preview URL accepts any status string (#​28148)
  • core: ctrl-c crashes strapi develop and build when the admin is not registered (#​28117)
  • core: document middleware and lifecycle subscriber removers remove the wrong entry (#​28047)
  • core: include meta in OpenAPI content-API response schemas (#​28114)
  • mcp: every request builds the schemas of all tools and exhausts the heap (#​28116)
  • review-workflows: stage update runs the document update twice (#​28120)
  • review-workflows: required stage update fails when stages are not sent (#​27868)
  • upload: media library nested folders sidebar (#​28159)
  • upload: the published file type does not match the rows the upload service returns (#​28190)
  • upload: isFaultyImage returns image stats or rejects for files without a filepath (#​28199)
  • upload: settings saved without aiMetadata lose its default value (#​28188)
⚙️ Chore
💅 Enhancement
  • fewer database queries per relation field and per write on relation-heavy entries (#​28092)
  • upload: add new content manager asset picker (#​28091)
  • upload: show status-aware rows and cards in the media field (#​28080)
❤️ Thank You

v5.59.0

Compare Source

5.59.0 (2026-10-21)
🚀 New feature
🔥 Bug fix
  • correcting linting after Codex review (13c317ddbd)
  • updating the spacing beween the lines (f6aa6e3b96)
  • trying the space in a different way (d6450b12ad)
  • admin: reject role name and description longer than 255 characters (#​28002)
  • admin: apply boolean false filters in list view (#​27938)
  • admin: custom RBAC conditions in a custom category are discarded (#​28020)
  • admin: derive the auth cookie path from admin.url (#​27619)
  • admin: reject token name and description longer than 255 characters (#​28004)
  • cli: remove the expiration date check (#​28076)
  • content-manager: keep list columns when an attribute is renamed (#​28036)
  • content-releases: deleting a non-localized entry leaves it in its releases (#​28023)
  • content-releases: await release cleanup inside its try/catch (#​27893)
  • content-releases: bootstrap fails when the core store has no saved schemas (#​28121)
  • core: close remaining clone relation edge cases (#​26970)
  • core: fetch requests setting their own content-length fail after loading undici 8 (8b5dea865d)
  • core: https requests through a proxy fail after loading undici 8 (29c762cd0d)
  • core: unhandled rejection when an entry event fails to emit after commit (#​28017)
  • core/core: event hub off() and once() remove the wrong listener (#​28051)
  • create-strapi-app: next-step cd command misreads folder names that start with - or ~ (31e16d56df)
  • create-strapi-app: bump better-sqlite3 pin to 12.11.1 for Node 26 support (#​27759)
  • database: populate relations sequentially inside a transaction (#​27644)
  • database: connection function holds a pool connection forever on postgres and mysql (#​27979)
  • document-service: publishing an entry linked from a widely reused component takes minutes (#​27942)
  • email-nodemailer: decodeRfc2047 ignores the charset of encoded words (#​27822)
  • i18n: restore ICU arguments in 68 admin locale strings (#​27908)
  • review-workflows: weekly telemetry sends metrics object as numberOfActiveWorkflows (#​27866)
  • review-workflows: hide review workflow panel on published tab (#​28009)
  • review-workflows: weekly metrics sendMetrics regression tests never run (#​28063)
  • upload: honor sharp limitInputPixels config in image manipulation (#​27161)
  • upload: rebuild the content manager media field (#​27848)
  • upload: add an Add asset menu to the media field (#​27856)
📚 Documentation Changes
⚙️ Chore
  • format files with prettier 3.9.9 (#​28043)
  • ai: add create-issue skill (#​27992)
  • database: upgrade knex from 3.0.1 to 3.3.0 (#​27982)
  • deps: bump prettier from 3.6.2 to 3.9.9 (f8ce51ac65)
  • deps: upgrade undici from 6.29.0 to 8.11.2 (bff2ccfc7f)
  • deps: upgrade undici from 8.11.2 to 8.12.1 (a78ad0d6de)
  • deps: bump browserslist from 4.28.8 to 4.28.9 (#​27851)
  • deps: bump markdown-it (#​28074)
  • docs: contributor docs are excluded from prettier checks (#​28062)
  • lint: eslint fails to parse vitest.config.ts in admin/server packages (#​28064)
  • lint: extra-policy oxlint perf on the blocking gate (#​27671)
  • review-workflows: migrate unit tests from jest to vitest (#​27388)
  • review-workflows: stop passing ignored populate to workflow create and update (#​27865)
  • types: centralise the window.strapi type in @​strapi/types (#​26213)
  • upload: enforce the media MCP ambient guard by construction (#​27617)
💅 Enhancement
  • database: describe connection pool timeouts (#​28000)
  • utils: avoid rebuilding curried traversal wrappers on every call (#​27947)
  • utils: remove per-key allocations from the query traversal (#​27233)
⚠️ Changes to be aware of
Database driver update (knex 3.3.0)

Custom code that uses strapi.db.connection and calls delete() with limit or having, or truncate() with where, having or limit, now throws on PostgreSQL and SQLite. MySQL now applies the LIMIT. Before, the limit was ignored and every matching row was deleted, so check plugins or scripts that build such queries. Connection pool timeout errors now include the underlying connection error, and knex warnings now appear in the Strapi log as [database] knex: ….

(#​27982)

Token and role names are limited to 255 characters

The name and description of API tokens, admin tokens, transfer tokens and admin roles now accept at most 255 characters. Longer values get a validation error under the field. Before, PostgreSQL returned a generic server error. Existing tokens with longer values keep working, but the admin rejects that long text on save until you shorten it.

(#​28004) (#​28002)

Node.js 22.19 or later is required

Strapi now uses undici 8, which requires Node.js 22.19.0 or later. The engines field still says >=20.0.0, so check your runtime: this release was only tested on Node 22.20 and later.

(#​27934)

limitInputPixels must be a number or a boolean

The upload plugin now applies sharp.limitInputPixels. Strapi refuses to start if the value is not true, false or an integer of 0 or more. A value read straight from an environment variable is a string, so use env.int().

(#​27161)

Known issue: deleting an entry changes past releases

When you delete an entry that belongs to a release that was already published, the entry is removed from that release, and the release status changes from "done" to "empty" or "ready". The published content is not affected. This already happened for localized entries, and it now happens for all entries.

(#​28023)

Known issue: editing webhook headers

In Settings > Webhooks, if you clear the last header row and type a new header name, the old text can stay in front of it (for example X-CX-D instead of X-D). Check the header names before you save.

(#​27671)

❤️ Thank You

v5.58.0

Compare Source

5.58.0 (2026-10-14)
🚀 New feature
  • admin: add License details and Support debug dump (#​27034)
  • admin: record failed admin logins and sso auto-registration in audit logs (#​27930)
🔥 Bug fix
  • removing firefox from the e2e test suite (3af89ee777)
  • cleaning up firefox inclusion in e2e tests (8580c0dbe1)
  • admin: render reset password strength feedback (#​27741)
  • admin: show unset boolean fields as neither true nor false (#​28014)
  • content-manager: relation fields share cached options across component instances (#​27732)
  • content-manager: relation fields hide available relations after a selection or a failed request (#​28006)
  • content-type-builder: make field conditions follow attribute renames (#​27953)
  • core: document-service query transform mutates the caller's fields array (#​27948)
  • core: treat only all-digit relation shorthand strings as numeric ids (#​27892)
  • deps: bump the pinned axios and handlebars past their advisories (#​28008)
  • e2e: webkit jobs fail in global setup without chromium (65067fc0c8)
  • upload: cancel does not abort in-flight uploads and asset edits (#​27896)
📚 Documentation Changes
  • contributor-docs: modernize the contributor docs site (#​27879)
  • e2e: install chromium and webkit for local e2e (1bfad16822)
  • upload: fix the stale JSDoc param on signEntityMedia (#​27720)
⚙️ Chore
  • merge back release 5.57.0 (#​27970)
  • deps: upgrade MCP SDK to 2.3.1 (#​27996)
  • deps: bump ip-address from 10.4.0 to 10.7.3 (#​27904)
  • deps: bump piscina from 4.9.3 to 4.9.4 (#​27905)
  • deps: bump http-cache-semantics from 4.1.1 to 4.3.0 (#​27918)
  • deps: bump @​fastify/busboy from 2.0.0 to 2.1.1 (#​27919)
  • deps: bump shell-quote from 1.10.0 to 1.12.0 (#​27957)
  • deps: bump axios from 1.19.0 to 1.20.0 (#​27883)
  • deps: bump proxy-addr from 2.0.7 to 2.0.8 (#​27958)
  • deps: bump dompurify from 3.4.13 to 3.4.16 (#​27903)
  • deps: bump source-map-js from 1.2.1 to 1.2.2 (#​27959)
  • deps: bump sharp from 0.35.4 to 0.35.5 (#​27954)
  • generators: migrate unit tests from jest to vitest (#​27221)
❤️ Thank You

v5.57.0

Compare Source

5.57.0 (2026-10-07)
🚀 New feature
  • cli: add strapi enterprise install command (#​27849)
  • content-type-builder: Preserve data on renaming attributes (#​26749)
  • review-workflows: record workflow and review actions in audit logs (#​27814)
🔥 Bug fix
  • updating xhmikosr/decompress (#​27885)
  • documentId upload in content API (#​27834)
  • admin: media library banner appears on every admin page instead of only the media library (9012e0ad5a)
  • admin: upsell banner stacked with the media library banner when both were shown (349aaea5ba)
  • admin: upsell banner briefly mounted and queried its trial data on the media library (ba5482ce21)
  • admin: guard RelativeTime against invalid dates (#​27472)
  • admin: enumeration placeholder shown twice in select trigger (#​27785)
  • admin: add strapi version to admin telemetry events (#​27922)
  • admin|upload: stamp legacy media events and send login telemetry once (#​27932)
  • content-manager: warn before discard removes relations to draft entries (#​27815)
  • content-manager: preview click-to-edit breaks when the preview script is injected twice (#​27796)
  • content-manager: relation list loses pages after opening the same document in a modal (#​27831)
  • content-manager: stop relation fields rendering a full page loader (#​27682)
  • core: strip empty documentId from create/update data to prevent … (#​27766)
  • documentation: prevent relation schema generation from exhausting memory (#​27780)
  • i18n: globe tooltip displays [object object] (#​27890)
  • lint: make oxlint override globs match repo paths (#​27863)
  • upload: add rotate to the media library image editor (#​27714)
  • upload: open asset and folder actions on right-click (#​27816)
  • upload: stamp mediaLibraryVersion v1 on legacy media library events (#​27900)
  • utils: explain that status is root-only when used in nested populate (#​27857)
📚 Documentation Changes
⚙️ Chore
💅 Enhancement
  • core: accept localization behavior from registered providers (#​27806)
  • strapi: stop loading the admin build toolchain on every cli command (#​27910)
🚨 Security
  • document DTS transfer-token trust model as a specific exclusion (#​27483)
  • deps: upgrade vite to fix server.fs.deny bypass on windows (eadb0c9d82)
  • deps: resolve every qs copy in the lockfile to 6.16.0 (3be284aab1)
❤️ Thank You

v5.56.0

Compare Source

5.56.0 (2026-09-30)
🚀 New feature
  • admin: record admin account and password actions in audit logs (#​27748)
  • admin: audit webhook create, update and delete (#​27779)
  • strapi: compile Tailwind for the admin panel from one host stylesheet (#​27550)
🔥 Bug fix
  • update create edit e2e test (#​27751)
  • admin: build window.strapi before mount and type the project-type contract (#​27683)
  • admin: reopen button on dismissed trial banner overlays page controls (#​27777)
  • content-manager: create-relation option offered for relations targeting a Single Type (82a2ecb2dd)
  • content-manager: hide create-relation option for Single Type targets instead of disabling it (89b1efaeef)
  • content-manager: cannot re-assign a relation still present on the published version (#​27602)
  • content-manager: relation-on-the-fly modal affects the background entry (584aa7b82a)
  • content-manager: nested relation-on-the-fly connects are lost on navigation (9c13d85f59)
  • content-type-builder: clear stale folder field in the edit modal (#​27770)
  • core/core: correct "recieve" typo in content-structure service comment (#​27825)
  • upload: folder deletion removes assets without permission (#​27654)
📚 Documentation Changes
  • fix typos across documentation pages (#​27773)
  • point RFC contributions to GitHub Discussions (#​27746)
⚙️ Chore
  • release v5.55.0 update develop (a82c2d8bab)
  • release v5.55.1 update develop (7a69d80b15)
  • add test:ts:back to packages with unchecked server code (#​27811)
  • deps: drop React 17 from peer dependency ranges (#​26194)
  • deps: bump js-yaml from 3.15.1 to 3.15.2 (#​27516)
  • deps: bump fast-uri from 3.1.5 to 3.1.8 (#​27808)
  • deps: bump postcss-selector-parser from 7.1.1 to 7.1.6 (#​27541)
  • deps: bump baseline-browser-mapping from 2.10.8 to 2.11.26 (#​27809)
  • deps: bump browserslist from 4.28.1 to 4.28.7 (#​27531)
  • deps: bump qs from 6.15.3 to 6.16.0 (#​27532)
  • deps: bump mysql2 from 3.20.0 to 3.23.1 (#​27538)
  • deps: bump react-router-dom from 6.30.4 to 6.30.6 (#​27586)
  • deps: bump sharp from 0.35.3 to 0.35.4 (#​27600)
  • deps: bump brace-expansion from 1.1.18 to 1.1.21 (#​27840)
  • deps: bump browserslist from 4.28.7 to 4.28.8 (#​27838)
  • deps: bump undici from 6.28.1 to 6.29.0 (#​27839)
  • deps: align react-router-dom in app-template (#​27858)
  • tooling: make jest lcov paths repo-relative for Sonar (#​27763)
💅 Enhancement
  • ci: require an explicit QA label to merge (#​27464)
  • upload: support custom AI providers for metadata generation (#​27684)
❤️ Thank You

v5.55.1

Compare Source

5.55.1 (2026-09-24)

This is a hotfix release patching v5.55.0 that were causing a performance drop for the projects that have the documentation plugin.

⏪ Revert
  • documentation: restore properties for repeated relation targets (#​27592), reverted in (#​27783)

v5.55.0

Compare Source

5.55.0 (2026-09-23)
🚀 New feature
  • admin: record token management in audit logs (#​27605)
  • admin: content type folders (#​27419)
🔥 Bug fix
  • ai endpoints requested when the ai feature is unavailable (#​27525)
  • admin: suppress MISSING_TRANSLATION errors to fix sluggish editing (#​26108)
  • admin: sso default role placeholder shows "choose here" twice (#​27685)
  • content-manager: create on the fly prefills inverse from component paths (#​27636)
  • content-manager: saved list sort resets on base-route navigation (#​27663)
  • core/core: koa response helper types missing in consumer projects (#​27380)
  • database: updateMany with relation filter subquery (#​26909)
  • database: document-id migration can take hours on large localized tables (#​27404)
  • database: updateMany ignores _q and filters (#​27769)
  • documentation: restore properties for repeated relation targets (#​27592) — ⚠️ Reverted in v5.55.1 (causing a performance drop for Strapi projects with the documentation plugin) — please update your projects to 5.55.1 instead if you're impacted ⚠️
  • graphql: exclude custom resolvers from built-in query field detection (#​27462)
  • upload: store unsigned urls in richtext and blocks fields (#​27593)
  • upload: media library degrades for roles without settings.read (#​27687)
  • upload: show more media grid columns on wider screens (#​27711)
  • utils: normalize string chunks before buffering streams (#​27700)
⚙️ Chore
❤️ Thank You

v5.54.0

Compare Source

5.54.0 (2026-09-16)
🎉 The new Media Library is here!
Image details

We've been heads-down on this for months, and it's the change we're most excited to put in your hands: the redesigned Media Library is now the default for everyone in version 5.54.0.

This isn't a fresh coat of paint. We rebuilt the Media Library entirely around how people actually work with assets:

  • A completely revamped UI and UX — rebuilt from the ground up, with every screen, interaction and flow reworked to make managing your assets faster and far less fiddly
  • A folder tree that's always visible — no more breadcrumb archaeology to work out where you are
  • Uploads that don't hold you hostage — the progress panel stays out of your way and keeps running while you carry on working. Browse folders, edit an entry, leave the Media Library entirely; your upload keeps going, file by file, and tells you when it's done
  • Drag and drop that just works — drop assets onto any folder, in the list or the sidebar
  • Infinite scroll instead of pagination, so browsing a large library is finally a scroll rather than a chore
  • A details panel that doesn't get in your way — keep browsing the list while it's open
  • Bulk move and delete, plus AI-generated captions and alt text on Growth plans
  • Faster search, filters and sorting across your whole library, including now a sorting by file size

📚 Read the full documentation

Not ready for the big change yet? You're feeling nostalgic and need the old one back?

We know upgrades land in the middle of real work. If you'd rather stay on the previous interface for now, you can add this to config/features:

module.exports = () => ({
  useLegacyMediaLibrary: true,
});

Full details in Restoring the previous Media Library in the docs.

Huge thanks to everyone who tested the beta and sent feedback. Can't wait to hear what you think 💙

🚀 New features
  • i18n: record locale management in audit logs (#​27547)
  • upload: add MCP scaffolding and read tools to the upload plugin (#​27523)
  • upload: add the media_update_asset MCP tool (#​27574)
  • upload: make the new Media Library the default (#​27606)
  • upload: manage media library folders over MCP (#​27576)
  • upload: move media library assets over MCP (#​27578)
  • upload: delete media library assets over MCP (#​27580)
  • upload: add banner announcing the new version (#​27625)
🔥 Bug fixes
  • restore tests workflow (#​27626)
  • home test failing on new media library upload (#​27629)
  • admin: stop treating access-token expiry as a logout (#​27424)
  • admin: stop forwarding type onto TimePicker (#​27632)
  • content-manager: prevent mobile actions drawer from covering fields (#​27588)
  • content-manager: back after publishing a new entry returns to a pre-filled create form (#​27604)
  • content-manager: entries-per-page selector shows 10 instead of the configured default page size (#​27646)
  • content-type-builder: experimental indexes removed when saving a content type (#​27597)
  • core/core: media document ids cannot be linked with document service (#​27557)
  • data-transfer: validate asset metadata before restore (#​27480)
  • upload: keep a replaced file in its folder (#​27524)
  • upload: forward metas when replacing a file (#​27544)
  • upload: keep the drag preview under the cursor (#​27542)
  • upload: media_update_asset reports the asset's real folder (#​27624)
  • upload: bind the media MCP folder tools and pin their test contracts (#​27594)
  • utils: escape the dot in parseType's time regex (#​27561)
⚙️ Chore
  • content-type-builder: alphabetize dependencies (#​27616)
  • core: replace node-schedule with croner (#​27309)
  • deps: bump ai sdk in content-type-builder to v6 (EE-174) (#​27582)
  • upload: remove the beta notice from the new Media Library (#​27667)
💅 Enhancement
❤️ Thank You

v5.53.0

Compare Source

⚠️ Security Warning and Notice ⚠️

Strapi was made aware of a vulnerably that were patched in this release, for now we are going to delay the detailed disclosure of the exact details on how to exploit it and how it was patched to give time for users to upgrade before we do public disclosure.

5.53.0 (2026-09-09)
🚀 New feature
🔥 Bug fix
  • close the drawer on click on interactive elements (4573d58806)
  • transfer configuration import discards the error that caused it (#​27565)
  • misc users-permissions and admin (2f3595fe61)
  • content-type-builder: default new private fields to not searchable (#​27482)
  • email-sendmail: disable file and URL access for attachments (#​27430)
  • mcp: bump mcp sdk@​2 to stop clients droping advertised tools (#​27505)
  • strapi: --sourcemap flag has no effect on the admin build (#​27545)
  • upload: reserve list space for the bulk actions bar (#​27509)
  • upload: filter the row replace picker by the asset's mime (#​27508)
  • upload: bound the focal point fields to the crop area (#​27496)
  • upload: folder navigation resets media library list scroll and p… (#​27449)
  • upload: keep the drawer open when a control behind is pressed (3ebdde0965)
  • upload: only a primary-button press dismisses the drawer (3b81103657)
  • upload: contain fast provider rejections in upload batches (#​27543)
⚙️ Chore
  • release v5.52.3 update develop (2695ff53ff)
  • .github/draft-release: run the workflow more than once per release (#​27573)
  • ci: pin all GitHub Actions to latest versions by commit SHA (37d9438606)
  • ci: add the draft-release action and workflow (#​27562)
  • deps: bump undici from 6.28.0 to 6.28.1 (#​27568)
  • lint: make oxlint a blocking ci gate (#​27450)
⚠️ Changes to be aware of
MCP clients no longer drop advertised tools

The built-in MCP server now advertises tools as JSON Schema 2020-12, so strict clients that previously dropped every tool keep the full list. If you register custom MCP tools or prompts: unknown or unauthorized tool calls now return JSON-RPC error -32602 instead of isError: true; extra.sendNotification and extra.sendRequest are gone; and one prompt argsSchema that cannot become JSON Schema (for example z.date()) hides every prompt from prompts/list.

(#​27505)

❤️ Thank You
jprichardson/node-fs-extra (fs-extra)

v11.4.1

Compare Source

  • Properly handle read errors (e.g. due to permissions) in emptyDir*() (#​1080)
  • Allow renaming with only Unicode normalization difference in the filename (APFS-specific) (#​859, #​1079)
jestjs/jest (jest)

v30.5.2

Compare Source

Features
  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#​16421)
Fixes
  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#​16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#​16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#​16439)
prettier/prettier (prettier)

v3.9.10

Compare Source

diff

Markdown: Update micromark-extension-gfm-table to fix the table parse issue on performance (#​20266 by @​fisker)

See micromark/micromark-extension-gfm-table@4f43ead for details.

v3.9.9

Compare Source

diff

Markdown: Fix text with $ been incorrectly parsed as math syntax (#​20140 by @​fisker)
<!-- Input -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here.

<!-- Prettier 3.9.8 -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR`from`c.sh`, before anything else runs here.

<!-- Prettier 3.9.9 -->
**Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here.

v3.9.8

Compare Source

diff

Markdown: Don't let Liquid objects interrupt paragraphs (#​20087 by @​seiyab)
<!-- Input -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a
{{jsxref("TypeError")}} is thrown.

<!-- Prettier 3.9.7 -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a

{{jsxref("TypeError")}} is thrown.

<!-- Prettier 3.9.8 -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a
{{jsxref("TypeError")}} is thrown.

v3.9.7

Compare Source

diff

Markdown: Prevent indentation drift in list-item code blocks (#​19647, #​19990 by @​Austin1serb, @​giaBaoJS)
<!-- Input -->
- [x] short first line.

      second paragraph at six spaces that wraps
      onto another line here.

<!-- Prettier 3.9.6 -->
- [x] short first line.

      second paragraph at six spaces that wraps
          onto another line here.

<!-- Prettier 3.9.7 -->
- [x] short first line.

      second paragraph at six spaces that wraps
      onto another line here.
JavaScript: Fix embedded template literal idempotency (#​19725 by @​fisker)
// Input
const foo = html`
            <div>${getText({
            value,
            })}</div>
`;

// Prettier 3.9.6 (first format)
const foo = html`
  <div>
    ${getText({
              value,
            })}
  </div>
`;

// Prettier 3.9.6 (second format)
const foo = html`
  <div>
    ${getText({
      value,
    })}
  </div>
`;

// Prettier 3.9.7
const foo = html`
  <div>
    ${getText({
      value,
    })}
  </div>
`;
Markdown: Preserve Liquid blocks after Markdown tables (#​19730 by @​wanxiankai, @​seiyab)
<!-- Input -->
| Argument | Type |
| -------- | ---- |
{% set default_params = {
    "model": ["str"],
} %}

<!-- Prettier 3.9.6 -->
| Argument                  | Type |
| ------------------------- | ---- |
| {% set default_params = { |

    "model": ["str"],

} %}

<!-- Prettier 3.9.7 -->
| Argument | Type |
| -------- | ---- |
{% set default_params = {
    "model": ["str"],
} %}
Markdown: Preserve single tildes in Markdown (#​19739 by @​lazerg)

Since 3.9.0, single-tilde spans like H~2~O were rewritten to double tildes, turning subscript syntax into strike-through. Only double tildes are treated that way now, matching GitHub.

<!-- Input -->
H~2~O

<!-- Prettier 3.9.6 -->
H~~2~~O

<!-- Prettier 3.9.7 -->
H~2~O
Markdown: Fix Markdown blockquote containing > characters (#​19802 by @​seiyab)
<!-- Input -->
> **test**\>

<!-- Prettier 3.9.6 -->
> **test**>\>

<!-- Prettier 3.9.7 -->
> **test**\>
Markdown: Strip blockquote markers from a setext heading's continuation lines (#​19878 by @​Kjubikstronk)

A setext heading spanning multiple lines inside a blockquote kept the > marker of its continuation lines as literal text.

<!-- Input -->
> Multi
> Line
> ===

<!-- Prettier 3.9.6 -->
> Multi > Line
> ===

<!-- Prettier 3.9.7 -->
> Multi
> Line
> ===
Markdown: Fix HTML block indentation drift in markdown list items (#​19987 by @​lazerg)
<!-- Input -->
1. Enable images:

    <p align="center">
      <img alt="example">
    </p>

<!-- Prettier 3.9.6 (--tab-width=4) -->
1. Enable images:

     <p align="center">
       <img alt="example">
     </p>

<!-- Prettier 3.9.7 (--tab-width=4) -->
1. Enable images:

    <p align="center">
      <img alt="example">
    </p>
Angular: Support @boundary error boundaries (#​20014 by @​Yahiro025)
<!-- Input -->
@boundary {
<complex-chart [data]="data"/>
}
@error (let err) {
<p>{{err.message}}</p>
}

<!-- Prettier 3.9.6 -->
SyntaxError: Unexpected character "EOF" (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.) (6:1)

<!-- Prettier 3.9.7 -->
@boundary {
  <complex-chart [data]="data" />
} @error (let err) {
  <p>{{ err.message }}</p>
}
formatjs/formatjs (react-intl)

v12.1.6: react-intl: 12.1.6

Compare Source

Bug Fixes

v12.1.5: react-intl: 12.1.5

Compare Source

Bug Fixes
Dependencies

v12.1.4: react-intl: 12.1.4

Compare Source

Bug Fixes
Dependencies

v12.1.3: react-intl: 12.1.3

Compare Source

Bug Fixes

v12.1.2: react-intl: 12.1.2

Compare Source

Dependencies

v12.1.1: react-intl: 12.1.1

Compare Source

Bug Fixes
  • eslint-plugin-formatjs: generate lint-compatible empty message contracts (#​7442) (799efaf)
Dependencies
  • The following workspace dependencies were updated

v12.1.0: react-intl: 12.1.0

Compare Source

Features
Dependencies
  • The following workspace dependencies were updated

v12.0.2: react-intl: 12.0.2

Compare Source

Bug Fixes
Dependencies
  • The following workspace dependencies were updated
styled-components/styled-components (styled-components)

v6.6.0

Compare Source

Minor Changes
  • 7ce6aea: Added a StyledComponent<Target, Props> type for annotating explicitly-typed styled component exports.

    Packages that emit their own declaration files, including any project using isolatedDeclarations, must annotate every exported styled component, and there was no public type for it: consumers reached into internal paths or hand-assembled one that dropped members like a wrapped component's hoisted statics.

    StyledComponent is exported from the web and native entries. Name the target and props as you passed them to styled:

    import styled, { type StyledComponent } from 'styled-components';
    
    export const Card: StyledComponent<'div', { $active?: boolean }> = styled.div<{
      $active?: boolean;
    }>`...`;
    export const CloseButton: StyledComponent<typeof IconButton> = styled(IconButton)`...`;
    

    It resolves to the exact type styled(Target)<Props> produces, so the annotation is not lossy.

Patch Changes
  • 7afbd11: Fixed attrs no longer applying its value when a prop was explicitly passed as undefined (the 6.3.12 to 6.5.x behavior). styled.button.attrs(({ type = 'button', ...rest }) => ({ type, ...rest })) rendered without type="button" when the caller passed type={undefined}, and an object-form default such as .attrs({ type: 'button' }) was lost the same way, including through a wrapper component that spreads its own props over the styled component. attrs now always wins for the keys it returns, matching every other case where a prop is passed alongside attrs.

    Also fixed: a prop passed explicitly as undefined (and not overridden by attrs) is now forwarded to a wrapped component so that component can fall back to its own default, the pattern MUI's ButtonBase relies on (for example <Root role="button" {...props} />). Wrapped components have dropped this prop entirely since v6.0, so a component that checks 'role' in props or merges {...defaults, ...props} to detect an explicitly-passed prop may see and behave differently now that the key is present again. This only applies when wrapping another component; a DOM tag such as styled.div still drops the undefined prop entirely, since browsers have no notion of an "undefined" attribute.

    If you were relying on an explicit undefined to clear an attrs default, use the function form and check for the prop's presence instead:

    styled.a.attrs(props => ('rel' in props ? {} : { rel: 'noopener' }))``;
    

    Passing rel={undefined} now renders no rel attribute, and omitting the prop renders rel="noopener".

    React Native already forwarded an explicit undefined prop to a wrapped component; it now also matches web in never forwarding an undefined that attrs itself produced.

  • 209317c: Rendering styled-components on the server with the edge runtime (for example export const runtime = 'edge' in a Next.js route) now fails with a clear message that names the fix: use the Node.js runtime for routes that render styled-components. Previously the same setup ended in an obscure crash, either at next build or on the first request.

  • 3de03c2: Type-checking is faster when you annotate exported styled components with an explicit type, the pattern that packages emitting their own declaration files (including any project using isolatedDeclarations) rely on. The improvement is largest in codebases that annotate many components built on intrinsic tags such as styled.div, styled.span, and styled.button, and wrappers over polymorphic components whose props are a union.

    Nothing about the styled component's type changes for your code: props, defaultProps, propTypes, ref forwarding, and as polymorphism all behave exactly as before. This is purely a type-check speedup.

  • 7afbd11: Fixed a typo in the useTheme error message's example code (a misspelled component name in error 18), so the copy-pasted example compiles as written.

  • 7afbd11: Fixed global styles from createGlobalStyle disappearing in React Server Components: a global style rendered in a loading state (a React <Suspense> fallback) and again once the real content streamed in could vanish entirely once the fallback was replaced. The same loss could happen across a client-side navigation when a global style was rendered by both a layout and one of its pages, and the layout's copy never re-rendered.

    Each server-rendered instance of a global style now carries its own styles, so a global style shown in more than one place in a request always survives, whether the page reveals streamed content or the user navigates to a sibling route.

  • 52c5f6e: Fixed a crash ("Rendered fewer hooks than expected") and a related stale-style bug for components that call a React hook, or read any value outside their props and theme, from inside a style interpolation. This affected @mui/styled-engine-sc with MUI X DataGrid, which calls hooks within an interpolation, and was a regression introduced in 6.4.0.

    Style interpolations now run on every render, so a hook called inside one runs consistently and a value read inside one always reflects its current state.

    If a component re-renders often with unchanged props and its interpolations are expensive, wrap it in React.memo to skip those re-renders. That is the right place to bail out, because only the calling code knows the full set of inputs its styles depend on.

  • 7afbd11: Fixed // JavaScript-style line comments in React Native style declarations. Only /* */ block comments were recognized before; a // comment left in a template literal was parsed as part of the surrounding CSS, which could drop or corrupt the styles that followed it on the same line. Line comments are now stripped the same way block comments already were, while a URL used as a raw value (for example url(http://example.com/image.png) or an unquoted https:// value in a custom property) is left untouched.

  • 1c0e309: Fixed styles disappearing from a server-rendered component when it is revealed from behind a React <Suspense> boundary, such as a streaming Next.js route (including cacheComponents). A component shown first in a Suspense fallback and then in the resolved content kept its class name but lost its CSS, because the rule had been emitted only inside the fallback that React discards on reveal.

    Each server-rendered instance now carries its own inline <style>, so its styles always travel with it and survive the boundary. The data React sends for server components includes each distinct style once on React 19, however many instances repeat it. In the HTML, nearby duplicates compress away almost for free under gzip, but gzip can only look back about 32 KB, so once repeats are farther apart on the page each one costs roughly its own compressed size; brotli's much larger window keeps it cheap regardless of distance. Only a very large repeated list (thousands of instances of one component on a single page) is worth restyling from a single parent element, and a development-only warning points that out if it happens.

  • 7afbd11: styled-components now installs the stylis type declarations its own published types rely on.

    The shipped declarations reference types from stylis (the stylisPlugins option and stylisPluginRSC), and stylis ships no types of its own. With skipLibCheck turned off, a project that had not installed @types/stylis itself could fail to type-check with an error inside styled-components' declarations. Nothing changes at runtime.

  • 7afbd11: Fixed the shipped types failing to compile, with skipLibCheck turned off, against @types/react 16, 17, and 18.2.6 through 18.2.11. Those versions don't declare the <search> HTML element, and styled-components' types assumed they did. The published types now compile on every supported @types/react.

    styled.search is present in the types on every version, and accepts the same props it did before, so no existing code stops compiling.

  • 7afbd11: Fixed an error inside styled-components' own type declarations, with skipLibCheck turned off, for projects using React 16 or 17 type packages or without @types/react-dom installed. The ServerStyleSheet streaming API's types referenced a type that only @types/react-dom 18 and later provide. interleaveWithNodeStream still accepts the result of renderToPipeableStream and Node readable streams exactly as before.

  • 7afbd11: Added a development-only warning for when the server and the browser are running different versions of styled-components. Class names are derived in part from the library's own version, so a mismatch made every server-rendered class name silently fail to match on the client, with no hint as to why styles disappeared or hydration broke. The warning names both versions and points at npm ls styled-components to find the duplicate. A page that intentionally hosts more than one app, each on its own styled-components version (for example a micro-frontend setup), can ignore it. It is stripped from production builds.

ladjs/supertest (supertest)

v7.3.1

Compare Source

  • Merge pull request #​907 from JH8459/fix/ephemeral-loopback-bind 884cd26
  • fix: bind ephemeral server to the loopback address it connects to e74a1e0

v7.3.0

Compare Source

  • fix: stabilize ephemeral server requests and assertions 71dc5fb
  • Merge pull request #​883 from forwardemail/dependabot/npm_and_yarn/multi-acd8535d99 3b5ba5c
  • Merge pull request #​886 from forwardemail/dependabot/npm_and_yarn/picomatch-2.3.2 c3419b2
  • Merge pull request #​887 from forwardemail/dependabot/npm_and_yarn/lodash-4.18.1 7e409db
  • Merge pull request #​898 from forwardemail/dependabot/npm_and_yarn/brace-expansion-1.1.21 b55a7f9
  • Merge pull request #​899 from forwardemail/dependabot/npm_and_yarn/browserslist-4.29.0 7a5deaa
  • Merge pull request #​900 from forwardemail/dependabot/npm_and_yarn/fast-uri-3.1.8 a75f6ee
  • Merge pull request #​901 from forwardemail/dependabot/npm_and_yarn/js-yaml-3.15.2 c2cb33e
  • Merge pull request #​896 from pnookala-godaddy/codex/ephemeral-loopback-bind 7fb34e7
  • chore(deps-dev): bump js-yaml from 3.14.2 to 3.15.2 c357584
  • chore(deps-dev): bump browserslist from 4.25.1 to 4.29.0 2a01b57
  • chore(deps-dev): bump fast-uri from 3.0.6 to 3.1.8 343394d
  • chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.21 6b203e9
  • Merge pull request #​881 from forwardemail/dependabot/npm_and_yarn/qs-6.14.2 d40ca7e
  • fix: match ephemeral server address family b6f5995
  • chore(deps-dev): bump lodash from 4.17.21 to 4.18.1 81766ca
  • chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 985ac7c
  • chore(deps): bump minimatch 58baa5f
  • chore(deps): bump qs from 6.14.1 to 6.14.2 c406e82


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@strapi/plugin-cloud](https://strapi.io) ([source](https://github.com/strapi/strapi/tree/HEAD/packages/plugins/cloud)) | [`5.52.3` → `5.60.0`](https://renovatebot.com/diffs/npm/@strapi%2fplugin-cloud/5.52.3/5.60.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@strapi%2fplugin-cloud/5.60.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@strapi%2fplugin-cloud/5.52.3/5.60.0?slim=true) | | [@strapi/plugin-users-permissions](https://strapi.io) ([source](https://github.com/strapi/strapi/tree/HEAD/packages/plugins/users-permissions)) | [`5.52.3` → `5.60.0`](https://renovatebot.com/diffs/npm/@strapi%2fplugin-users-permissions/5.52.3/5.60.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@strapi%2fplugin-users-permissions/5.60.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@strapi%2fplugin-users-permissions/5.52.3/5.60.0?slim=true) | | [@strapi/strapi](https://strapi.io) ([source](https://github.com/strapi/strapi/tree/HEAD/packages/core/strapi)) | [`5.52.3` → `5.60.0`](https://renovatebot.com/diffs/npm/@strapi%2fstrapi/5.52.3/5.60.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@strapi%2fstrapi/5.60.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@strapi%2fstrapi/5.52.3/5.60.0?slim=true) | | [@strapi/typescript-utils](https://strapi.io) ([source](https://github.com/strapi/strapi/tree/HEAD/packages/utils/typescript)) | [`5.52.3` → `5.60.0`](https://renovatebot.com/diffs/npm/@strapi%2ftypescript-utils/5.52.3/5.60.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@strapi%2ftypescript-utils/5.60.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@strapi%2ftypescript-utils/5.52.3/5.60.0?slim=true) | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`19.2.18` → `19.3.0`](https://renovatebot.com/diffs/npm/@types%2freact/19.2.18/19.3.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/19.3.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/19.2.18/19.3.0?slim=true) | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom)) | [`19.2.7` → `19.3.0`](https://renovatebot.com/diffs/npm/@types%2freact-dom/19.2.7/19.3.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/19.3.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/19.2.7/19.3.0?slim=true) | | [fs-extra](https://github.com/jprichardson/node-fs-extra) | [`11.4.0` → `11.4.1`](https://renovatebot.com/diffs/npm/fs-extra/11.4.0/11.4.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/fs-extra/11.4.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fs-extra/11.4.0/11.4.1?slim=true) | | [jest](https://jestjs.io/) ([source](https://github.com/jestjs/jest/tree/HEAD/packages/jest)) | [`30.5.1` → `30.5.2`](https://renovatebot.com/diffs/npm/jest/30.5.1/30.5.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/jest/30.5.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest/30.5.1/30.5.2?slim=true) | | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | [`3.9.6` → `3.9.10`](https://renovatebot.com/diffs/npm/prettier/3.9.6/3.9.10) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.9.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.9.6/3.9.10?slim=true) | | [react-intl](https://formatjs.github.io/docs/react-intl) ([source](https://github.com/formatjs/formatjs)) | [`12.0.1` → `12.1.6`](https://renovatebot.com/diffs/npm/react-intl/12.0.1/12.1.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/react-intl/12.1.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-intl/12.0.1/12.1.6?slim=true) | | [styled-components](https://styled-components.com) ([source](https://github.com/styled-components/styled-components)) | [`6.5.3` → `6.6.0`](https://renovatebot.com/diffs/npm/styled-components/6.5.3/6.6.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/styled-components/6.6.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/styled-components/6.5.3/6.6.0?slim=true) | | [supertest](https://github.com/ladjs/supertest) | [`7.2.2` → `7.3.1`](https://renovatebot.com/diffs/npm/supertest/7.2.2/7.3.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/supertest/7.3.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/supertest/7.2.2/7.3.1?slim=true) | --- ### Release Notes <details> <summary>strapi/strapi (@&#8203;strapi/plugin-cloud)</summary> ### [`v5.60.0`](https://github.com/strapi/strapi/releases/tag/v5.60.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.59.0...v5.60.0) ##### 5.60.0 (2026-10-28) ##### 🚀 New feature - **admin:** record SSO settings updates in audit logs ([#&#8203;28135](https://github.com/strapi/strapi/pull/28135)) - **webhooks:** select entry events per content type ([#&#8203;27931](https://github.com/strapi/strapi/pull/27931)) ##### 🔥 Bug fix - **admin:** i18n tokens that were translated in 7 locales ([#&#8203;27767](https://github.com/strapi/strapi/pull/27767)) - **admin:** admin user updates and deletes crash when the super admin role does not exist ([#&#8203;28149](https://github.com/strapi/strapi/pull/28149)) - **admin:** webhook header input keeps stale text after clearing the last row ([#&#8203;28168](https://github.com/strapi/strapi/pull/28168)) - **content-manager:** preview URL accepts any status string ([#&#8203;28148](https://github.com/strapi/strapi/pull/28148)) - **core:** ctrl-c crashes strapi develop and build when the admin is not registered ([#&#8203;28117](https://github.com/strapi/strapi/pull/28117)) - **core:** document middleware and lifecycle subscriber removers remove the wrong entry ([#&#8203;28047](https://github.com/strapi/strapi/pull/28047)) - **core:** include meta in OpenAPI content-API response schemas ([#&#8203;28114](https://github.com/strapi/strapi/pull/28114)) - **mcp:** every request builds the schemas of all tools and exhausts the heap ([#&#8203;28116](https://github.com/strapi/strapi/pull/28116)) - **review-workflows:** stage update runs the document update twice ([#&#8203;28120](https://github.com/strapi/strapi/pull/28120)) - **review-workflows:** required stage update fails when stages are not sent ([#&#8203;27868](https://github.com/strapi/strapi/pull/27868)) - **upload:** media library nested folders sidebar ([#&#8203;28159](https://github.com/strapi/strapi/pull/28159)) - **upload:** the published file type does not match the rows the upload service returns ([#&#8203;28190](https://github.com/strapi/strapi/pull/28190)) - **upload:** isFaultyImage returns image stats or rejects for files without a filepath ([#&#8203;28199](https://github.com/strapi/strapi/pull/28199)) - **upload:** settings saved without aiMetadata lose its default value ([#&#8203;28188](https://github.com/strapi/strapi/pull/28188)) ##### ⚙️ Chore - merge back release 5.59.0 ([#&#8203;28164](https://github.com/strapi/strapi/pull/28164)) - replace lodash isArray with native Array.isArray ([#&#8203;27454](https://github.com/strapi/strapi/pull/27454)) - **deps:** bump nodemailer from 9.0.1 to 10.0.9 ([#&#8203;27876](https://github.com/strapi/strapi/pull/27876)) - **deps:** bump simple-git from 3.36.0 to 4.0.1 ([#&#8203;27960](https://github.com/strapi/strapi/pull/27960)) - **deps:** bump [@&#8203;types/ws](https://github.com/types/ws) to 8.18.1 in data-transfer ([#&#8203;27924](https://github.com/strapi/strapi/pull/27924)) - **deps:** bump follow-redirects from 1.16.0 to 1.16.1 ([#&#8203;28153](https://github.com/strapi/strapi/pull/28153)) - **deps:** bump in-range dependencies past security advisories ([909efb03f2](https://github.com/strapi/strapi/commit/909efb03f2)) - **deps:** bump [@&#8203;graphql-tools/utils](https://github.com/graphql-tools/utils) from 10.1.3 to 12.0.1 ([#&#8203;27955](https://github.com/strapi/strapi/pull/27955)) - **deps:** bump vite and undici to patched releases ([78f13c5639](https://github.com/strapi/strapi/commit/78f13c5639)) - **deps:** raise in-range lockfile pins after dedupe ([be31aafe7d](https://github.com/strapi/strapi/commit/be31aafe7d)) - **deps:** bump dompurify from 3.4.16 to 3.4.17 ([7bc33125a4](https://github.com/strapi/strapi/commit/7bc33125a4)) - **types:** mark strapi.query as deprecated and stop using it ([#&#8203;28139](https://github.com/strapi/strapi/pull/28139)) ##### 💅 Enhancement - fewer database queries per relation field and per write on relation-heavy entries ([#&#8203;28092](https://github.com/strapi/strapi/pull/28092)) - **upload:** add new content manager asset picker ([#&#8203;28091](https://github.com/strapi/strapi/pull/28091)) - **upload:** show status-aware rows and cards in the media field ([#&#8203;28080](https://github.com/strapi/strapi/pull/28080)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Ben Irvin - ELABBASSI Hicham - Gonzalo Andres Garcia - mathildeleg [@&#8203;mathildeleg](https://github.com/mathildeleg) - Maxime Castres [@&#8203;Mcastres](https://github.com/Mcastres) - Nas [@&#8203;Na5co](https://github.com/Na5co) - Nico André - Ranbir Singh [@&#8203;Ranbir5ingh](https://github.com/Ranbir5ingh) ### [`v5.59.0`](https://github.com/strapi/strapi/releases/tag/v5.59.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.58.0...v5.59.0) ##### 5.59.0 (2026-10-21) ##### 🚀 New feature - make CLI post-install commands more visible ([855871757d](https://github.com/strapi/strapi/commit/855871757d)) - changing the upgrade link ([9a4bc48729](https://github.com/strapi/strapi/commit/9a4bc48729)) ##### 🔥 Bug fix - correcting linting after Codex review ([13c317ddbd](https://github.com/strapi/strapi/commit/13c317ddbd)) - updating the spacing beween the lines ([f6aa6e3b96](https://github.com/strapi/strapi/commit/f6aa6e3b96)) - trying the space in a different way ([d6450b12ad](https://github.com/strapi/strapi/commit/d6450b12ad)) - **admin:** reject role name and description longer than 255 characters ([#&#8203;28002](https://github.com/strapi/strapi/pull/28002)) - **admin:** apply boolean false filters in list view ([#&#8203;27938](https://github.com/strapi/strapi/pull/27938)) - **admin:** custom RBAC conditions in a custom category are discarded ([#&#8203;28020](https://github.com/strapi/strapi/pull/28020)) - **admin:** derive the auth cookie path from admin.url ([#&#8203;27619](https://github.com/strapi/strapi/pull/27619)) - **admin:** reject token name and description longer than 255 characters ([#&#8203;28004](https://github.com/strapi/strapi/pull/28004)) - **cli:** remove the expiration date check ([#&#8203;28076](https://github.com/strapi/strapi/pull/28076)) - **content-manager:** keep list columns when an attribute is renamed ([#&#8203;28036](https://github.com/strapi/strapi/pull/28036)) - **content-releases:** deleting a non-localized entry leaves it in its releases ([#&#8203;28023](https://github.com/strapi/strapi/pull/28023)) - **content-releases:** await release cleanup inside its try/catch ([#&#8203;27893](https://github.com/strapi/strapi/pull/27893)) - **content-releases:** bootstrap fails when the core store has no saved schemas ([#&#8203;28121](https://github.com/strapi/strapi/pull/28121)) - **core:** close remaining clone relation edge cases ([#&#8203;26970](https://github.com/strapi/strapi/pull/26970)) - **core:** fetch requests setting their own content-length fail after loading undici 8 ([8b5dea865d](https://github.com/strapi/strapi/commit/8b5dea865d)) - **core:** https requests through a proxy fail after loading undici 8 ([29c762cd0d](https://github.com/strapi/strapi/commit/29c762cd0d)) - **core:** unhandled rejection when an entry event fails to emit after commit ([#&#8203;28017](https://github.com/strapi/strapi/pull/28017)) - **core/core:** event hub off() and once() remove the wrong listener ([#&#8203;28051](https://github.com/strapi/strapi/pull/28051)) - **create-strapi-app:** next-step cd command misreads folder names that start with - or \~ ([31e16d56df](https://github.com/strapi/strapi/commit/31e16d56df)) - **create-strapi-app:** bump better-sqlite3 pin to 12.11.1 for Node 26 support ([#&#8203;27759](https://github.com/strapi/strapi/pull/27759)) - **database:** populate relations sequentially inside a transaction ([#&#8203;27644](https://github.com/strapi/strapi/pull/27644)) - **database:** connection function holds a pool connection forever on postgres and mysql ([#&#8203;27979](https://github.com/strapi/strapi/pull/27979)) - **document-service:** publishing an entry linked from a widely reused component takes minutes ([#&#8203;27942](https://github.com/strapi/strapi/pull/27942)) - **email-nodemailer:** decodeRfc2047 ignores the charset of encoded words ([#&#8203;27822](https://github.com/strapi/strapi/pull/27822)) - **i18n:** restore ICU arguments in 68 admin locale strings ([#&#8203;27908](https://github.com/strapi/strapi/pull/27908)) - **review-workflows:** weekly telemetry sends metrics object as numberOfActiveWorkflows ([#&#8203;27866](https://github.com/strapi/strapi/pull/27866)) - **review-workflows:** hide review workflow panel on published tab ([#&#8203;28009](https://github.com/strapi/strapi/pull/28009)) - **review-workflows:** weekly metrics sendMetrics regression tests never run ([#&#8203;28063](https://github.com/strapi/strapi/pull/28063)) - **upload:** honor sharp limitInputPixels config in image manipulation ([#&#8203;27161](https://github.com/strapi/strapi/pull/27161)) - **upload:** rebuild the content manager media field ([#&#8203;27848](https://github.com/strapi/strapi/pull/27848)) - **upload:** add an Add asset menu to the media field ([#&#8203;27856](https://github.com/strapi/strapi/pull/27856)) ##### 📚 Documentation Changes - fix three dead relative links ([#&#8203;27719](https://github.com/strapi/strapi/pull/27719)) ##### ⚙️ Chore - format files with prettier 3.9.9 ([#&#8203;28043](https://github.com/strapi/strapi/pull/28043)) - **ai:** add create-issue skill ([#&#8203;27992](https://github.com/strapi/strapi/pull/27992)) - **database:** upgrade knex from 3.0.1 to 3.3.0 ([#&#8203;27982](https://github.com/strapi/strapi/pull/27982)) - **deps:** bump prettier from 3.6.2 to 3.9.9 ([f8ce51ac65](https://github.com/strapi/strapi/commit/f8ce51ac65)) - **deps:** upgrade undici from 6.29.0 to 8.11.2 ([bff2ccfc7f](https://github.com/strapi/strapi/commit/bff2ccfc7f)) - **deps:** upgrade undici from 8.11.2 to 8.12.1 ([a78ad0d6de](https://github.com/strapi/strapi/commit/a78ad0d6de)) - **deps:** bump browserslist from 4.28.8 to 4.28.9 ([#&#8203;27851](https://github.com/strapi/strapi/pull/27851)) - **deps:** bump markdown-it ([#&#8203;28074](https://github.com/strapi/strapi/pull/28074)) - **docs:** contributor docs are excluded from prettier checks ([#&#8203;28062](https://github.com/strapi/strapi/pull/28062)) - **lint:** eslint fails to parse vitest.config.ts in admin/server packages ([#&#8203;28064](https://github.com/strapi/strapi/pull/28064)) - **lint:** extra-policy oxlint perf on the blocking gate ([#&#8203;27671](https://github.com/strapi/strapi/pull/27671)) - **review-workflows:** migrate unit tests from jest to vitest ([#&#8203;27388](https://github.com/strapi/strapi/pull/27388)) - **review-workflows:** stop passing ignored populate to workflow create and update ([#&#8203;27865](https://github.com/strapi/strapi/pull/27865)) - **types:** centralise the window\.strapi type in [@&#8203;strapi/types](https://github.com/strapi/types) ([#&#8203;26213](https://github.com/strapi/strapi/pull/26213)) - **upload:** enforce the media MCP ambient guard by construction ([#&#8203;27617](https://github.com/strapi/strapi/pull/27617)) ##### 💅 Enhancement - **database:** describe connection pool timeouts ([#&#8203;28000](https://github.com/strapi/strapi/pull/28000)) - **utils:** avoid rebuilding curried traversal wrappers on every call ([#&#8203;27947](https://github.com/strapi/strapi/pull/27947)) - **utils:** remove per-key allocations from the query traversal ([#&#8203;27233](https://github.com/strapi/strapi/pull/27233)) ##### ⚠️ Changes to be aware of ##### Database driver update (knex 3.3.0) Custom code that uses `strapi.db.connection` and calls `delete()` with `limit` or `having`, or `truncate()` with `where`, `having` or `limit`, now throws on PostgreSQL and SQLite. MySQL now applies the `LIMIT`. Before, the limit was ignored and every matching row was deleted, so check plugins or scripts that build such queries. Connection pool timeout errors now include the underlying connection error, and knex warnings now appear in the Strapi log as `[database] knex: …`. ([#&#8203;27982](https://github.com/strapi/strapi/pull/27982)) ##### Token and role names are limited to 255 characters The name and description of API tokens, admin tokens, transfer tokens and admin roles now accept at most 255 characters. Longer values get a validation error under the field. Before, PostgreSQL returned a generic server error. Existing tokens with longer values keep working, but the admin rejects that long text on save until you shorten it. ([#&#8203;28004](https://github.com/strapi/strapi/pull/28004)) ([#&#8203;28002](https://github.com/strapi/strapi/pull/28002)) ##### Node.js 22.19 or later is required Strapi now uses undici 8, which requires Node.js 22.19.0 or later. The `engines` field still says `>=20.0.0`, so check your runtime: this release was only tested on Node 22.20 and later. ([#&#8203;27934](https://github.com/strapi/strapi/pull/27934)) ##### `limitInputPixels` must be a number or a boolean The upload plugin now applies `sharp.limitInputPixels`. Strapi refuses to start if the value is not `true`, `false` or an integer of 0 or more. A value read straight from an environment variable is a string, so use `env.int()`. ([#&#8203;27161](https://github.com/strapi/strapi/pull/27161)) ##### Known issue: deleting an entry changes past releases When you delete an entry that belongs to a release that was already published, the entry is removed from that release, and the release status changes from "done" to "empty" or "ready". The published content is not affected. This already happened for localized entries, and it now happens for all entries. ([#&#8203;28023](https://github.com/strapi/strapi/pull/28023)) ##### Known issue: editing webhook headers In Settings > Webhooks, if you clear the last header row and type a new header name, the old text can stay in front of it (for example `X-CX-D` instead of `X-D`). Check the header names before you save. ([#&#8203;27671](https://github.com/strapi/strapi/pull/27671)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Alexandre Kohler [@&#8203;kwy404](https://github.com/kwy404) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Arthur Moreau - Ben Irvin - Dex - DMehaffy - Giulio Montagner [@&#8203;giu1io](https://github.com/giu1io) - HichamELBSI - Michael [@&#8203;theluckystrike](https://github.com/theluckystrike) - Minho Yoo - Mohith Gajjela [@&#8203;Mohith26](https://github.com/Mohith26) - Nico André - Obada Qawwas [@&#8203;onyxdevs](https://github.com/onyxdevs) - Simon Norris - Valentin [@&#8203;valfur03](https://github.com/valfur03) - Yevhen Leontiev - Younes Beriane - ナム - 陈志谦 [@&#8203;simpleqt](https://github.com/simpleqt) ### [`v5.58.0`](https://github.com/strapi/strapi/releases/tag/v5.58.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.57.0...v5.58.0) ##### 5.58.0 (2026-10-14) ##### 🚀 New feature - **admin:** add License details and Support debug dump ([#&#8203;27034](https://github.com/strapi/strapi/pull/27034)) - **admin:** record failed admin logins and sso auto-registration in audit logs ([#&#8203;27930](https://github.com/strapi/strapi/pull/27930)) ##### 🔥 Bug fix - removing firefox from the e2e test suite ([3af89ee777](https://github.com/strapi/strapi/commit/3af89ee777)) - cleaning up firefox inclusion in e2e tests ([8580c0dbe1](https://github.com/strapi/strapi/commit/8580c0dbe1)) - **admin:** render reset password strength feedback ([#&#8203;27741](https://github.com/strapi/strapi/pull/27741)) - **admin:** show unset boolean fields as neither true nor false ([#&#8203;28014](https://github.com/strapi/strapi/pull/28014)) - **content-manager:** relation fields share cached options across component instances ([#&#8203;27732](https://github.com/strapi/strapi/pull/27732)) - **content-manager:** relation fields hide available relations after a selection or a failed request ([#&#8203;28006](https://github.com/strapi/strapi/pull/28006)) - **content-type-builder:** make field conditions follow attribute renames ([#&#8203;27953](https://github.com/strapi/strapi/pull/27953)) - **core:** document-service query transform mutates the caller's fields array ([#&#8203;27948](https://github.com/strapi/strapi/pull/27948)) - **core:** treat only all-digit relation shorthand strings as numeric ids ([#&#8203;27892](https://github.com/strapi/strapi/pull/27892)) - **deps:** bump the pinned axios and handlebars past their advisories ([#&#8203;28008](https://github.com/strapi/strapi/pull/28008)) - **e2e:** webkit jobs fail in global setup without chromium ([65067fc0c8](https://github.com/strapi/strapi/commit/65067fc0c8)) - **upload:** cancel does not abort in-flight uploads and asset edits ([#&#8203;27896](https://github.com/strapi/strapi/pull/27896)) ##### 📚 Documentation Changes - **contributor-docs:** modernize the contributor docs site ([#&#8203;27879](https://github.com/strapi/strapi/pull/27879)) - **e2e:** install chromium and webkit for local e2e ([1bfad16822](https://github.com/strapi/strapi/commit/1bfad16822)) - **upload:** fix the stale JSDoc param on signEntityMedia ([#&#8203;27720](https://github.com/strapi/strapi/pull/27720)) ##### ⚙️ Chore - merge back release 5.57.0 ([#&#8203;27970](https://github.com/strapi/strapi/pull/27970)) - **deps:** upgrade MCP SDK to 2.3.1 ([#&#8203;27996](https://github.com/strapi/strapi/pull/27996)) - **deps:** bump ip-address from 10.4.0 to 10.7.3 ([#&#8203;27904](https://github.com/strapi/strapi/pull/27904)) - **deps:** bump piscina from 4.9.3 to 4.9.4 ([#&#8203;27905](https://github.com/strapi/strapi/pull/27905)) - **deps:** bump http-cache-semantics from 4.1.1 to 4.3.0 ([#&#8203;27918](https://github.com/strapi/strapi/pull/27918)) - **deps:** bump [@&#8203;fastify/busboy](https://github.com/fastify/busboy) from 2.0.0 to 2.1.1 ([#&#8203;27919](https://github.com/strapi/strapi/pull/27919)) - **deps:** bump shell-quote from 1.10.0 to 1.12.0 ([#&#8203;27957](https://github.com/strapi/strapi/pull/27957)) - **deps:** bump axios from 1.19.0 to 1.20.0 ([#&#8203;27883](https://github.com/strapi/strapi/pull/27883)) - **deps:** bump proxy-addr from 2.0.7 to 2.0.8 ([#&#8203;27958](https://github.com/strapi/strapi/pull/27958)) - **deps:** bump dompurify from 3.4.13 to 3.4.16 ([#&#8203;27903](https://github.com/strapi/strapi/pull/27903)) - **deps:** bump source-map-js from 1.2.1 to 1.2.2 ([#&#8203;27959](https://github.com/strapi/strapi/pull/27959)) - **deps:** bump sharp from 0.35.4 to 0.35.5 ([#&#8203;27954](https://github.com/strapi/strapi/pull/27954)) - **generators:** migrate unit tests from jest to vitest ([#&#8203;27221](https://github.com/strapi/strapi/pull/27221)) ##### ❤️ Thank You - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Ayush Baluni [@&#8203;aayushbaluni](https://github.com/aayushbaluni) - Ben Irvin - Christopher Pruijsen [@&#8203;cpruijsen](https://github.com/cpruijsen) - Dijedon [@&#8203;dijedontahiri](https://github.com/dijedontahiri) - DMehaffy - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - Jamie Howard [@&#8203;jhoward1994](https://github.com/jhoward1994) - Nico André - Peter Hsu [@&#8203;sony9154](https://github.com/sony9154) - Simon Norris - Waqas Ahmed [@&#8203;wakqasahmed](https://github.com/wakqasahmed) - 陈志谦 [@&#8203;simpleqt](https://github.com/simpleqt) ### [`v5.57.0`](https://github.com/strapi/strapi/releases/tag/v5.57.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.56.0...v5.57.0) ##### 5.57.0 (2026-10-07) ##### 🚀 New feature - **cli:** add strapi enterprise install command ([#&#8203;27849](https://github.com/strapi/strapi/pull/27849)) - **content-type-builder:** Preserve data on renaming attributes ([#&#8203;26749](https://github.com/strapi/strapi/pull/26749)) - **review-workflows:** record workflow and review actions in audit logs ([#&#8203;27814](https://github.com/strapi/strapi/pull/27814)) ##### 🔥 Bug fix - updating xhmikosr/decompress ([#&#8203;27885](https://github.com/strapi/strapi/pull/27885)) - documentId upload in content API ([#&#8203;27834](https://github.com/strapi/strapi/pull/27834)) - **admin:** media library banner appears on every admin page instead of only the media library ([9012e0ad5a](https://github.com/strapi/strapi/commit/9012e0ad5a)) - **admin:** upsell banner stacked with the media library banner when both were shown ([349aaea5ba](https://github.com/strapi/strapi/commit/349aaea5ba)) - **admin:** upsell banner briefly mounted and queried its trial data on the media library ([ba5482ce21](https://github.com/strapi/strapi/commit/ba5482ce21)) - **admin:** guard RelativeTime against invalid dates ([#&#8203;27472](https://github.com/strapi/strapi/pull/27472)) - **admin:** enumeration placeholder shown twice in select trigger ([#&#8203;27785](https://github.com/strapi/strapi/pull/27785)) - **admin:** add strapi version to admin telemetry events ([#&#8203;27922](https://github.com/strapi/strapi/pull/27922)) - **admin|upload:** stamp legacy media events and send login telemetry once ([#&#8203;27932](https://github.com/strapi/strapi/pull/27932)) - **content-manager:** warn before discard removes relations to draft entries ([#&#8203;27815](https://github.com/strapi/strapi/pull/27815)) - **content-manager:** preview click-to-edit breaks when the preview script is injected twice ([#&#8203;27796](https://github.com/strapi/strapi/pull/27796)) - **content-manager:** relation list loses pages after opening the same document in a modal ([#&#8203;27831](https://github.com/strapi/strapi/pull/27831)) - **content-manager:** stop relation fields rendering a full page loader ([#&#8203;27682](https://github.com/strapi/strapi/pull/27682)) - **core:** strip empty documentId from create/update data to prevent … ([#&#8203;27766](https://github.com/strapi/strapi/pull/27766)) - **documentation:** prevent relation schema generation from exhausting memory ([#&#8203;27780](https://github.com/strapi/strapi/pull/27780)) - **i18n:** globe tooltip displays \[object object] ([#&#8203;27890](https://github.com/strapi/strapi/pull/27890)) - **lint:** make oxlint override globs match repo paths ([#&#8203;27863](https://github.com/strapi/strapi/pull/27863)) - **upload:** add rotate to the media library image editor ([#&#8203;27714](https://github.com/strapi/strapi/pull/27714)) - **upload:** open asset and folder actions on right-click ([#&#8203;27816](https://github.com/strapi/strapi/pull/27816)) - **upload:** stamp mediaLibraryVersion v1 on legacy media library events ([#&#8203;27900](https://github.com/strapi/strapi/pull/27900)) - **utils:** explain that status is root-only when used in nested populate ([#&#8203;27857](https://github.com/strapi/strapi/pull/27857)) ##### 📚 Documentation Changes - architecture modeling ([#&#8203;26927](https://github.com/strapi/strapi/pull/26927)) ##### ⚙️ Chore - fix package version alignment on develop ([#&#8203;27871](https://github.com/strapi/strapi/pull/27871)) - remove lodash/fp and prefer native javascript ([#&#8203;27819](https://github.com/strapi/strapi/pull/27819)) - **deps:** bump [@&#8203;radix-ui/react-toolbar](https://github.com/radix-ui/react-toolbar) from 1.1.11 to 1.1.19 ([5dc5ad318d](https://github.com/strapi/strapi/commit/5dc5ad318d)) - **email:** migrate unit tests from jest to vitest ([#&#8203;27391](https://github.com/strapi/strapi/pull/27391)) - **graphql:** migrate backend unit tests from jest to vitest ([#&#8203;27389](https://github.com/strapi/strapi/pull/27389)) - **i18n:** remove type exports from server entry ([#&#8203;27817](https://github.com/strapi/strapi/pull/27817)) ##### 💅 Enhancement - **core:** accept localization behavior from registered providers ([#&#8203;27806](https://github.com/strapi/strapi/pull/27806)) - **strapi:** stop loading the admin build toolchain on every cli command ([#&#8203;27910](https://github.com/strapi/strapi/pull/27910)) ##### 🚨 Security - document DTS transfer-token trust model as a specific exclusion ([#&#8203;27483](https://github.com/strapi/strapi/pull/27483)) - **deps:** upgrade vite to fix server.fs.deny bypass on windows ([eadb0c9d82](https://github.com/strapi/strapi/commit/eadb0c9d82)) - **deps:** resolve every qs copy in the lockfile to 6.16.0 ([3be284aab1](https://github.com/strapi/strapi/commit/3be284aab1)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Akshay Iyer [@&#8203;MrAi0](https://github.com/MrAi0) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Arthur Moreau [@&#8203;kibwashere](https://github.com/kibwashere) - Bassel Kanso [@&#8203;Bassel17](https://github.com/Bassel17) - Ben Irvin [@&#8203;innerdvations](https://github.com/innerdvations) - DMehaffy [@&#8203;derrickmehaffy](https://github.com/derrickmehaffy) - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - HichamELBSI [@&#8203;HichamELBSI](https://github.com/HichamELBSI) - Jamie Howard [@&#8203;jhoward1994](https://github.com/jhoward1994) - kensukekikuchi-uh - mathildeleg [@&#8203;mathildeleg](https://github.com/mathildeleg) - Nico André [@&#8203;nclsndr](https://github.com/nclsndr) - Simon Norris [@&#8203;cache-your-dreams](https://github.com/cache-your-dreams) - Valentin [@&#8203;valfur03](https://github.com/valfur03) - Ziyi [@&#8203;butcherZ](https://github.com/butcherZ) ### [`v5.56.0`](https://github.com/strapi/strapi/releases/tag/v5.56.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.55.1...v5.56.0) ##### 5.56.0 (2026-09-30) ##### 🚀 New feature - **admin:** record admin account and password actions in audit logs ([#&#8203;27748](https://github.com/strapi/strapi/pull/27748)) - **admin:** audit webhook create, update and delete ([#&#8203;27779](https://github.com/strapi/strapi/pull/27779)) - **strapi:** compile Tailwind for the admin panel from one host stylesheet ([#&#8203;27550](https://github.com/strapi/strapi/pull/27550)) ##### 🔥 Bug fix - update create edit e2e test ([#&#8203;27751](https://github.com/strapi/strapi/pull/27751)) - **admin:** build window\.strapi before mount and type the project-type contract ([#&#8203;27683](https://github.com/strapi/strapi/pull/27683)) - **admin:** reopen button on dismissed trial banner overlays page controls ([#&#8203;27777](https://github.com/strapi/strapi/pull/27777)) - **content-manager:** create-relation option offered for relations targeting a Single Type ([82a2ecb2dd](https://github.com/strapi/strapi/commit/82a2ecb2dd)) - **content-manager:** hide create-relation option for Single Type targets instead of disabling it ([89b1efaeef](https://github.com/strapi/strapi/commit/89b1efaeef)) - **content-manager:** cannot re-assign a relation still present on the published version ([#&#8203;27602](https://github.com/strapi/strapi/pull/27602)) - **content-manager:** relation-on-the-fly modal affects the background entry ([584aa7b82a](https://github.com/strapi/strapi/commit/584aa7b82a)) - **content-manager:** nested relation-on-the-fly connects are lost on navigation ([9c13d85f59](https://github.com/strapi/strapi/commit/9c13d85f59)) - **content-type-builder:** clear stale folder field in the edit modal ([#&#8203;27770](https://github.com/strapi/strapi/pull/27770)) - **core/core:** correct "recieve" typo in content-structure service comment ([#&#8203;27825](https://github.com/strapi/strapi/pull/27825)) - **upload:** folder deletion removes assets without permission ([#&#8203;27654](https://github.com/strapi/strapi/pull/27654)) ##### 📚 Documentation Changes - fix typos across documentation pages ([#&#8203;27773](https://github.com/strapi/strapi/pull/27773)) - point RFC contributions to GitHub Discussions ([#&#8203;27746](https://github.com/strapi/strapi/pull/27746)) ##### ⚙️ Chore - release v5.55.0 update develop ([a82c2d8bab](https://github.com/strapi/strapi/commit/a82c2d8bab)) - release v5.55.1 update develop ([7a69d80b15](https://github.com/strapi/strapi/commit/7a69d80b15)) - add test:ts:back to packages with unchecked server code ([#&#8203;27811](https://github.com/strapi/strapi/pull/27811)) - **deps:** drop React 17 from peer dependency ranges ([#&#8203;26194](https://github.com/strapi/strapi/pull/26194)) - **deps:** bump js-yaml from 3.15.1 to 3.15.2 ([#&#8203;27516](https://github.com/strapi/strapi/pull/27516)) - **deps:** bump fast-uri from 3.1.5 to 3.1.8 ([#&#8203;27808](https://github.com/strapi/strapi/pull/27808)) - **deps:** bump postcss-selector-parser from 7.1.1 to 7.1.6 ([#&#8203;27541](https://github.com/strapi/strapi/pull/27541)) - **deps:** bump baseline-browser-mapping from 2.10.8 to 2.11.26 ([#&#8203;27809](https://github.com/strapi/strapi/pull/27809)) - **deps:** bump browserslist from 4.28.1 to 4.28.7 ([#&#8203;27531](https://github.com/strapi/strapi/pull/27531)) - **deps:** bump qs from 6.15.3 to 6.16.0 ([#&#8203;27532](https://github.com/strapi/strapi/pull/27532)) - **deps:** bump mysql2 from 3.20.0 to 3.23.1 ([#&#8203;27538](https://github.com/strapi/strapi/pull/27538)) - **deps:** bump react-router-dom from 6.30.4 to 6.30.6 ([#&#8203;27586](https://github.com/strapi/strapi/pull/27586)) - **deps:** bump sharp from 0.35.3 to 0.35.4 ([#&#8203;27600](https://github.com/strapi/strapi/pull/27600)) - **deps:** bump brace-expansion from 1.1.18 to 1.1.21 ([#&#8203;27840](https://github.com/strapi/strapi/pull/27840)) - **deps:** bump browserslist from 4.28.7 to 4.28.8 ([#&#8203;27838](https://github.com/strapi/strapi/pull/27838)) - **deps:** bump undici from 6.28.1 to 6.29.0 ([#&#8203;27839](https://github.com/strapi/strapi/pull/27839)) - **deps:** align react-router-dom in app-template ([#&#8203;27858](https://github.com/strapi/strapi/pull/27858)) - **tooling:** make jest lcov paths repo-relative for Sonar ([#&#8203;27763](https://github.com/strapi/strapi/pull/27763)) ##### 💅 Enhancement - **ci:** require an explicit QA label to merge ([#&#8203;27464](https://github.com/strapi/strapi/pull/27464)) - **upload:** support custom AI providers for metadata generation ([#&#8203;27684](https://github.com/strapi/strapi/pull/27684)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Arthur Moreau - Ayoub Hidri [@&#8203;ayhid](https://github.com/ayhid) - Ben Irvin - Christopher Pruijsen [@&#8203;cpruijsen](https://github.com/cpruijsen) - Dex - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - HichamELBSI - Jamie Howard [@&#8203;jhoward1994](https://github.com/jhoward1994) - keke [@&#8203;kekekuli](https://github.com/kekekuli) - Nico André - Ricardo Francoli [@&#8203;ricardofrancoli](https://github.com/ricardofrancoli) - Valentin [@&#8203;valfur03](https://github.com/valfur03) ### [`v5.55.1`](https://github.com/strapi/strapi/releases/tag/v5.55.1) [Compare Source](https://github.com/strapi/strapi/compare/v5.55.0...v5.55.1) ##### 5.55.1 (2026-09-24) This is a hotfix release patching v5.55.0 that were causing a performance drop for the projects that have the documentation plugin. ##### ⏪ Revert - **documentation:** restore properties for repeated relation targets ([#&#8203;27592](https://github.com/strapi/strapi/pull/27592)), reverted in ([#&#8203;27783](https://github.com/strapi/strapi/pull/27783)) ### [`v5.55.0`](https://github.com/strapi/strapi/releases/tag/v5.55.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.54.0...v5.55.0) ##### 5.55.0 (2026-09-23) ##### 🚀 New feature - **admin:** record token management in audit logs ([#&#8203;27605](https://github.com/strapi/strapi/pull/27605)) - **admin:** content type folders ([#&#8203;27419](https://github.com/strapi/strapi/pull/27419)) ##### 🔥 Bug fix - ai endpoints requested when the ai feature is unavailable ([#&#8203;27525](https://github.com/strapi/strapi/pull/27525)) - **admin:** suppress MISSING_TRANSLATION errors to fix sluggish editing ([#&#8203;26108](https://github.com/strapi/strapi/pull/26108)) - **admin:** sso default role placeholder shows "choose here" twice ([#&#8203;27685](https://github.com/strapi/strapi/pull/27685)) - **content-manager:** create on the fly prefills inverse from component paths ([#&#8203;27636](https://github.com/strapi/strapi/pull/27636)) - **content-manager:** saved list sort resets on base-route navigation ([#&#8203;27663](https://github.com/strapi/strapi/pull/27663)) - **core/core:** koa response helper types missing in consumer projects ([#&#8203;27380](https://github.com/strapi/strapi/pull/27380)) - **database:** updateMany with relation filter subquery ([#&#8203;26909](https://github.com/strapi/strapi/pull/26909)) - **database:** document-id migration can take hours on large localized tables ([#&#8203;27404](https://github.com/strapi/strapi/pull/27404)) - **database:** updateMany ignores \_q and filters ([#&#8203;27769](https://github.com/strapi/strapi/pull/27769)) - **documentation:** restore properties for repeated relation targets ([#&#8203;27592](https://github.com/strapi/strapi/pull/27592)) — **⚠️ Reverted in v5.55.1 (causing a performance drop for Strapi projects with the documentation plugin) — please update your projects to 5.55.1 instead if you're impacted ⚠️** - **graphql:** exclude custom resolvers from built-in query field detection ([#&#8203;27462](https://github.com/strapi/strapi/pull/27462)) - **upload:** store unsigned urls in richtext and blocks fields ([#&#8203;27593](https://github.com/strapi/strapi/pull/27593)) - **upload:** media library degrades for roles without settings.read ([#&#8203;27687](https://github.com/strapi/strapi/pull/27687)) - **upload:** show more media grid columns on wider screens ([#&#8203;27711](https://github.com/strapi/strapi/pull/27711)) - **utils:** normalize string chunks before buffering streams ([#&#8203;27700](https://github.com/strapi/strapi/pull/27700)) ##### ⚙️ Chore - **deps:** remove unused dependencies from [@&#8203;strapi/strapi](https://github.com/strapi/strapi) ([#&#8203;27540](https://github.com/strapi/strapi/pull/27540)) - **docker:** postgres dev container fails to start on postgres 18 ([#&#8203;27668](https://github.com/strapi/strapi/pull/27668)) - **upload:** promote the new media library out of future/ ([#&#8203;27666](https://github.com/strapi/strapi/pull/27666)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Akash Dabhi [@&#8203;akash-dabhi-qed](https://github.com/akash-dabhi-qed) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Bassel Kanso - Ben Irvin - Christopher Pruijsen [@&#8203;cpruijsen](https://github.com/cpruijsen) - Constantine [@&#8203;Constantine1916](https://github.com/Constantine1916) - Daniel Chicea - Dijedon [@&#8203;dijedontahiri](https://github.com/dijedontahiri) - Giulio Montagner [@&#8203;giu1io](https://github.com/giu1io) - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - Jamie Howard [@&#8203;jhoward1994](https://github.com/jhoward1994) - jasleenkaur-qed42 [@&#8203;jasleenkaur-qed42](https://github.com/jasleenkaur-qed42) - mathildeleg [@&#8203;mathildeleg](https://github.com/mathildeleg) - Nico André - Owen Rossi-Keen [@&#8203;Smoke3785](https://github.com/Smoke3785) - Vibhu Gupta [@&#8203;VibhuGupta-dev](https://github.com/VibhuGupta-dev) ### [`v5.54.0`](https://github.com/strapi/strapi/releases/tag/v5.54.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.53.0...v5.54.0) ##### 5.54.0 (2026-09-16) ##### 🎉 The new Media Library is here! <img width="1440" height="976" alt="Image details" src="https://github.com/user-attachments/assets/cf34c6ac-c3ae-4411-8d51-01851515c4e8" /> We've been heads-down on this for months, and it's the change we're most excited to put in your hands: the redesigned Media Library is now the default for everyone in version 5.54.0. This isn't a fresh coat of paint. We rebuilt the Media Library entirely around how people actually work with assets: - A completely revamped UI and UX — rebuilt from the ground up, with every screen, interaction and flow reworked to make managing your assets faster and far less fiddly - A folder tree that's always visible — no more breadcrumb archaeology to work out where you are - Uploads that don't hold you hostage — the progress panel stays out of your way and keeps running while you carry on working. Browse folders, edit an entry, leave the Media Library entirely; your upload keeps going, file by file, and tells you when it's done - Drag and drop that just works — drop assets onto any folder, in the list or the sidebar - Infinite scroll instead of pagination, so browsing a large library is finally a scroll rather than a chore - A details panel that doesn't get in your way — keep browsing the list while it's open - Bulk move and delete, plus AI-generated captions and alt text on Growth plans - Faster search, filters and sorting across your whole library, including now a sorting by file size 📚 Read the [full documentation](https://docs.strapi.io/cms/features/media-library) Not ready for the big change yet? You're feeling nostalgic and need the old one back? We know upgrades land in the middle of real work. If you'd rather stay on the previous interface for now, you can add this to `config/features`: ``` module.exports = () => ({ useLegacyMediaLibrary: true, }); ``` Full details in Restoring the previous Media Library [in the docs](https://docs.strapi.io/cms/features/media-library#use-legacy-media-library). Huge thanks to everyone who tested the beta and sent feedback. Can't wait to hear what you think 💙 ##### 🚀 New features - **i18n:** record locale management in audit logs ([#&#8203;27547](https://github.com/strapi/strapi/pull/27547)) - **upload:** add MCP scaffolding and read tools to the upload plugin ([#&#8203;27523](https://github.com/strapi/strapi/pull/27523)) - **upload:** add the media_update_asset MCP tool ([#&#8203;27574](https://github.com/strapi/strapi/pull/27574)) - **upload:** make the new Media Library the default ([#&#8203;27606](https://github.com/strapi/strapi/pull/27606)) - **upload:** manage media library folders over MCP ([#&#8203;27576](https://github.com/strapi/strapi/pull/27576)) - **upload:** move media library assets over MCP ([#&#8203;27578](https://github.com/strapi/strapi/pull/27578)) - **upload:** delete media library assets over MCP ([#&#8203;27580](https://github.com/strapi/strapi/pull/27580)) - **upload:** add banner announcing the new version ([#&#8203;27625](https://github.com/strapi/strapi/pull/27625)) ##### 🔥 Bug fixes - restore tests workflow ([#&#8203;27626](https://github.com/strapi/strapi/pull/27626)) - home test failing on new media library upload ([#&#8203;27629](https://github.com/strapi/strapi/pull/27629)) - **admin:** stop treating access-token expiry as a logout ([#&#8203;27424](https://github.com/strapi/strapi/pull/27424)) - **admin:** stop forwarding type onto TimePicker ([#&#8203;27632](https://github.com/strapi/strapi/pull/27632)) - **content-manager:** prevent mobile actions drawer from covering fields ([#&#8203;27588](https://github.com/strapi/strapi/pull/27588)) - **content-manager:** back after publishing a new entry returns to a pre-filled create form ([#&#8203;27604](https://github.com/strapi/strapi/pull/27604)) - **content-manager:** entries-per-page selector shows 10 instead of the configured default page size ([#&#8203;27646](https://github.com/strapi/strapi/pull/27646)) - **content-type-builder:** experimental indexes removed when saving a content type ([#&#8203;27597](https://github.com/strapi/strapi/pull/27597)) - **core/core:** media document ids cannot be linked with document service ([#&#8203;27557](https://github.com/strapi/strapi/pull/27557)) - **data-transfer:** validate asset metadata before restore ([#&#8203;27480](https://github.com/strapi/strapi/pull/27480)) - **upload:** keep a replaced file in its folder ([#&#8203;27524](https://github.com/strapi/strapi/pull/27524)) - **upload:** forward metas when replacing a file ([#&#8203;27544](https://github.com/strapi/strapi/pull/27544)) - **upload:** keep the drag preview under the cursor ([#&#8203;27542](https://github.com/strapi/strapi/pull/27542)) - **upload:** media_update_asset reports the asset's real folder ([#&#8203;27624](https://github.com/strapi/strapi/pull/27624)) - **upload:** bind the media MCP folder tools and pin their test contracts ([#&#8203;27594](https://github.com/strapi/strapi/pull/27594)) - **utils:** escape the dot in parseType's time regex ([#&#8203;27561](https://github.com/strapi/strapi/pull/27561)) ##### ⚙️ Chore - **content-type-builder:** alphabetize dependencies ([#&#8203;27616](https://github.com/strapi/strapi/pull/27616)) - **core:** replace node-schedule with croner ([#&#8203;27309](https://github.com/strapi/strapi/pull/27309)) - **deps:** bump ai sdk in content-type-builder to v6 (EE-174) ([#&#8203;27582](https://github.com/strapi/strapi/pull/27582)) - **upload:** remove the beta notice from the new Media Library ([#&#8203;27667](https://github.com/strapi/strapi/pull/27667)) ##### 💅 Enhancement - **preview:** add blocks support ([#&#8203;27274](https://github.com/strapi/strapi/pull/27274)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Bassel Kanso - Ben Irvin - Christopher Pruijsen [@&#8203;cpruijsen](https://github.com/cpruijsen) - ELABBASSI Hicham - Giulio Montagner [@&#8203;giu1io](https://github.com/giu1io) - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - Manish Tiwari [@&#8203;yfwmaniish](https://github.com/yfwmaniish) - mathildeleg [@&#8203;mathildeleg](https://github.com/mathildeleg) - Muhammad Rafay - Nico André - TupiC [@&#8203;TupiC](https://github.com/TupiC) ### [`v5.53.0`](https://github.com/strapi/strapi/releases/tag/v5.53.0) [Compare Source](https://github.com/strapi/strapi/compare/v5.52.3...v5.53.0) ##### :warning: Security Warning and Notice :warning: Strapi was made aware of a vulnerably that were patched in this release, for now we are going to delay the detailed disclosure of the exact details on how to exploit it and how it was patched to give time for users to upgrade before we do public disclosure. ##### 5.53.0 (2026-09-09) ##### 🚀 New feature - Add an export audit logs button ([#&#8203;27427](https://github.com/strapi/strapi/pull/27427)) - **content-releases:** record release actions in audit logs ([#&#8203;27436](https://github.com/strapi/strapi/pull/27436), [#&#8203;27436](https://github.com/strapi/strapi/pull/27436)) ##### 🔥 Bug fix - close the drawer on click on interactive elements ([4573d58806](https://github.com/strapi/strapi/commit/4573d58806)) - transfer configuration import discards the error that caused it ([#&#8203;27565](https://github.com/strapi/strapi/pull/27565)) - misc users-permissions and admin ([2f3595fe61](https://github.com/strapi/strapi/commit/2f3595fe61)) - **content-type-builder:** default new private fields to not searchable ([#&#8203;27482](https://github.com/strapi/strapi/pull/27482)) - **email-sendmail:** disable file and URL access for attachments ([#&#8203;27430](https://github.com/strapi/strapi/pull/27430)) - **mcp:** bump mcp sdk\@&#8203;2 to stop clients droping advertised tools ([#&#8203;27505](https://github.com/strapi/strapi/pull/27505)) - **strapi:** --sourcemap flag has no effect on the admin build ([#&#8203;27545](https://github.com/strapi/strapi/pull/27545)) - **upload:** reserve list space for the bulk actions bar ([#&#8203;27509](https://github.com/strapi/strapi/pull/27509)) - **upload:** filter the row replace picker by the asset's mime ([#&#8203;27508](https://github.com/strapi/strapi/pull/27508)) - **upload:** bound the focal point fields to the crop area ([#&#8203;27496](https://github.com/strapi/strapi/pull/27496)) - **upload:** folder navigation resets media library list scroll and p… ([#&#8203;27449](https://github.com/strapi/strapi/pull/27449)) - **upload:** keep the drawer open when a control behind is pressed ([3ebdde0965](https://github.com/strapi/strapi/commit/3ebdde0965)) - **upload:** only a primary-button press dismisses the drawer ([3b81103657](https://github.com/strapi/strapi/commit/3b81103657)) - **upload:** contain fast provider rejections in upload batches ([#&#8203;27543](https://github.com/strapi/strapi/pull/27543)) ##### ⚙️ Chore - release v5.52.3 update develop ([2695ff53ff](https://github.com/strapi/strapi/commit/2695ff53ff)) - **.github/draft-release:** run the workflow more than once per release ([#&#8203;27573](https://github.com/strapi/strapi/pull/27573)) - **ci:** pin all GitHub Actions to latest versions by commit SHA ([37d9438606](https://github.com/strapi/strapi/commit/37d9438606)) - **ci:** add the draft-release action and workflow ([#&#8203;27562](https://github.com/strapi/strapi/pull/27562)) - **deps:** bump undici from 6.28.0 to 6.28.1 ([#&#8203;27568](https://github.com/strapi/strapi/pull/27568)) - **lint:** make oxlint a blocking ci gate ([#&#8203;27450](https://github.com/strapi/strapi/pull/27450)) ##### ⚠️ Changes to be aware of ##### MCP clients no longer drop advertised tools The built-in MCP server now advertises tools as JSON Schema 2020-12, so strict clients that previously dropped every tool keep the full list. If you register custom MCP tools or prompts: unknown or unauthorized tool calls now return JSON-RPC error `-32602` instead of `isError: true`; `extra.sendNotification` and `extra.sendRequest` are gone; and one prompt `argsSchema` that cannot become JSON Schema (for example `z.date()`) hides every prompt from `prompts/list`. ([#&#8203;27505](https://github.com/strapi/strapi/pull/27505)) ##### ❤️ Thank You - Adrien L [@&#8203;Adzouz](https://github.com/Adzouz) - Adrien Lepoutre [@&#8203;Adzouz](https://github.com/Adzouz) - Andrei L [@&#8203;unrevised6419](https://github.com/unrevised6419) - Arthur Moreau - Bassel Kanso - Gonzalo Andres Garcia [@&#8203;gonbaum](https://github.com/gonbaum) - Jamie Howard [@&#8203;jhoward1994](https://github.com/jhoward1994) - Jan Kahmen [@&#8203;kah-ja](https://github.com/kah-ja) - Moutaz-homsi - Nico André - Simon Norris </details> <details> <summary>jprichardson/node-fs-extra (fs-extra)</summary> ### [`v11.4.1`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1141--2026-09-22) [Compare Source](https://github.com/jprichardson/node-fs-extra/compare/11.4.0...11.4.1) - Properly handle read errors (e.g. due to permissions) in `emptyDir*()` ([#&#8203;1080](https://github.com/jprichardson/node-fs-extra/pull/1080)) - Allow renaming with only Unicode normalization difference in the filename (APFS-specific) ([#&#8203;859](https://github.com/jprichardson/node-fs-extra/issues/859), [#&#8203;1079](https://github.com/jprichardson/node-fs-extra/pull/1079)) </details> <details> <summary>jestjs/jest (jest)</summary> ### [`v30.5.2`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3052) [Compare Source](https://github.com/jestjs/jest/compare/v30.5.1...v30.5.2) ##### Features - `[@jest/transform]` Strip TypeScript types with Node when no transformer claims a `.ts`, `.mts` or `.cts` file ([#&#8203;16421](https://github.com/jestjs/jest/pull/16421)) ##### Fixes - `[jest-core, jest-haste-map, jest-transform]` Keep `require('../package.json')` external when bundling, so `jest --version` and the transform and haste-map cache keys report the released version instead of the previous one ([#&#8203;16422](https://github.com/jestjs/jest/pull/16422)) - `[jest-each]` Escape a table row's keys before building the `$variable` interpolation `RegExp`, so a column name such as `count(*)` no longer fails the whole table with `Invalid regular expression`, and a `.` or `|` in a column name is matched literally ([#&#8203;16345](https://github.com/jestjs/jest/pull/16345)) - `[@jest/source-map]` Resolve absolute Windows paths in a source map's `sources` and `sourceRoot` again, instead of appending them to the transformed file's directory ([#&#8203;16439](https://github.com/jestjs/jest/pull/16439)) </details> <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.9.10`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#3910) [Compare Source](https://github.com/prettier/prettier/compare/3.9.9...3.9.10) [diff](https://github.com/prettier/prettier/compare/3.9.9...3.9.10) ##### Markdown: Update `micromark-extension-gfm-table` to fix the table parse issue on performance ([#&#8203;20266](https://github.com/prettier/prettier/pull/20266) by [@&#8203;fisker](https://github.com/fisker)) See [micromark/micromark-extension-gfm-table@`4f43ead`](https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267) for details. ### [`v3.9.9`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#399) [Compare Source](https://github.com/prettier/prettier/compare/3.9.8...3.9.9) [diff](https://github.com/prettier/prettier/compare/3.9.8...3.9.9) ##### Markdown: Fix text with `$` been incorrectly parsed as math syntax ([#&#8203;20140](https://github.com/prettier/prettier/pull/20140) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```md <!-- Input --> **Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here. <!-- Prettier 3.9.8 --> **Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR`from`c.sh`, before anything else runs here. <!-- Prettier 3.9.9 --> **Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here. ``` ### [`v3.9.8`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#398) [Compare Source](https://github.com/prettier/prettier/compare/3.9.7...3.9.8) [diff](https://github.com/prettier/prettier/compare/3.9.7...3.9.8) ##### Markdown: Don't let Liquid objects interrupt paragraphs ([#&#8203;20087](https://github.com/prettier/prettier/pull/20087) by [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```markdown <!-- Input --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. <!-- Prettier 3.9.7 --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. <!-- Prettier 3.9.8 --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. ``` ### [`v3.9.7`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#397) [Compare Source](https://github.com/prettier/prettier/compare/3.9.6...3.9.7) [diff](https://github.com/prettier/prettier/compare/3.9.6...3.9.7) ##### Markdown: Prevent indentation drift in list-item code blocks ([#&#8203;19647](https://github.com/prettier/prettier/pull/19647), [#&#8203;19990](https://github.com/prettier/prettier/pull/19990) by [@&#8203;Austin1serb](https://github.com/Austin1serb), [@&#8203;giaBaoJS](https://github.com/giaBaoJS)) <!-- prettier-ignore --> ```markdown <!-- Input --> - [x] short first line. second paragraph at six spaces that wraps onto another line here. <!-- Prettier 3.9.6 --> - [x] short first line. second paragraph at six spaces that wraps onto another line here. <!-- Prettier 3.9.7 --> - [x] short first line. second paragraph at six spaces that wraps onto another line here. ``` ##### JavaScript: Fix embedded template literal idempotency ([#&#8203;19725](https://github.com/prettier/prettier/pull/19725) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input const foo = html` <div>${getText({ value, })}</div> `; // Prettier 3.9.6 (first format) const foo = html` <div> ${getText({ value, })} </div> `; // Prettier 3.9.6 (second format) const foo = html` <div> ${getText({ value, })} </div> `; // Prettier 3.9.7 const foo = html` <div> ${getText({ value, })} </div> `; ``` ##### Markdown: Preserve Liquid blocks after Markdown tables ([#&#8203;19730](https://github.com/prettier/prettier/pull/19730) by [@&#8203;wanxiankai](https://github.com/wanxiankai), [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```markdown <!-- Input --> | Argument | Type | | -------- | ---- | {% set default_params = { "model": ["str"], } %} <!-- Prettier 3.9.6 --> | Argument | Type | | ------------------------- | ---- | | {% set default_params = { | "model": ["str"], } %} <!-- Prettier 3.9.7 --> | Argument | Type | | -------- | ---- | {% set default_params = { "model": ["str"], } %} ``` ##### Markdown: Preserve single tildes in Markdown ([#&#8203;19739](https://github.com/prettier/prettier/pull/19739) by [@&#8203;lazerg](https://github.com/lazerg)) Since 3.9.0, single-tilde spans like `H~2~O` were rewritten to double tildes, turning subscript syntax into strike-through. Only double tildes are treated that way now, matching GitHub. <!-- prettier-ignore --> ```markdown <!-- Input --> H~2~O <!-- Prettier 3.9.6 --> H~~2~~O <!-- Prettier 3.9.7 --> H~2~O ``` ##### Markdown: Fix Markdown blockquote containing `>` characters ([#&#8203;19802](https://github.com/prettier/prettier/pull/19802) by [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```md <!-- Input --> > **test**\> <!-- Prettier 3.9.6 --> > **test**>\> <!-- Prettier 3.9.7 --> > **test**\> ``` ##### Markdown: Strip blockquote markers from a setext heading's continuation lines ([#&#8203;19878](https://github.com/prettier/prettier/pull/19878) by [@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) A setext heading spanning multiple lines inside a blockquote kept the `>` marker of its continuation lines as literal text. <!-- prettier-ignore --> ```md <!-- Input --> > Multi > Line > === <!-- Prettier 3.9.6 --> > Multi > Line > === <!-- Prettier 3.9.7 --> > Multi > Line > === ``` ##### Markdown: Fix HTML block indentation drift in markdown list items ([#&#8203;19987](https://github.com/prettier/prettier/pull/19987) by [@&#8203;lazerg](https://github.com/lazerg)) <!-- prettier-ignore --> ```markdown <!-- Input --> 1. Enable images: <p align="center"> <img alt="example"> </p> <!-- Prettier 3.9.6 (--tab-width=4) --> 1. Enable images: <p align="center"> <img alt="example"> </p> <!-- Prettier 3.9.7 (--tab-width=4) --> 1. Enable images: <p align="center"> <img alt="example"> </p> ``` ##### Angular: Support `@boundary` error boundaries ([#&#8203;20014](https://github.com/prettier/prettier/pull/20014) by [@&#8203;Yahiro025](https://github.com/Yahiro025)) <!-- prettier-ignore --> ```html <!-- Input --> @boundary { <complex-chart [data]="data"/> } @error (let err) { <p>{{err.message}}</p> } <!-- Prettier 3.9.6 --> SyntaxError: Unexpected character "EOF" (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.) (6:1) <!-- Prettier 3.9.7 --> @boundary { <complex-chart [data]="data" /> } @error (let err) { <p>{{ err.message }}</p> } ``` </details> <details> <summary>formatjs/formatjs (react-intl)</summary> ### [`v12.1.6`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.6): react-intl: 12.1.6 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.5...react-intl@12.1.6) ##### Bug Fixes - **deps:** update formatjs monorepo ([#&#8203;7710](https://github.com/formatjs/formatjs/issues/7710)) ([d800cee](https://github.com/formatjs/formatjs/commit/d800cee4a20d488a149ca0b3daee8c95b888866f)) ### [`v12.1.5`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.5): react-intl: 12.1.5 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.4...react-intl@12.1.5) ##### Bug Fixes - **deps:** update formatjs monorepo ([#&#8203;7599](https://github.com/formatjs/formatjs/issues/7599)) ([0a5bedb](https://github.com/formatjs/formatjs/commit/0a5bedbc5bcd2f061e365a63e8632a26d2c92e56)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/icu-messageformat-parser](https://github.com/formatjs/icu-messageformat-parser) bumped to 3.5.22 - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.1.4 - intl-messageformat bumped to 12.1.4 ### [`v12.1.4`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.4): react-intl: 12.1.4 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.3...react-intl@12.1.4) ##### Bug Fixes - **deps:** update dependency [@&#8203;formatjs/icu-messageformat-parser](https://github.com/formatjs/icu-messageformat-parser) to v3.5.20 ([#&#8203;7515](https://github.com/formatjs/formatjs/issues/7515)) ([23a04a9](https://github.com/formatjs/formatjs/commit/23a04a9022e3fc9f3985885e502b34828110ff34)) - **deps:** update formatjs monorepo (major) ([#&#8203;7512](https://github.com/formatjs/formatjs/issues/7512)) ([118166c](https://github.com/formatjs/formatjs/commit/118166c356b420d4bfa7a70ef52f700d874184cc)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/icu-messageformat-parser](https://github.com/formatjs/icu-messageformat-parser) bumped to 3.5.21 - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.1.3 - intl-messageformat bumped to 12.1.3 ### [`v12.1.3`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.3): react-intl: 12.1.3 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.2...react-intl@12.1.3) ##### Bug Fixes - **deps:** update dependency [@&#8203;formatjs/icu-messageformat-parser](https://github.com/formatjs/icu-messageformat-parser) to v3.5.19 ([#&#8203;7496](https://github.com/formatjs/formatjs/issues/7496)) ([9cdcee7](https://github.com/formatjs/formatjs/commit/9cdcee791cd2a6b97cea7d48ded297da608ddd9d)) - **deps:** update formatjs monorepo ([#&#8203;7468](https://github.com/formatjs/formatjs/issues/7468)) ([de413f4](https://github.com/formatjs/formatjs/commit/de413f422518099660d9444d9f3515d4d1c4397f)) ### [`v12.1.2`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.2): react-intl: 12.1.2 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.1...react-intl@12.1.2) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/icu-messageformat-parser](https://github.com/formatjs/icu-messageformat-parser) bumped to 3.5.20 - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.1.2 - intl-messageformat bumped to 12.1.2 ### [`v12.1.1`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.1): react-intl: 12.1.1 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.1.0...react-intl@12.1.1) ##### Bug Fixes - **eslint-plugin-formatjs:** generate lint-compatible empty message contracts ([#&#8203;7442](https://github.com/formatjs/formatjs/issues/7442)) ([799efaf](https://github.com/formatjs/formatjs/commit/799efafaebbd242cca5bf8f421e40c416dc89276)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.1.1 - intl-messageformat bumped to 12.1.1 ### [`v12.1.0`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.1.0): react-intl: 12.1.0 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.0.2...react-intl@12.1.0) ##### Features - **[@&#8203;formatjs/intl](https://github.com/formatjs/intl):** support opt-in branded message text ([#&#8203;7436](https://github.com/formatjs/formatjs/issues/7436)) ([152ee1c](https://github.com/formatjs/formatjs/commit/152ee1cd52b49fb7d7ba98cb5464ab28b1b8ccfa)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.1.0 - intl-messageformat bumped to 12.1.0 ### [`v12.0.2`](https://github.com/formatjs/formatjs/releases/tag/react-intl%4012.0.2): react-intl: 12.0.2 [Compare Source](https://github.com/formatjs/formatjs/compare/react-intl@12.0.1...react-intl@12.0.2) ##### Bug Fixes - default message helpers to empty ICU contracts ([#&#8203;7428](https://github.com/formatjs/formatjs/issues/7428)) ([7bd3c8b](https://github.com/formatjs/formatjs/commit/7bd3c8bb3c4fc0cf298c3f05c6d331910caa9da7)) ##### Dependencies - The following workspace dependencies were updated - dependencies - [@&#8203;formatjs/intl](https://github.com/formatjs/intl) bumped to 6.0.1 </details> <details> <summary>styled-components/styled-components (styled-components)</summary> ### [`v6.6.0`](https://github.com/styled-components/styled-components/releases/tag/styled-components%406.6.0) [Compare Source](https://github.com/styled-components/styled-components/compare/styled-components@6.5.3...styled-components@6.6.0) ##### Minor Changes - [`7ce6aea`](https://github.com/styled-components/styled-components/commit/7ce6aea): Added a `StyledComponent<Target, Props>` type for annotating explicitly-typed styled component exports. Packages that emit their own declaration files, including any project using `isolatedDeclarations`, must annotate every exported styled component, and there was no public type for it: consumers reached into internal paths or hand-assembled one that dropped members like a wrapped component's hoisted statics. `StyledComponent` is exported from the web and native entries. Name the target and props as you passed them to `styled`: ```tsx import styled, { type StyledComponent } from 'styled-components'; export const Card: StyledComponent<'div', { $active?: boolean }> = styled.div<{ $active?: boolean; }>`...`; export const CloseButton: StyledComponent<typeof IconButton> = styled(IconButton)`...`; ``` It resolves to the exact type `styled(Target)<Props>` produces, so the annotation is not lossy. ##### Patch Changes - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed `attrs` no longer applying its value when a prop was explicitly passed as `undefined` (the 6.3.12 to 6.5.x behavior). `styled.button.attrs(({ type = 'button', ...rest }) => ({ type, ...rest }))` rendered without `type="button"` when the caller passed `type={undefined}`, and an object-form default such as `.attrs({ type: 'button' })` was lost the same way, including through a wrapper component that spreads its own props over the styled component. `attrs` now always wins for the keys it returns, matching every other case where a prop is passed alongside `attrs`. Also fixed: a prop passed explicitly as `undefined` (and not overridden by `attrs`) is now forwarded to a wrapped component so that component can fall back to its own default, the pattern MUI's `ButtonBase` relies on (for example `<Root role="button" {...props} />`). Wrapped components have dropped this prop entirely since v6.0, so a component that checks `'role' in props` or merges `{...defaults, ...props}` to detect an explicitly-passed prop may see and behave differently now that the key is present again. This only applies when wrapping another component; a DOM tag such as `styled.div` still drops the `undefined` prop entirely, since browsers have no notion of an "undefined" attribute. If you were relying on an explicit `undefined` to clear an `attrs` default, use the function form and check for the prop's presence instead: ```js styled.a.attrs(props => ('rel' in props ? {} : { rel: 'noopener' }))``; ``` Passing `rel={undefined}` now renders no `rel` attribute, and omitting the prop renders `rel="noopener"`. React Native already forwarded an explicit `undefined` prop to a wrapped component; it now also matches web in never forwarding an `undefined` that `attrs` itself produced. - [`209317c`](https://github.com/styled-components/styled-components/commit/209317c): Rendering styled-components on the server with the edge runtime (for example `export const runtime = 'edge'` in a Next.js route) now fails with a clear message that names the fix: use the Node.js runtime for routes that render styled-components. Previously the same setup ended in an obscure crash, either at `next build` or on the first request. - [`3de03c2`](https://github.com/styled-components/styled-components/commit/3de03c2): Type-checking is faster when you annotate exported styled components with an explicit type, the pattern that packages emitting their own declaration files (including any project using `isolatedDeclarations`) rely on. The improvement is largest in codebases that annotate many components built on intrinsic tags such as `styled.div`, `styled.span`, and `styled.button`, and wrappers over polymorphic components whose props are a union. Nothing about the styled component's type changes for your code: props, `defaultProps`, `propTypes`, ref forwarding, and `as` polymorphism all behave exactly as before. This is purely a type-check speedup. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed a typo in the `useTheme` error message's example code (a misspelled component name in error 18), so the copy-pasted example compiles as written. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed global styles from `createGlobalStyle` disappearing in React Server Components: a global style rendered in a loading state (a React `<Suspense>` fallback) and again once the real content streamed in could vanish entirely once the fallback was replaced. The same loss could happen across a client-side navigation when a global style was rendered by both a layout and one of its pages, and the layout's copy never re-rendered. Each server-rendered instance of a global style now carries its own styles, so a global style shown in more than one place in a request always survives, whether the page reveals streamed content or the user navigates to a sibling route. - [`52c5f6e`](https://github.com/styled-components/styled-components/commit/52c5f6e): Fixed a crash ("Rendered fewer hooks than expected") and a related stale-style bug for components that call a React hook, or read any value outside their props and theme, from inside a style interpolation. This affected `@mui/styled-engine-sc` with MUI X DataGrid, which calls hooks within an interpolation, and was a regression introduced in 6.4.0. Style interpolations now run on every render, so a hook called inside one runs consistently and a value read inside one always reflects its current state. If a component re-renders often with unchanged props and its interpolations are expensive, wrap it in `React.memo` to skip those re-renders. That is the right place to bail out, because only the calling code knows the full set of inputs its styles depend on. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed `//` JavaScript-style line comments in React Native style declarations. Only `/* */` block comments were recognized before; a `//` comment left in a template literal was parsed as part of the surrounding CSS, which could drop or corrupt the styles that followed it on the same line. Line comments are now stripped the same way block comments already were, while a URL used as a raw value (for example `url(http://example.com/image.png)` or an unquoted `https://` value in a custom property) is left untouched. - [`1c0e309`](https://github.com/styled-components/styled-components/commit/1c0e309): Fixed styles disappearing from a server-rendered component when it is revealed from behind a React `<Suspense>` boundary, such as a streaming Next.js route (including `cacheComponents`). A component shown first in a Suspense fallback and then in the resolved content kept its class name but lost its CSS, because the rule had been emitted only inside the fallback that React discards on reveal. Each server-rendered instance now carries its own inline `<style>`, so its styles always travel with it and survive the boundary. The data React sends for server components includes each distinct style once on React 19, however many instances repeat it. In the HTML, nearby duplicates compress away almost for free under gzip, but gzip can only look back about 32 KB, so once repeats are farther apart on the page each one costs roughly its own compressed size; brotli's much larger window keeps it cheap regardless of distance. Only a very large repeated list (thousands of instances of one component on a single page) is worth restyling from a single parent element, and a development-only warning points that out if it happens. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): styled-components now installs the stylis type declarations its own published types rely on. The shipped declarations reference types from `stylis` (the `stylisPlugins` option and `stylisPluginRSC`), and `stylis` ships no types of its own. With `skipLibCheck` turned off, a project that had not installed `@types/stylis` itself could fail to type-check with an error inside styled-components' declarations. Nothing changes at runtime. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed the shipped types failing to compile, with `skipLibCheck` turned off, against `@types/react` 16, 17, and 18.2.6 through 18.2.11. Those versions don't declare the `<search>` HTML element, and styled-components' types assumed they did. The published types now compile on every supported `@types/react`. `styled.search` is present in the types on every version, and accepts the same props it did before, so no existing code stops compiling. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Fixed an error inside styled-components' own type declarations, with `skipLibCheck` turned off, for projects using React 16 or 17 type packages or without `@types/react-dom` installed. The `ServerStyleSheet` streaming API's types referenced a type that only `@types/react-dom` 18 and later provide. `interleaveWithNodeStream` still accepts the result of `renderToPipeableStream` and Node readable streams exactly as before. - [`7afbd11`](https://github.com/styled-components/styled-components/commit/7afbd11): Added a development-only warning for when the server and the browser are running different versions of styled-components. Class names are derived in part from the library's own version, so a mismatch made every server-rendered class name silently fail to match on the client, with no hint as to why styles disappeared or hydration broke. The warning names both versions and points at `npm ls styled-components` to find the duplicate. A page that intentionally hosts more than one app, each on its own styled-components version (for example a micro-frontend setup), can ignore it. It is stripped from production builds. </details> <details> <summary>ladjs/supertest (supertest)</summary> ### [`v7.3.1`](https://github.com/forwardemail/supertest/releases/tag/v7.3.1) [Compare Source](https://github.com/ladjs/supertest/compare/v7.3.0...v7.3.1) - Merge pull request [#&#8203;907](https://github.com/ladjs/supertest/issues/907) from JH8459/fix/ephemeral-loopback-bind [`884cd26`](https://github.com/ladjs/supertest/commit/884cd26) - fix: bind ephemeral server to the loopback address it connects to [`e74a1e0`](https://github.com/ladjs/supertest/commit/e74a1e0) *** ### [`v7.3.0`](https://github.com/forwardemail/supertest/releases/tag/v7.3.0) [Compare Source](https://github.com/ladjs/supertest/compare/v7.2.2...v7.3.0) - fix: stabilize ephemeral server requests and assertions [`71dc5fb`](https://github.com/ladjs/supertest/commit/71dc5fb) - Merge pull request [#&#8203;883](https://github.com/ladjs/supertest/issues/883) from forwardemail/dependabot/npm_and_yarn/multi-acd8535d99 [`3b5ba5c`](https://github.com/ladjs/supertest/commit/3b5ba5c) - Merge pull request [#&#8203;886](https://github.com/ladjs/supertest/issues/886) from forwardemail/dependabot/npm_and_yarn/picomatch-2.3.2 [`c3419b2`](https://github.com/ladjs/supertest/commit/c3419b2) - Merge pull request [#&#8203;887](https://github.com/ladjs/supertest/issues/887) from forwardemail/dependabot/npm_and_yarn/lodash-4.18.1 [`7e409db`](https://github.com/ladjs/supertest/commit/7e409db) - Merge pull request [#&#8203;898](https://github.com/ladjs/supertest/issues/898) from forwardemail/dependabot/npm_and_yarn/brace-expansion-1.1.21 [`b55a7f9`](https://github.com/ladjs/supertest/commit/b55a7f9) - Merge pull request [#&#8203;899](https://github.com/ladjs/supertest/issues/899) from forwardemail/dependabot/npm_and_yarn/browserslist-4.29.0 [`7a5deaa`](https://github.com/ladjs/supertest/commit/7a5deaa) - Merge pull request [#&#8203;900](https://github.com/ladjs/supertest/issues/900) from forwardemail/dependabot/npm_and_yarn/fast-uri-3.1.8 [`a75f6ee`](https://github.com/ladjs/supertest/commit/a75f6ee) - Merge pull request [#&#8203;901](https://github.com/ladjs/supertest/issues/901) from forwardemail/dependabot/npm_and_yarn/js-yaml-3.15.2 [`c2cb33e`](https://github.com/ladjs/supertest/commit/c2cb33e) - Merge pull request [#&#8203;896](https://github.com/ladjs/supertest/issues/896) from pnookala-godaddy/codex/ephemeral-loopback-bind [`7fb34e7`](https://github.com/ladjs/supertest/commit/7fb34e7) - chore(deps-dev): bump js-yaml from 3.14.2 to 3.15.2 [`c357584`](https://github.com/ladjs/supertest/commit/c357584) - chore(deps-dev): bump browserslist from 4.25.1 to 4.29.0 [`2a01b57`](https://github.com/ladjs/supertest/commit/2a01b57) - chore(deps-dev): bump fast-uri from 3.0.6 to 3.1.8 [`343394d`](https://github.com/ladjs/supertest/commit/343394d) - chore(deps-dev): bump brace-expansion from 1.1.12 to 1.1.21 [`6b203e9`](https://github.com/ladjs/supertest/commit/6b203e9) - Merge pull request [#&#8203;881](https://github.com/ladjs/supertest/issues/881) from forwardemail/dependabot/npm_and_yarn/qs-6.14.2 [`d40ca7e`](https://github.com/ladjs/supertest/commit/d40ca7e) - fix: match ephemeral server address family [`b6f5995`](https://github.com/ladjs/supertest/commit/b6f5995) - chore(deps-dev): bump lodash from 4.17.21 to 4.18.1 [`81766ca`](https://github.com/ladjs/supertest/commit/81766ca) - chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 [`985ac7c`](https://github.com/ladjs/supertest/commit/985ac7c) - chore(deps): bump minimatch [`58baa5f`](https://github.com/ladjs/supertest/commit/58baa5f) - chore(deps): bump qs from 6.14.1 to 6.14.2 [`c406e82`](https://github.com/ladjs/supertest/commit/c406e82) *** </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43NC4xIiwidXBkYXRlZEluVmVyIjoiNDQuMTk4LjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsiYXV0b21hdGVkIiwiZGVwZW5kZW5jaWVzIl19-->
renovate[bot] scheduled this pull request to auto merge when all checks succeed 2026-09-10 04:09:12 +04:00
renovate[bot] force-pushed renovate/all-digest from 67c0f13ee1 to 0a345a5410 2026-09-11 04:09:12 +04:00 Compare
Valentin Popov was assigned by renovate[bot] 2026-09-12 04:20:40 +04:00
renovate[bot] force-pushed renovate/all-digest from 0a345a5410 to f0c48c01af 2026-09-13 04:07:51 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from f0c48c01af to 62ad528ac3 2026-09-14 04:10:07 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 62ad528ac3 to d12fe34f9e 2026-09-16 04:08:50 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from d12fe34f9e to 761fc49922 2026-09-17 04:08:58 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 761fc49922 to 115e335ccf 2026-09-18 04:10:03 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 115e335ccf to 3bd0e1d452 2026-09-19 04:07:25 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 3bd0e1d452 to 40ff4224ce 2026-09-20 04:11:22 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 40ff4224ce to 12dbef8163 2026-09-23 04:18:56 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 12dbef8163 to 57aa2265dc 2026-09-24 04:09:35 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 57aa2265dc to e130c795cf 2026-09-25 04:16:59 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from e130c795cf to b14398d55a 2026-09-26 04:10:01 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from b14398d55a to 2eeca9f921 2026-09-28 04:21:58 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 2eeca9f921 to 534369c11c 2026-09-29 04:25:46 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 534369c11c to f06264f84b 2026-09-30 04:10:28 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from f06264f84b to 41e2c84fd9 2026-10-01 04:09:22 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 41e2c84fd9 to af62c9f628 2026-10-02 04:18:39 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from af62c9f628 to 6f0615f07c 2026-10-03 04:04:06 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 6f0615f07c to 0f3042947d 2026-10-05 04:05:04 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 0f3042947d to d75677fa67 2026-10-06 04:07:37 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from d75677fa67 to aafe4d27b3 2026-10-07 04:09:14 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from aafe4d27b3 to 138275a44f 2026-10-08 04:09:38 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 138275a44f to d27b1515d0 2026-10-09 04:11:20 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from d27b1515d0 to 1f36ac48f2 2026-10-10 04:14:36 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 1f36ac48f2 to 2b6ce58fae 2026-10-11 04:18:57 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 2b6ce58fae to 673408baab 2026-10-12 04:08:48 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 673408baab to c845941a5f 2026-10-13 04:10:41 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from c845941a5f to eee83c01dc 2026-10-14 04:02:59 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from eee83c01dc to 2b478f756c 2026-10-15 04:04:13 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 2b478f756c to 98805d4b94 2026-10-16 04:04:27 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 98805d4b94 to 0712730d24 2026-10-17 04:04:24 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 0712730d24 to 7fc6ea6f18 2026-10-18 04:03:37 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 7fc6ea6f18 to 4b17fa9aca 2026-10-19 04:03:42 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 4b17fa9aca to 0b709bb1d9 2026-10-20 04:03:14 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 0b709bb1d9 to 1b4aeb14dc 2026-10-21 04:04:24 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 1b4aeb14dc to f75257a231 2026-10-22 04:04:14 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from f75257a231 to f9e4e9df5a 2026-10-23 04:04:20 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from f9e4e9df5a to d3917b43b6 2026-10-24 04:04:19 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from d3917b43b6 to 8d3c12cea4 2026-10-26 04:03:01 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 8d3c12cea4 to 3f066da2e9 2026-10-28 04:06:41 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 3f066da2e9 to f4d32f55dc 2026-10-29 04:05:03 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from f4d32f55dc to 71f3c79255 2026-10-30 04:08:19 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 71f3c79255 to 57f81bb03c 2026-10-31 04:05:34 +04:00 Compare
renovate[bot] force-pushed renovate/all-digest from 57f81bb03c to 15068b7ba9 2026-11-01 04:04:28 +04:00 Compare
renovate[bot] added 1 commit 2026-11-02 04:05:29 +04:00
Update all digest updates
Test / Basic (pull_request) Failing after 1m0s
1f516f6064
renovate[bot] force-pushed renovate/all-digest from 15068b7ba9 to 1f516f6064 2026-11-02 04:05:29 +04:00 Compare
Some required checks failed
Test / Basic (pull_request) Failing after 1m0s
Required
Details
Some required checks were not successful.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all-digest:renovate/all-digest
git checkout renovate/all-digest
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: valentineus/strapi-plugin-checkbox-list#105