This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update |
|---|---|---|---|---|---|
| [@astrojs/check](https://github.com/withastro/astro/tree/main/packages/language-tools/astro-check) ([source](https://github.com/withastro/astro/tree/HEAD/packages/language-tools/astro-check)) | [`0.9.11` → `0.9.12`](https://renovatebot.com/diffs/npm/@astrojs%2fcheck/0.9.11/0.9.12) |  |  | devDependencies | patch |
| [@astrojs/svelte](https://docs.astro.build/en/guides/integrations-guide/svelte/) ([source](https://github.com/withastro/astro/tree/HEAD/packages/integrations/svelte)) | [`9.1.0` → `9.1.1`](https://renovatebot.com/diffs/npm/@astrojs%2fsvelte/9.1.0/9.1.1) |  |  | dependencies | patch |
| [@medusajs/admin-sdk](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/admin/admin-sdk)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2fadmin-sdk/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@medusajs/cli](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/cli/medusa-cli)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2fcli/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@medusajs/framework](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/core/framework)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2fframework/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@medusajs/js-sdk](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/core/js-sdk)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2fjs-sdk/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@medusajs/medusa](https://medusajs.com) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/medusa)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2fmedusa/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@medusajs/test-utils](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/medusa-test-utils)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2ftest-utils/2.21.2/2.22.1) |  |  | devDependencies | minor |
| [@medusajs/types](https://github.com/medusajs/medusa) ([source](https://github.com/medusajs/medusa/tree/HEAD/packages/core/types)) | [`2.21.2` → `2.22.1`](https://renovatebot.com/diffs/npm/@medusajs%2ftypes/2.21.2/2.22.1) |  |  | dependencies | minor |
| [@swc/core](https://swc.rs) ([source](https://github.com/swc-project/swc/tree/HEAD/packages/core)) | [`1.16.18` → `1.16.20`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.16.18/1.16.20) |  |  | devDependencies | patch |
| [amir20/dozzle](https://github.com/amir20/dozzle) | `v11.3.4` → `v11.3.5` |  |  | | patch |
| [astro](https://astro.build) ([source](https://github.com/withastro/astro/tree/HEAD/packages/astro)) | [`7.4.1` → `7.4.2`](https://renovatebot.com/diffs/npm/astro/7.4.1/7.4.2) |  |  | dependencies | patch |
| [axllent/mailpit](https://mailpit.axllent.org) ([source](https://github.com/axllent/mailpit)) | `v1.31.6` → `v1.32.0` |  |  | | minor |
| [bits-ui](https://github.com/huntabyte/bits-ui) | [`2.19.5` → `2.20.2`](https://renovatebot.com/diffs/npm/bits-ui/2.19.5/2.20.2) |  |  | dependencies | minor |
| [chrislusf/seaweedfs](https://github.com/seaweedfs/seaweedfs) | `4.48` → `4.50` |  |  | | minor |
| [docker/login-action](https://github.com/docker/login-action) | `v4.6.0` → `v4.7.0` |  |  | action | minor |
| [henrygd/beszel](https://github.com/henrygd/beszel) | `0.21.0` → `0.21.1` |  |  | | patch |
| [henrygd/beszel-agent](https://github.com/henrygd/beszel) | `0.21.0` → `0.21.1` |  |  | | patch |
| louislam/uptime-kuma | `2.5.6` → `2.5.7` |  |  | | patch |
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | [`24.22.0` → `24.22.1`](https://renovatebot.com/diffs/npm/node/v24.22.0/v24.22.1) |  |  | engines | patch |
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | `24.22.0` → `24.22.1` |  |  | | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-trixie` → `24.22.1-trixie` |  |  | container | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-alpine3.24` → `24.22.1-alpine3.24` |  |  | final | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-alpine3.24` → `24.22.1-alpine3.24` |  |  | stage | patch |
| [nodemailer](https://nodemailer.com/) ([source](https://github.com/nodemailer/nodemailer)) | [`10.1.7` → `10.2.1`](https://renovatebot.com/diffs/npm/nodemailer/10.1.7/10.2.1) |  |  | devDependencies | minor |
| [pnpm](https://pnpm.io) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm)) | [`12.14.0` → `12.15.0`](https://renovatebot.com/diffs/npm/pnpm/12.14.0/12.15.0) |  |  | packageManager | minor |
| [pnpm](https://pnpm.io) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm)) | [`12.14.0` → `12.15.0`](https://renovatebot.com/diffs/npm/pnpm/12.14.0/12.15.0) |  |  | engines | minor |
| [prettier-plugin-astro](https://github.com/withastro/prettier-plugin-astro) | [`1.1.1` → `1.1.2`](https://renovatebot.com/diffs/npm/prettier-plugin-astro/1.1.1/1.1.2) |  |  | dependencies | patch |
| [renovate/renovate](https://renovatebot.com) ([source](https://github.com/renovatebot/renovate)) | [`44.172.2` → `44.181.9`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.172.2&to=44.181.9) |  |  | container | minor |
| stripe/stripe-cli | `v1.54.1` → `v1.55.1` |  |  | | minor |
---
### Release Notes
<details>
<summary>withastro/astro (@​astrojs/check)</summary>
### [`v0.9.12`](https://github.com/withastro/astro/blob/HEAD/packages/language-tools/astro-check/CHANGELOG.md#0912)
[Compare Source](https://github.com/withastro/astro/compare/@astrojs/check@0.9.11...@astrojs/check@0.9.12)
##### Patch Changes
- [#​18455](https://github.com/withastro/astro/pull/18455) [`7af66fc`](https://github.com/withastro/astro/commit/7af66fc785d85b1df1f98e7123a52b2306250985) Thanks [@​astro-factory](https://github.com/apps/astro-factory)! - Fixes the `astro-check` binary ignoring its first two command-line arguments, so flags such as `--help`, `--root`, `--watch`, and `--tsconfig` are respected again. If your scripts padded the arguments to work around this (for example, `astro-check -- -- --tsconfig ./tsconfig.app.json`), remove the padding.
- Updated dependencies \[[`044148d`](https://github.com/withastro/astro/commit/044148d5cfbc90e0277b3205a52ec73bc452bb7e)]:
- [@​astrojs/language-server](https://github.com/astrojs/language-server)@2.17.3
</details>
<details>
<summary>withastro/astro (@​astrojs/svelte)</summary>
### [`v9.1.1`](https://github.com/withastro/astro/blob/HEAD/packages/integrations/svelte/CHANGELOG.md#911)
[Compare Source](https://github.com/withastro/astro/compare/@astrojs/svelte@9.1.0...@astrojs/svelte@9.1.1)
##### Patch Changes
- [#​18475](https://github.com/withastro/astro/pull/18475) [`cf27e70`](https://github.com/withastro/astro/commit/cf27e70a9057ce29ade2a8a843bd9275a696e9ab) Thanks [@​ematipico](https://github.com/ematipico)! - Bumps the minimum supported Node.js version to 22.23.4, which includes the fixes from the [October 2026 Node.js security releases](https://nodejs.org/en/blog/vulnerability/october-2026-security-releases)
This is a patch release because the [Node.js support and upgrade policy](https://docs.astro.build/en/upgrade-astro/#nodejs-support-and-upgrade-policies) allows the Core team to raise the minimum Maintenance LTS version in a patch release when a disclosed and fixed Node.js security flaw affects Astro.
</details>
<details>
<summary>medusajs/medusa (@​medusajs/admin-sdk)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/admin/admin-sdk/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- Updated dependencies \[]:
- [@​medusajs/admin-shared](https://github.com/medusajs/admin-shared)@2.22.1
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/admin/admin-sdk/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Patch Changes
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- Updated dependencies \[[`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936)]:
- [@​medusajs/admin-shared](https://github.com/medusajs/admin-shared)@2.22.0
</details>
<details>
<summary>medusajs/medusa (@​medusajs/cli)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/cli/medusa-cli/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- Updated dependencies \[[`3a3207347379b065142895fb0740442fea5f4033`](https://github.com/medusajs/medusa/commit/3a3207347379b065142895fb0740442fea5f4033), [`d731a694cdb83c158fb78b5d85ecba8909150945`](https://github.com/medusajs/medusa/commit/d731a694cdb83c158fb78b5d85ecba8909150945), [`ccee953690a41e14e7520e7e2d97272f25d1ff69`](https://github.com/medusajs/medusa/commit/ccee953690a41e14e7520e7e2d97272f25d1ff69), [`c959d5e3e7d4b482d0784eef67ef8ef766442d5e`](https://github.com/medusajs/medusa/commit/c959d5e3e7d4b482d0784eef67ef8ef766442d5e), [`3a4fa0cc36a82dba9481e87c20e423cb65c2ee91`](https://github.com/medusajs/medusa/commit/3a4fa0cc36a82dba9481e87c20e423cb65c2ee91)]:
- [@​medusajs/utils](https://github.com/medusajs/utils)@2.22.1
- [@​medusajs/deps](https://github.com/medusajs/deps)@2.22.1
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.1
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/cli/medusa-cli/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- Updated dependencies \[[`f104453af2c5b235dfdbdaa271c9f8a18195de69`](https://github.com/medusajs/medusa/commit/f104453af2c5b235dfdbdaa271c9f8a18195de69), [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a), [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2), [`dab83ec94a8d60446e15eb982617b7c1cc7589a2`](https://github.com/medusajs/medusa/commit/dab83ec94a8d60446e15eb982617b7c1cc7589a2), [`e6510b1f51170834f136e927c3d30e463da32750`](https://github.com/medusajs/medusa/commit/e6510b1f51170834f136e927c3d30e463da32750), [`fdac7de4c3268ccf0f86c47c140662d84c141832`](https://github.com/medusajs/medusa/commit/fdac7de4c3268ccf0f86c47c140662d84c141832), [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64), [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a), [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936)]:
- [@​medusajs/utils](https://github.com/medusajs/utils)@2.22.0
- [@​medusajs/deps](https://github.com/medusajs/deps)@2.22.0
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0
</details>
<details>
<summary>medusajs/medusa (@​medusajs/framework)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/framework/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- Updated dependencies \[[`3a3207347379b065142895fb0740442fea5f4033`](https://github.com/medusajs/medusa/commit/3a3207347379b065142895fb0740442fea5f4033), [`d731a694cdb83c158fb78b5d85ecba8909150945`](https://github.com/medusajs/medusa/commit/d731a694cdb83c158fb78b5d85ecba8909150945), [`ccee953690a41e14e7520e7e2d97272f25d1ff69`](https://github.com/medusajs/medusa/commit/ccee953690a41e14e7520e7e2d97272f25d1ff69), [`081bcd2ef57e3d8e946ded205f2bdbd99c2834ba`](https://github.com/medusajs/medusa/commit/081bcd2ef57e3d8e946ded205f2bdbd99c2834ba), [`c959d5e3e7d4b482d0784eef67ef8ef766442d5e`](https://github.com/medusajs/medusa/commit/c959d5e3e7d4b482d0784eef67ef8ef766442d5e), [`3a4fa0cc36a82dba9481e87c20e423cb65c2ee91`](https://github.com/medusajs/medusa/commit/3a4fa0cc36a82dba9481e87c20e423cb65c2ee91), [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091)]:
- [@​medusajs/utils](https://github.com/medusajs/utils)@2.22.1
- [@​medusajs/types](https://github.com/medusajs/types)@2.22.1
- [@​medusajs/cli](https://github.com/medusajs/cli)@2.22.1
- [@​medusajs/modules-sdk](https://github.com/medusajs/modules-sdk)@2.22.1
- [@​medusajs/orchestration](https://github.com/medusajs/orchestration)@2.22.1
- [@​medusajs/workflows-sdk](https://github.com/medusajs/workflows-sdk)@2.22.1
- [@​medusajs/deps](https://github.com/medusajs/deps)@2.22.1
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.1
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/framework/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​17147](https://github.com/medusajs/medusa/pull/17147) [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2) Thanks [@​dependabot](https://github.com/apps/dependabot)! - chore(admin-bundler, framework, medusa, deps): dependency updates
- [#​16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@​NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- Updated dependencies \[[`f104453af2c5b235dfdbdaa271c9f8a18195de69`](https://github.com/medusajs/medusa/commit/f104453af2c5b235dfdbdaa271c9f8a18195de69), [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a), [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541), [`09c7800e9c53ebc654fedcd593b8febde8fc5142`](undefined), [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2), [`396aa3f510be91ec10b7cc85ed0d674a3f3a5294`](undefined), [`dab83ec94a8d60446e15eb982617b7c1cc7589a2`](https://github.com/medusajs/medusa/commit/dab83ec94a8d60446e15eb982617b7c1cc7589a2), [`e6510b1f51170834f136e927c3d30e463da32750`](https://github.com/medusajs/medusa/commit/e6510b1f51170834f136e927c3d30e463da32750), [`fdac7de4c3268ccf0f86c47c140662d84c141832`](https://github.com/medusajs/medusa/commit/fdac7de4c3268ccf0f86c47c140662d84c141832), [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64), [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a), [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936), [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93), [`0b97a96ea0d32ff3f4b18dbeeeeba9e763600a15`](undefined)]:
- [@​medusajs/utils](https://github.com/medusajs/utils)@2.22.0
- [@​medusajs/cli](https://github.com/medusajs/cli)@2.22.0
- [@​medusajs/deps](https://github.com/medusajs/deps)@2.22.0
- [@​medusajs/modules-sdk](https://github.com/medusajs/modules-sdk)@2.22.0
- [@​medusajs/orchestration](https://github.com/medusajs/orchestration)@2.22.0
- [@​medusajs/types](https://github.com/medusajs/types)@2.22.0
- [@​medusajs/workflows-sdk](https://github.com/medusajs/workflows-sdk)@2.22.0
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0
</details>
<details>
<summary>medusajs/medusa (@​medusajs/js-sdk)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/js-sdk/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- [#​17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@​sradevski](https://github.com/sradevski)! - feat(medusa,core-flows,types,js-sdk): add store route to update a payment session's client data
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/js-sdk/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​17157](https://github.com/medusajs/medusa/pull/17157) [`c522ce6c070a85ed735fa0e1ea281b7641935a96`](https://github.com/medusajs/medusa/commit/c522ce6c070a85ed735fa0e1ea281b7641935a96) Thanks [@​sarmah-rup](https://github.com/sarmah-rup)! - fix(js-sdk): don't throw a ReferenceError when `setLocale` is called outside the browser
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- [#​16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@​shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature
</details>
<details>
<summary>medusajs/medusa (@​medusajs/medusa)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/medusa/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- [#​17442](https://github.com/medusajs/medusa/pull/17442) [`ea2d48190febf36389aa66242247c180f9f48212`](https://github.com/medusajs/medusa/commit/ea2d48190febf36389aa66242247c180f9f48212) Thanks [@​medusa-os-bot](https://github.com/apps/medusa-os-bot)! - fix(medusa): respond with 404 on /admin/index routes when the index module is off
- [#​17449](https://github.com/medusajs/medusa/pull/17449) [`52f4c751d2277ab704c1a184c7971a6684e11a74`](https://github.com/medusajs/medusa/commit/52f4c751d2277ab704c1a184c7971a6684e11a74) Thanks [@​medusa-os-bot](https://github.com/apps/medusa-os-bot)! - fix(medusa): reject deleting a variant through a product it doesn't belong to
- [#​17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@​sradevski](https://github.com/sradevski)! - feat(medusa,core-flows,types,js-sdk): add store route to update a payment session's client data
- Updated dependencies \[[`64d564119d212b439e7f6192f71ec48ffbe6ff93`](https://github.com/medusajs/medusa/commit/64d564119d212b439e7f6192f71ec48ffbe6ff93), [`9e1b2ae94330588cd172a71307bc0874fd8228cc`](https://github.com/medusajs/medusa/commit/9e1b2ae94330588cd172a71307bc0874fd8228cc), [`0a4b00585cd7d9c7d99a11c3502ca9da0cdd75aa`](https://github.com/medusajs/medusa/commit/0a4b00585cd7d9c7d99a11c3502ca9da0cdd75aa), [`67aa48d6b1bbac622d261808b4351521fad8cf42`](https://github.com/medusajs/medusa/commit/67aa48d6b1bbac622d261808b4351521fad8cf42), [`afa4b15c1653d045fde6c2371395ce5df2987822`](https://github.com/medusajs/medusa/commit/afa4b15c1653d045fde6c2371395ce5df2987822), [`5aebc3e4a163c0e401d8794b2e961021eea5aea0`](https://github.com/medusajs/medusa/commit/5aebc3e4a163c0e401d8794b2e961021eea5aea0), [`7ce874c0ce4df5d9942130a28067ced8b23b126d`](https://github.com/medusajs/medusa/commit/7ce874c0ce4df5d9942130a28067ced8b23b126d), [`a0b1fffe7082ee326f16f50a1e2bfc978032a2bf`](https://github.com/medusajs/medusa/commit/a0b1fffe7082ee326f16f50a1e2bfc978032a2bf), [`9fd5fda64ac453b986cbf6480e05b6429efe335d`](https://github.com/medusajs/medusa/commit/9fd5fda64ac453b986cbf6480e05b6429efe335d), [`85d1481f546e0a7ca34ab2fc888606cfa5772817`](https://github.com/medusajs/medusa/commit/85d1481f546e0a7ca34ab2fc888606cfa5772817), [`f7d822b12fcb09120b5c8392f9a5ad10bfcdeb22`](https://github.com/medusajs/medusa/commit/f7d822b12fcb09120b5c8392f9a5ad10bfcdeb22), [`0b533907ac11d9cb3a80355ae7dee6ac51cba150`](https://github.com/medusajs/medusa/commit/0b533907ac11d9cb3a80355ae7dee6ac51cba150), [`b07a970d9f1ff305b5421cc5e27436d1f5624a8a`](https://github.com/medusajs/medusa/commit/b07a970d9f1ff305b5421cc5e27436d1f5624a8a), [`4e723121b0f9e3792b61306af5cbf2ebd9e84d20`](https://github.com/medusajs/medusa/commit/4e723121b0f9e3792b61306af5cbf2ebd9e84d20), [`347a34dc5a193ac2117cbbda6956c3932f40e693`](https://github.com/medusajs/medusa/commit/347a34dc5a193ac2117cbbda6956c3932f40e693), [`c959d5e3e7d4b482d0784eef67ef8ef766442d5e`](https://github.com/medusajs/medusa/commit/c959d5e3e7d4b482d0784eef67ef8ef766442d5e), [`879fb81983bc33ae3901a9aecba63dfebe040c43`](https://github.com/medusajs/medusa/commit/879fb81983bc33ae3901a9aecba63dfebe040c43), [`99bcfeb5ee60b9e2df56d3d2d38e82470eaab68d`](https://github.com/medusajs/medusa/commit/99bcfeb5ee60b9e2df56d3d2d38e82470eaab68d), [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091), [`4a75f02fbadb204f390bd5989dd0302f8a3f6774`](https://github.com/medusajs/medusa/commit/4a75f02fbadb204f390bd5989dd0302f8a3f6774), [`e07eb2b001fa52621e3176efb36fdf53863d4a80`](https://github.com/medusajs/medusa/commit/e07eb2b001fa52621e3176efb36fdf53863d4a80)]:
- [@​medusajs/promotion](https://github.com/medusajs/promotion)@2.22.1
- [@​medusajs/caching](https://github.com/medusajs/caching)@2.22.1
- [@​medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.1
- [@​medusajs/locking](https://github.com/medusajs/locking)@2.22.1
- [@​medusajs/locking-redis](https://github.com/medusajs/locking-redis)@2.22.1
- [@​medusajs/translation](https://github.com/medusajs/translation)@2.22.1
- [@​medusajs/index](https://github.com/medusajs/index)@2.22.1
- [@​medusajs/pricing](https://github.com/medusajs/pricing)@2.22.1
- [@​medusajs/order](https://github.com/medusajs/order)@2.22.1
- [@​medusajs/payment](https://github.com/medusajs/payment)@2.22.1
- [@​medusajs/search-postgres](https://github.com/medusajs/search-postgres)@2.22.1
- [@​medusajs/framework](https://github.com/medusajs/framework)@2.22.1
- [@​medusajs/event-bus-redis](https://github.com/medusajs/event-bus-redis)@2.22.1
- [@​medusajs/admin-bundler](https://github.com/medusajs/admin-bundler)@2.22.1
- [@​medusajs/draft-order](https://github.com/medusajs/draft-order)@2.22.1
- [@​medusajs/analytics](https://github.com/medusajs/analytics)@2.22.1
- [@​medusajs/api-key](https://github.com/medusajs/api-key)@2.22.1
- [@​medusajs/auth](https://github.com/medusajs/auth)@2.22.1
- [@​medusajs/cart](https://github.com/medusajs/cart)@2.22.1
- [@​medusajs/currency](https://github.com/medusajs/currency)@2.22.1
- [@​medusajs/customer](https://github.com/medusajs/customer)@2.22.1
- [@​medusajs/file](https://github.com/medusajs/file)@2.22.1
- [@​medusajs/fulfillment](https://github.com/medusajs/fulfillment)@2.22.1
- [@​medusajs/inventory](https://github.com/medusajs/inventory)@2.22.1
- [@​medusajs/link-modules](https://github.com/medusajs/link-modules)@2.22.1
- [@​medusajs/notification](https://github.com/medusajs/notification)@2.22.1
- [@​medusajs/product](https://github.com/medusajs/product)@2.22.1
- [@​medusajs/rbac](https://github.com/medusajs/rbac)@2.22.1
- [@​medusajs/region](https://github.com/medusajs/region)@2.22.1
- [@​medusajs/sales-channel](https://github.com/medusajs/sales-channel)@2.22.1
- [@​medusajs/search](https://github.com/medusajs/search)@2.22.1
- [@​medusajs/settings](https://github.com/medusajs/settings)@2.22.1
- [@​medusajs/stock-location](https://github.com/medusajs/stock-location)@2.22.1
- [@​medusajs/store](https://github.com/medusajs/store)@2.22.1
- [@​medusajs/tax](https://github.com/medusajs/tax)@2.22.1
- [@​medusajs/user](https://github.com/medusajs/user)@2.22.1
- [@​medusajs/workflow-engine-inmemory](https://github.com/medusajs/workflow-engine-inmemory)@2.22.1
- [@​medusajs/workflow-engine-redis](https://github.com/medusajs/workflow-engine-redis)@2.22.1
- [@​medusajs/cache-inmemory](https://github.com/medusajs/cache-inmemory)@2.22.1
- [@​medusajs/cache-redis](https://github.com/medusajs/cache-redis)@2.22.1
- [@​medusajs/event-bus-local](https://github.com/medusajs/event-bus-local)@2.22.1
- [@​medusajs/analytics-local](https://github.com/medusajs/analytics-local)@2.22.1
- [@​medusajs/analytics-posthog](https://github.com/medusajs/analytics-posthog)@2.22.1
- [@​medusajs/auth-emailpass](https://github.com/medusajs/auth-emailpass)@2.22.1
- [@​medusajs/auth-github](https://github.com/medusajs/auth-github)@2.22.1
- [@​medusajs/auth-google](https://github.com/medusajs/auth-google)@2.22.1
- [@​medusajs/auth-oidc](https://github.com/medusajs/auth-oidc)@2.22.1
- [@​medusajs/caching-redis](https://github.com/medusajs/caching-redis)@2.22.1
- [@​medusajs/file-local](https://github.com/medusajs/file-local)@2.22.1
- [@​medusajs/file-s3](https://github.com/medusajs/file-s3)@2.22.1
- [@​medusajs/fulfillment-manual](https://github.com/medusajs/fulfillment-manual)@2.22.1
- [@​medusajs/locking-postgres](https://github.com/medusajs/locking-postgres)@2.22.1
- [@​medusajs/notification-local](https://github.com/medusajs/notification-local)@2.22.1
- [@​medusajs/notification-sendgrid](https://github.com/medusajs/notification-sendgrid)@2.22.1
- [@​medusajs/payment-stripe](https://github.com/medusajs/payment-stripe)@2.22.1
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.1
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/medusa/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​17035](https://github.com/medusajs/medusa/pull/17035) [`9aa921a62139888fed08aee7db1480cff0a3ee40`](https://github.com/medusajs/medusa/commit/9aa921a62139888fed08aee7db1480cff0a3ee40) Thanks [@​gautamyash](https://github.com/gautamyash)! - fix(medusa): report a failed migration script instead of exiting 0
`db:migrate` forked `db:migrate:scripts` as a child process and discarded its exit code, unlike the `db:migrate:search` call a few lines above which already checks it. A migration script that threw logged the error but the parent process still exited 0, so a CI/CD pipeline or deploy step trusting `db:migrate`'s exit code carried on as if every script had succeeded.
`db:migrate` now checks the child's exit code the same way it already does for `db:migrate:search`, and returns false (non-zero exit) when a migration script fails.
- [#​17347](https://github.com/medusajs/medusa/pull/17347) [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541) Thanks [@​medusa-agents](https://github.com/apps/medusa-agents)! - fix(medusa,types): add `http.requireActorAssociation` config to refuse logins on actor types an auth identity isn't associated with
- [#​17314](https://github.com/medusajs/medusa/pull/17314) [`06bc7ec543e823c92321d582e1faa7f800985fb9`](https://github.com/medusajs/medusa/commit/06bc7ec543e823c92321d582e1faa7f800985fb9) Thanks [@​NicolasGorga](https://github.com/NicolasGorga)! - fix(medusa): remove undefined `allowed` from admin customers export query config
- [#​17147](https://github.com/medusajs/medusa/pull/17147) [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2) Thanks [@​dependabot](https://github.com/apps/dependabot)! - chore(admin-bundler, framework, medusa, deps): dependency updates
- [#​16964](https://github.com/medusajs/medusa/pull/16964) [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64) Thanks [@​shahednasser](https://github.com/shahednasser)! - fix(payment,core-flows,medusa,types,utils): let refunds be retried safely with an idempotency key
- [#​17313](https://github.com/medusajs/medusa/pull/17313) [`906433ac6b1d5ec3cc23f88c8297d29fa87427fd`](https://github.com/medusajs/medusa/commit/906433ac6b1d5ec3cc23f88c8297d29fa87427fd) Thanks [@​medusa-agents](https://github.com/apps/medusa-agents)! - fix(medusa): accept case-insensitive order directions on POST /store/search
- [#​16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@​NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- [#​16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@​shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature
- [#​17361](https://github.com/medusajs/medusa/pull/17361) [`3755f0f08c02548fb97a7b3f5c3403c2f1919ab6`](https://github.com/medusajs/medusa/commit/3755f0f08c02548fb97a7b3f5c3403c2f1919ab6) Thanks [@​medusa-agents](https://github.com/apps/medusa-agents)! - fix(medusa): stop exporting sensitive HTTP headers in spans, and redact URL query param values outside a configurable allowlist
- Updated dependencies \[[`6fd40674ee9b8956cbdf377a80f49342177bf818`](https://github.com/medusajs/medusa/commit/6fd40674ee9b8956cbdf377a80f49342177bf818), [`0e087453a34fea61d39d1e416a52ef3417220b2e`](https://github.com/medusajs/medusa/commit/0e087453a34fea61d39d1e416a52ef3417220b2e), [`6adae2ca2e3185cec3af9afbefdf58a378dcf1ca`](https://github.com/medusajs/medusa/commit/6adae2ca2e3185cec3af9afbefdf58a378dcf1ca), [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a), [`09814617a5e117dd42b12c5026d79e8536244fcd`](https://github.com/medusajs/medusa/commit/09814617a5e117dd42b12c5026d79e8536244fcd), [`b3db8ecc2888a84897528636027af8dc446d4ae6`](https://github.com/medusajs/medusa/commit/b3db8ecc2888a84897528636027af8dc446d4ae6), [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2), [`735231340d130af0c3565bc7340f1163863c283f`](https://github.com/medusajs/medusa/commit/735231340d130af0c3565bc7340f1163863c283f), [`dab83ec94a8d60446e15eb982617b7c1cc7589a2`](https://github.com/medusajs/medusa/commit/dab83ec94a8d60446e15eb982617b7c1cc7589a2), [`65260a9d80d666916ad1e4b59d346123e1fa7991`](https://github.com/medusajs/medusa/commit/65260a9d80d666916ad1e4b59d346123e1fa7991), [`597cf9af9ac6ddcf233fc0605d37e8925dc4b7ce`](https://github.com/medusajs/medusa/commit/597cf9af9ac6ddcf233fc0605d37e8925dc4b7ce), [`fdac7de4c3268ccf0f86c47c140662d84c141832`](https://github.com/medusajs/medusa/commit/fdac7de4c3268ccf0f86c47c140662d84c141832), [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64), [`b561a37343f4132d0f3a243e7722260797c3cf85`](https://github.com/medusajs/medusa/commit/b561a37343f4132d0f3a243e7722260797c3cf85), [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a), [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936), [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93)]:
- [@​medusajs/payment-stripe](https://github.com/medusajs/payment-stripe)@2.22.0
- [@​medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.0
- [@​medusajs/draft-order](https://github.com/medusajs/draft-order)@2.22.0
- [@​medusajs/admin-bundler](https://github.com/medusajs/admin-bundler)@2.22.0
- [@​medusajs/analytics-local](https://github.com/medusajs/analytics-local)@2.22.0
- [@​medusajs/analytics-posthog](https://github.com/medusajs/analytics-posthog)@2.22.0
- [@​medusajs/analytics](https://github.com/medusajs/analytics)@2.22.0
- [@​medusajs/api-key](https://github.com/medusajs/api-key)@2.22.0
- [@​medusajs/auth-emailpass](https://github.com/medusajs/auth-emailpass)@2.22.0
- [@​medusajs/auth-github](https://github.com/medusajs/auth-github)@2.22.0
- [@​medusajs/auth-google](https://github.com/medusajs/auth-google)@2.22.0
- [@​medusajs/auth-oidc](https://github.com/medusajs/auth-oidc)@2.22.0
- [@​medusajs/auth](https://github.com/medusajs/auth)@2.22.0
- [@​medusajs/cache-inmemory](https://github.com/medusajs/cache-inmemory)@2.22.0
- [@​medusajs/cache-redis](https://github.com/medusajs/cache-redis)@2.22.0
- [@​medusajs/caching-redis](https://github.com/medusajs/caching-redis)@2.22.0
- [@​medusajs/cart](https://github.com/medusajs/cart)@2.22.0
- [@​medusajs/currency](https://github.com/medusajs/currency)@2.22.0
- [@​medusajs/customer](https://github.com/medusajs/customer)@2.22.0
- [@​medusajs/event-bus-local](https://github.com/medusajs/event-bus-local)@2.22.0
- [@​medusajs/event-bus-redis](https://github.com/medusajs/event-bus-redis)@2.22.0
- [@​medusajs/file-local](https://github.com/medusajs/file-local)@2.22.0
- [@​medusajs/file-s3](https://github.com/medusajs/file-s3)@2.22.0
- [@​medusajs/file](https://github.com/medusajs/file)@2.22.0
- [@​medusajs/framework](https://github.com/medusajs/framework)@2.22.0
- [@​medusajs/fulfillment-manual](https://github.com/medusajs/fulfillment-manual)@2.22.0
- [@​medusajs/fulfillment](https://github.com/medusajs/fulfillment)@2.22.0
- [@​medusajs/index](https://github.com/medusajs/index)@2.22.0
- [@​medusajs/inventory](https://github.com/medusajs/inventory)@2.22.0
- [@​medusajs/link-modules](https://github.com/medusajs/link-modules)@2.22.0
- [@​medusajs/locking-postgres](https://github.com/medusajs/locking-postgres)@2.22.0
- [@​medusajs/locking-redis](https://github.com/medusajs/locking-redis)@2.22.0
- [@​medusajs/notification-local](https://github.com/medusajs/notification-local)@2.22.0
- [@​medusajs/notification-sendgrid](https://github.com/medusajs/notification-sendgrid)@2.22.0
- [@​medusajs/notification](https://github.com/medusajs/notification)@2.22.0
- [@​medusajs/order](https://github.com/medusajs/order)@2.22.0
- [@​medusajs/payment](https://github.com/medusajs/payment)@2.22.0
- [@​medusajs/pricing](https://github.com/medusajs/pricing)@2.22.0
- [@​medusajs/product](https://github.com/medusajs/product)@2.22.0
- [@​medusajs/promotion](https://github.com/medusajs/promotion)@2.22.0
- [@​medusajs/rbac](https://github.com/medusajs/rbac)@2.22.0
- [@​medusajs/region](https://github.com/medusajs/region)@2.22.0
- [@​medusajs/sales-channel](https://github.com/medusajs/sales-channel)@2.22.0
- [@​medusajs/search-postgres](https://github.com/medusajs/search-postgres)@2.22.0
- [@​medusajs/search](https://github.com/medusajs/search)@2.22.0
- [@​medusajs/settings](https://github.com/medusajs/settings)@2.22.0
- [@​medusajs/stock-location](https://github.com/medusajs/stock-location)@2.22.0
- [@​medusajs/store](https://github.com/medusajs/store)@2.22.0
- [@​medusajs/tax](https://github.com/medusajs/tax)@2.22.0
- [@​medusajs/translation](https://github.com/medusajs/translation)@2.22.0
- [@​medusajs/user](https://github.com/medusajs/user)@2.22.0
- [@​medusajs/workflow-engine-inmemory](https://github.com/medusajs/workflow-engine-inmemory)@2.22.0
- [@​medusajs/workflow-engine-redis](https://github.com/medusajs/workflow-engine-redis)@2.22.0
- [@​medusajs/caching](https://github.com/medusajs/caching)@2.22.0
- [@​medusajs/locking](https://github.com/medusajs/locking)@2.22.0
- [@​medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0
</details>
<details>
<summary>medusajs/medusa (@​medusajs/test-utils)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/medusa-test-utils/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- [#​17461](https://github.com/medusajs/medusa/pull/17461) [`bb1cece185d747fcac1e9bd15d99e1189b0d9973`](https://github.com/medusajs/medusa/commit/bb1cece185d747fcac1e9bd15d99e1189b0d9973) Thanks [@​medusa-os-bot](https://github.com/apps/medusa-os-bot)! - fix(test-utils): read database credentials when connecting instead of at import
- Updated dependencies \[[`ea2d48190febf36389aa66242247c180f9f48212`](https://github.com/medusajs/medusa/commit/ea2d48190febf36389aa66242247c180f9f48212), [`67aa48d6b1bbac622d261808b4351521fad8cf42`](https://github.com/medusajs/medusa/commit/67aa48d6b1bbac622d261808b4351521fad8cf42), [`5aebc3e4a163c0e401d8794b2e961021eea5aea0`](https://github.com/medusajs/medusa/commit/5aebc3e4a163c0e401d8794b2e961021eea5aea0), [`7ce874c0ce4df5d9942130a28067ced8b23b126d`](https://github.com/medusajs/medusa/commit/7ce874c0ce4df5d9942130a28067ced8b23b126d), [`52f4c751d2277ab704c1a184c7971a6684e11a74`](https://github.com/medusajs/medusa/commit/52f4c751d2277ab704c1a184c7971a6684e11a74), [`a0b1fffe7082ee326f16f50a1e2bfc978032a2bf`](https://github.com/medusajs/medusa/commit/a0b1fffe7082ee326f16f50a1e2bfc978032a2bf), [`4e723121b0f9e3792b61306af5cbf2ebd9e84d20`](https://github.com/medusajs/medusa/commit/4e723121b0f9e3792b61306af5cbf2ebd9e84d20), [`347a34dc5a193ac2117cbbda6956c3932f40e693`](https://github.com/medusajs/medusa/commit/347a34dc5a193ac2117cbbda6956c3932f40e693), [`c959d5e3e7d4b482d0784eef67ef8ef766442d5e`](https://github.com/medusajs/medusa/commit/c959d5e3e7d4b482d0784eef67ef8ef766442d5e), [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091), [`4a75f02fbadb204f390bd5989dd0302f8a3f6774`](https://github.com/medusajs/medusa/commit/4a75f02fbadb204f390bd5989dd0302f8a3f6774), [`e07eb2b001fa52621e3176efb36fdf53863d4a80`](https://github.com/medusajs/medusa/commit/e07eb2b001fa52621e3176efb36fdf53863d4a80)]:
- [@​medusajs/medusa](https://github.com/medusajs/medusa)@2.22.1
- [@​medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.1
- [@​medusajs/framework](https://github.com/medusajs/framework)@2.22.1
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/medusa-test-utils/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@​NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- [#​17129](https://github.com/medusajs/medusa/pull/17129) [`0fdcf25c29f3da6d36eb11855ef10044db7da1f1`](https://github.com/medusajs/medusa/commit/0fdcf25c29f3da6d36eb11855ef10044db7da1f1) Thanks [@​bhupinder759](https://github.com/bhupinder759)! - fix(test-utils): remove the unused `inApp` option from `medusaIntegrationTestRunner`
`medusaIntegrationTestRunner` accepted an `inApp` option and stored it on the runner, but no code path ever read it, so passing it had no effect. The option and its private field are removed. TypeScript code that still passes `inApp` needs to drop it.
- Updated dependencies \[[`9aa921a62139888fed08aee7db1480cff0a3ee40`](https://github.com/medusajs/medusa/commit/9aa921a62139888fed08aee7db1480cff0a3ee40), [`0e087453a34fea61d39d1e416a52ef3417220b2e`](https://github.com/medusajs/medusa/commit/0e087453a34fea61d39d1e416a52ef3417220b2e), [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a), [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541), [`06bc7ec543e823c92321d582e1faa7f800985fb9`](https://github.com/medusajs/medusa/commit/06bc7ec543e823c92321d582e1faa7f800985fb9), [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2), [`fdac7de4c3268ccf0f86c47c140662d84c141832`](https://github.com/medusajs/medusa/commit/fdac7de4c3268ccf0f86c47c140662d84c141832), [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64), [`906433ac6b1d5ec3cc23f88c8297d29fa87427fd`](https://github.com/medusajs/medusa/commit/906433ac6b1d5ec3cc23f88c8297d29fa87427fd), [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a), [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936), [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93), [`3755f0f08c02548fb97a7b3f5c3403c2f1919ab6`](https://github.com/medusajs/medusa/commit/3755f0f08c02548fb97a7b3f5c3403c2f1919ab6)]:
- [@​medusajs/medusa](https://github.com/medusajs/medusa)@2.22.0
- [@​medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.0
- [@​medusajs/framework](https://github.com/medusajs/framework)@2.22.0
</details>
<details>
<summary>medusajs/medusa (@​medusajs/types)</summary>
### [`v2.22.1`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/types/CHANGELOG.md#2221)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.22.0...v2.22.1)
##### Patch Changes
- [#​17428](https://github.com/medusajs/medusa/pull/17428) [`081bcd2ef57e3d8e946ded205f2bdbd99c2834ba`](https://github.com/medusajs/medusa/commit/081bcd2ef57e3d8e946ded205f2bdbd99c2834ba) Thanks [@​medusa-agents](https://github.com/apps/medusa-agents)! - fix(types): add attribute, value and operator to FilterablePriceRuleProps
- [#​17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@​sradevski](https://github.com/sradevski)! - feat(medusa,core-flows,types,js-sdk): add store route to update a payment session's client data
### [`v2.22.0`](https://github.com/medusajs/medusa/blob/HEAD/packages/core/types/CHANGELOG.md#2220)
[Compare Source](https://github.com/medusajs/medusa/compare/v2.21.2...v2.22.0)
##### Minor Changes
- [#​17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later
##### Patch Changes
- [#​17347](https://github.com/medusajs/medusa/pull/17347) [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541) Thanks [@​medusa-agents](https://github.com/apps/medusa-agents)! - fix(medusa,types): add `http.requireActorAssociation` config to refuse logins on actor types an auth identity isn't associated with
- [`09c7800e9c53ebc654fedcd593b8febde8fc5142`](undefined) - fix(types): type the `status` filter of product list params as an array of statuses
- [#​17099](https://github.com/medusajs/medusa/pull/17099) [`dab83ec94a8d60446e15eb982617b7c1cc7589a2`](https://github.com/medusajs/medusa/commit/dab83ec94a8d60446e15eb982617b7c1cc7589a2) Thanks [@​sradevski](https://github.com/sradevski)! - feat(payment): register a Medusa Payments provider per Medusa Cloud payment account
- [#​16964](https://github.com/medusajs/medusa/pull/16964) [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64) Thanks [@​shahednasser](https://github.com/shahednasser)! - fix(payment,core-flows,medusa,types,utils): let refunds be retried safely with an idempotency key
- [#​17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@​shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json
- [#​16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@​shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature
</details>
<details>
<summary>swc-project/swc (@​swc/core)</summary>
### [`v1.16.20`](https://github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11620---2026-10-22)
[Compare Source](https://github.com/swc-project/swc/compare/v1.16.18...v1.16.20)
##### Bug Fixes
- **(es/codegen)** Disambiguate TSX generic arrows ([#​12505](https://github.com/swc-project/swc/issues/12505)) ([2c9d198](https://github.com/swc-project/swc/commit/2c9d19813f05b74a704db9c40ce985e1d5b43d65))
- **(es/codegen)** Preserve non-null token boundaries ([#​12504](https://github.com/swc-project/swc/issues/12504)) ([410ae3a](https://github.com/swc-project/swc/commit/410ae3a0750e2d218eaabc2686d29f08b1e20482))
- **(es/codegen)** Parenthesize typed arrow parameters ([#​12503](https://github.com/swc-project/swc/issues/12503)) ([aa1ffd6](https://github.com/swc-project/swc/commit/aa1ffd682fa211f006b47588da6c2da3c1bf8abe))
- **(es/codegen)** Preserve TypeScript token boundaries ([#​12523](https://github.com/swc-project/swc/issues/12523)) ([9f36ae0](https://github.com/swc-project/swc/commit/9f36ae0b999c727900649518220adb2f4f8a1ac1))
- **(es/codegen)** Emit space after div if rhs starts with a regex ([#​12544](https://github.com/swc-project/swc/issues/12544)) ([dddf716](https://github.com/swc-project/swc/commit/dddf7168a086ab1b98461071a1fa63215a08e8ab))
- **(es/codegen)** Preserve optional call type arguments ([#​12549](https://github.com/swc-project/swc/issues/12549)) ([f7bef4d](https://github.com/swc-project/swc/commit/f7bef4daaf6e38e40991088120165260eb1f51d3))
- **(es/compat)** Scope private access modes to each member ([#​12526](https://github.com/swc-project/swc/issues/12526)) ([c0e3fa1](https://github.com/swc-project/swc/commit/c0e3fa13fd664634fc662087f3920e628c1a8001))
- **(es/fixer)** Preserve TypeScript expression grouping ([#​12518](https://github.com/swc-project/swc/issues/12518)) ([b9d3f8f](https://github.com/swc-project/swc/commit/b9d3f8fb383b385035dea2f48f258ff9eb04a062))
- **(es/fixer)** Preserve TypeScript operand grouping ([#​12539](https://github.com/swc-project/swc/issues/12539)) ([7c4a214](https://github.com/swc-project/swc/commit/7c4a21418c1a5df95e8eccb7a4d125460c44e92a))
- **(es/fixer)** Avoid panicking on recovered parenthesized assignment targets ([#​12551](https://github.com/swc-project/swc/issues/12551)) ([ec34371](https://github.com/swc-project/swc/commit/ec34371a49973bf076ccd8e489e7bed730e7cef6))
- **(es/fixer)** Preserve optional chain boundaries ([#​12550](https://github.com/swc-project/swc/issues/12550)) ([01d5630](https://github.com/swc-project/swc/commit/01d5630d40e939de3a1b4f5b83ed9918eaa0948e))
- **(es/fixer)** Wrap function declarations in sloppy-mode loop bodies ([#​12567](https://github.com/swc-project/swc/issues/12567)) ([76ff943](https://github.com/swc-project/swc/commit/76ff943b6380be9176be3983863e4d6899fafd01))
- **(es/minifier)** Bound literal expressions copied by the sequential inliner ([#​12521](https://github.com/swc-project/swc/issues/12521)) ([60c700f](https://github.com/swc-project/swc/commit/60c700f2eeb600973b2547b2d3d28ac22ef8e9f7))
- **(es/minifier)** Preserve rest array identity when its reference runs more than once ([#​12546](https://github.com/swc-project/swc/issues/12546)) ([4768dbe](https://github.com/swc-project/swc/commit/4768dbe091a6706a009d2e9c08950cacba107d55))
- **(es/minifier)** Keep `trimLeft` and `trimRight` on string literals ([#​12574](https://github.com/swc-project/swc/issues/12574)) ([663ffb0](https://github.com/swc-project/swc/commit/663ffb0c36c83e276b3fba4db3b917aee24033dc))
- **(es/minifier)** Keep directive prologue when merging if returns ([#​12580](https://github.com/swc-project/swc/issues/12580)) ([fd0edaf](https://github.com/swc-project/swc/commit/fd0edaff3484beb2293eac47e8e8126b41825f60))
- **(es/minifier)** Preserve new async and generator ([#​12558](https://github.com/swc-project/swc/issues/12558)) ([8f06994](https://github.com/swc-project/swc/commit/8f06994bbe4e1770f54e8e1213535205529a986c))
- **(es/minifier)** Release utils API required by registry builds ([#​12582](https://github.com/swc-project/swc/issues/12582)) ([b5a52b9](https://github.com/swc-project/swc/commit/b5a52b9a9d4b7f8c3e38628167e937037d831860))
- **(es/parser)** Isolate enum await context ([#​12506](https://github.com/swc-project/swc/issues/12506)) ([b789495](https://github.com/swc-project/swc/commit/b7894951bee205f85e498d36fcd0b20f14015f93))
- **(es/parser)** Allow await function names in async arrow parameters ([#​12517](https://github.com/swc-project/swc/issues/12517)) ([0827541](https://github.com/swc-project/swc/commit/08275410814e2922683d671125ade1c603de7067))
- **(es/parser)** Preserve invalid JSX numeric entities as literal text ([#​12524](https://github.com/swc-project/swc/issues/12524)) ([31b5fb9](https://github.com/swc-project/swc/commit/31b5fb9ae6e6769dc02d857fc1ea8eeb76b5a051))
- **(es/parser)** Allow namespace await identifiers ([#​12507](https://github.com/swc-project/swc/issues/12507)) ([3daa5dc](https://github.com/swc-project/swc/commit/3daa5dcce773a2994ff7f52d9ef72fdd7fec67ee))
- **(es/parser)** Align TypeScript expression lookahead ([#​12535](https://github.com/swc-project/swc/issues/12535)) ([7ef5966](https://github.com/swc-project/swc/commit/7ef5966233bf90cd662bb6b45b2826cc1fb28c99))
- **(es/parser)** Do not treat optional get/set fields as accessors ([#​12559](https://github.com/swc-project/swc/issues/12559)) ([a2fedec](https://github.com/swc-project/swc/commit/a2fedece141de509f81ca5187f0b2236507ac832))
- **(es/parser)** Recover non-entity expressions in TypeScript heritage clauses ([#​12552](https://github.com/swc-project/swc/issues/12552)) ([48586cb](https://github.com/swc-project/swc/commit/48586cb8cf850bd6d4666fd2d53df64af058452e))
- **(native)** Allow unmapped overflow owners in Linux cache ancestors ([#​12547](https://github.com/swc-project/swc/issues/12547)) ([8ce7daa](https://github.com/swc-project/swc/commit/8ce7daa2cd0a304c02c9bd66399a6c74dbe651dc))
- **(native-addon)** Use ProgramData after unsafe Windows profile caches ([#​12534](https://github.com/swc-project/swc/issues/12534)) ([47394b8](https://github.com/swc-project/swc/commit/47394b851f73489672016f30a24806f6edd74946))
- **(react-compiler)** Preserve intrinsic JSX tags during binding renames ([#​12536](https://github.com/swc-project/swc/issues/12536)) ([c25e42e](https://github.com/swc-project/swc/commit/c25e42eba9028dc297f5c1953c37e6314ea3bb87))
- **(ts/fast-strip)** Preserve runtime boundaries during type erasure ([#​12575](https://github.com/swc-project/swc/issues/12575)) ([ccdc3c1](https://github.com/swc-project/swc/commit/ccdc3c12eb1179ff3a07ccfea0829a624617d935))
##### Documentation
- Prohibit references to issue-linked PRs and external SWC forks ([#​12513](https://github.com/swc-project/swc/issues/12513)) ([5092a16](https://github.com/swc-project/swc/commit/5092a16cef14093df987a37334bb3253db4649e0))
- Add CodSpeed sponsor logo to README ([#​12590](https://github.com/swc-project/swc/issues/12590)) ([9c5b1df](https://github.com/swc-project/swc/commit/9c5b1df49152de69cf239ad96f08dc0ad5ca89a0))
##### Features
- **(es/minifier)** Inline async function used only once ([#​12416](https://github.com/swc-project/swc/issues/12416)) ([b9b2ebe](https://github.com/swc-project/swc/commit/b9b2ebe1bb3623bd5219726d592d1968fbc8b4a1))
- **(es/minifier)** Implement more rules for if-break ([#​12561](https://github.com/swc-project/swc/issues/12561)) ([644f85a](https://github.com/swc-project/swc/commit/644f85aa7f4c4bf70c2711054217894621c558cc))
##### Performance
- **(es/parser)** Streamline numeric separator stripping ([#​12515](https://github.com/swc-project/swc/issues/12515)) ([220a82c](https://github.com/swc-project/swc/commit/220a82ccc9d4412a3aa2094d72ffa43eb337c786))
- **(hstr)** Allow Atom::as_str to inline across crates ([#​12522](https://github.com/swc-project/swc/issues/12522)) ([c07290b](https://github.com/swc-project/swc/commit/c07290bb931df2a415649bd1fbda86b312426034))
##### Testing
- **(es/transforms)** Isolate transform timing from AST cloning ([#​12540](https://github.com/swc-project/swc/issues/12540)) ([63ee4aa](https://github.com/swc-project/swc/commit/63ee4aad6baf566cd6ba0fcce74f8ff226a2d8cb))
##### Ci
- Allow vjeux as a React contributor ([#​12520](https://github.com/swc-project/swc/issues/12520)) ([4e8ee99](https://github.com/swc-project/swc/commit/4e8ee99048e304d2908844eb5aa2ebb38f80bc87))
- Allow jimmyhmiller in the Next.js group ([#​12532](https://github.com/swc-project/swc/issues/12532)) ([346a025](https://github.com/swc-project/swc/commit/346a025cd7738762442c99f9582c9dcee0f46b1c))
- Ignore unreachable ruzstd advisory in Wasmer ([#​12533](https://…
The minifier replaced a property read of
trimLeftortrimRighton a string literal withvoid 0. Both are standardString.prototypemethods (ECMA-262 Annex B aliases oftrimStartandtrimEnd), so"".trimLeftis a function, notundefined. This broke feature detection such as core-js"".trimLeft !== String.prototype.trimStart.Pure::optimize_member_exprfolds a string literal property read toundefinedwhen the property name is not inSTRING_SYMBOLSorOBJECT_SYMBOLS.STRING_SYMBOLShadtrimStartandtrimEnd, but nottrimLeftandtrimRight.This PR adds
trimLeftandtrimRighttoSTRING_SYMBOLS. It also adds the fixturetests/fixture/issues/12570.Validation, run locally on the changed code:
./scripts/test.shincrates/swc_ecma_minifier: 2219 passed, 0 failed../scripts/exec.shincrates/swc_ecma_minifier: 2128 passed, 0 failed.cargo clippy -p swc_ecma_minifier --all-targets -- -D warnings: no warnings.CI was not run locally.
Closes #12570