Skip to content

fix(es/fixer): preserve TypeScript expression grouping - #12518

Merged
Donny/강동윤 (kdy1) merged 1 commit into
mainfrom
fix/ts-fixer-boundaries
Oct 13, 2026
Merged

Donny/강동윤 (kdy1) merged 1 commit into
mainfrom
fix/ts-fixer-boundaries

Conversation

@magic-akari

Copy link
Copy Markdown
Member

Description:

The fixer removes parentheses required by TypeScript in expressions such as (value as T) ? /a/ : other and (f<T>) + other, causing syntax errors or changing the parsed AST.

Preserve required grouping for conditional casts, instantiation expressions before binary operators, and await or type assertions on the left of exponentiation. Scope TS lookahead state to each operand.

@changeset-bot

changeset-bot Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e9d89c7

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codspeed

codspeed Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

⚠️ 32 benchmarks spent significant time in system calls

System calls cannot be consistently instrumented, so they are not included in the measure, which understates the real cost. Please switch to the Walltime instrument to accurately measure system calls.

Measurement and system calls

ℹ️ 2 benchmarks have no flame graph

The flamegraph could not be generated because no execution data was recorded when the benchmark was run. Ensure that the benchmark has not been optimized out.

✅ 200 untouched benchmarks
⏩ 67 skipped benchmarks1


Comparing fix/ts-fixer-boundaries (e9d89c7) with main (c07290b)

Open in CodSpeed

Footnotes

  1. 67 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@magic-akari
magic-akari marked this pull request as ready for review October 12, 2026 18:55
@magic-akari
magic-akari requested review from a team as code owners October 12, 2026 18:55
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b61a5cf406

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread crates/swc_ecma_transforms_base/src/fixer/typescript.rs
Comment thread crates/swc_ecma_transforms_base/src/fixer.rs Outdated
Comment thread crates/swc_ecma_transforms_base/src/fixer/typescript.rs Outdated
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T04:09:49.787518Z e9d89c7 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@magic-akari
magic-akari marked this pull request as draft October 12, 2026 19:25
Preserve TypeScript casts in conditional tests, binary and prefix
operands, and assignment targets. Group instantiations before operators
that TypeScript cannot parse without parentheses.

Keep await and type assertions grouped before exponentiation. Inspect
expression tails without collection state and check casts in operand
visitors.
@magic-akari
magic-akari force-pushed the fix/ts-fixer-boundaries branch from b61a5cf to e9d89c7 Compare October 13, 2026 03:01
@magic-akari
magic-akari marked this pull request as ready for review October 13, 2026 03:56
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9d89c7936

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "Codex (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread crates/swc_ecma_transforms_base/src/fixer/typescript.rs
Comment thread crates/swc_ecma_transforms_base/src/fixer/typescript.rs
Comment thread crates/swc_ecma_transforms_base/src/fixer.rs

@kdy1 Donny/강동윤 (kdy1) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@kdy1

Copy link
Copy Markdown
Member

I think the Codex auto review items can be a follow-up

@kdy1
Donny/강동윤 (kdy1) merged commit b9d3f8f into main Oct 13, 2026
109 checks passed
@kdy1
Donny/강동윤 (kdy1) deleted the fix/ts-fixer-boundaries branch October 13, 2026 09:55
@github-actions github-actions Bot added this to the Planned milestone Oct 13, 2026
Donny/강동윤 (kdy1) pushed a commit that referenced this pull request Oct 16, 2026
**Description:**

The fixer removes parentheses required by TypeScript around casts,
instantiations, and low-precedence cast inputs, producing invalid syntax
or changing the parsed expression. Preserve grouping across postfix
operations, updates, and binary operators—including `(f<T>)!`,
`(f<T>)++`, `(value as T).x`, `(value as T) & other`, `((a + b) as T) *
c`, and `(a | b) as T`.

Retain required innermost `ParenExpr` nodes in place and replace
`IndexMap::shift_remove` with indexed span records so nested parenthesis
restoration stays linear while preserving comment migration order.

**Related issue (if exists):**

- Follow-up to #12518
@github-actions github-actions Bot modified the milestones: Planned, v1.16.20 Oct 22, 2026
El Rincon de Hiro (elrincondehiro) pushed a commit to elrincondehiro/web-ecommerce that referenced this pull request Oct 26, 2026
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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@astrojs%2fcheck/0.9.12?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@astrojs%2fcheck/0.9.11/0.9.12?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@astrojs%2fsvelte/9.1.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@astrojs%2fsvelte/9.1.0/9.1.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2fadmin-sdk/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2fadmin-sdk/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2fcli/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2fcli/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2fframework/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2fframework/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2fjs-sdk/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2fjs-sdk/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2fmedusa/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2fmedusa/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2ftest-utils/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2ftest-utils/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@medusajs%2ftypes/2.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@medusajs%2ftypes/2.21.2/2.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.16.20?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.16.18/1.16.20?slim=true) | devDependencies | patch |
| [amir20/dozzle](https://github.com/amir20/dozzle) | `v11.3.4` → `v11.3.5` | ![age](https://developer.mend.io/api/mc/badges/age/docker/amir20%2fdozzle/v11.3.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/amir20%2fdozzle/v11.3.4/v11.3.5?slim=true) |  | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/astro/7.4.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/astro/7.4.1/7.4.2?slim=true) | dependencies | patch |
| [axllent/mailpit](https://mailpit.axllent.org) ([source](https://github.com/axllent/mailpit)) | `v1.31.6` → `v1.32.0` | ![age](https://developer.mend.io/api/mc/badges/age/docker/axllent%2fmailpit/v1.32.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/axllent%2fmailpit/v1.31.6/v1.32.0?slim=true) |  | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/bits-ui/2.20.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bits-ui/2.19.5/2.20.2?slim=true) | dependencies | minor |
| [chrislusf/seaweedfs](https://github.com/seaweedfs/seaweedfs) | `4.48` → `4.50` | ![age](https://developer.mend.io/api/mc/badges/age/docker/chrislusf%2fseaweedfs/4.50?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/chrislusf%2fseaweedfs/4.48/4.50?slim=true) |  | minor |
| [docker/login-action](https://github.com/docker/login-action) | `v4.6.0` → `v4.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/github-tags/docker%2flogin-action/v4.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/docker%2flogin-action/v4.6.0/v4.7.0?slim=true) | action | minor |
| [henrygd/beszel](https://github.com/henrygd/beszel) | `0.21.0` → `0.21.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/henrygd%2fbeszel/0.21.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/henrygd%2fbeszel/0.21.0/0.21.1?slim=true) |  | patch |
| [henrygd/beszel-agent](https://github.com/henrygd/beszel) | `0.21.0` → `0.21.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/henrygd%2fbeszel-agent/0.21.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/henrygd%2fbeszel-agent/0.21.0/0.21.1?slim=true) |  | patch |
| louislam/uptime-kuma | `2.5.6` → `2.5.7` | ![age](https://developer.mend.io/api/mc/badges/age/docker/louislam%2fuptime-kuma/2.5.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/louislam%2fuptime-kuma/2.5.6/2.5.7?slim=true) |  | 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) | ![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v24.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v24.22.0/v24.22.1?slim=true) | engines | patch |
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | `24.22.0` → `24.22.1` | ![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v24.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v24.22.0/v24.22.1?slim=true) |  | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-trixie` → `24.22.1-trixie` | ![age](https://developer.mend.io/api/mc/badges/age/docker/node/24.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/node/24.22.0/24.22.1?slim=true) | container | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-alpine3.24` → `24.22.1-alpine3.24` | ![age](https://developer.mend.io/api/mc/badges/age/docker/node/24.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/node/24.22.0/24.22.1?slim=true) | final | patch |
| [node](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/node)) | `24.22.0-alpine3.24` → `24.22.1-alpine3.24` | ![age](https://developer.mend.io/api/mc/badges/age/docker/node/24.22.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/node/24.22.0/24.22.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/nodemailer/10.2.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nodemailer/10.1.7/10.2.1?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/12.15.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/12.14.0/12.15.0?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/12.15.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/12.14.0/12.15.0?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier-plugin-astro/1.1.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier-plugin-astro/1.1.1/1.1.2?slim=true) | 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) | ![age](https://developer.mend.io/api/mc/badges/age/docker/renovate%2frenovate/44.181.9?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/renovate%2frenovate/44.172.2/44.181.9?slim=true) | container | minor |
| stripe/stripe-cli | `v1.54.1` → `v1.55.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/stripe%2fstripe-cli/v1.55.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/stripe%2fstripe-cli/v1.54.1/v1.55.1?slim=true) |  | minor |

---

### Release Notes

<details>
<summary>withastro/astro (@&#8203;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

- [#&#8203;18455](https://github.com/withastro/astro/pull/18455) [`7af66fc`](https://github.com/withastro/astro/commit/7af66fc785d85b1df1f98e7123a52b2306250985) Thanks [@&#8203;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)]:
  - [@&#8203;astrojs/language-server](https://github.com/astrojs/language-server)@2.17.3

</details>

<details>
<summary>withastro/astro (@&#8203;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

- [#&#8203;18475](https://github.com/withastro/astro/pull/18475) [`cf27e70`](https://github.com/withastro/astro/commit/cf27e70a9057ce29ade2a8a843bd9275a696e9ab) Thanks [@&#8203;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 (@&#8203;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 \[]:
  - [@&#8203;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

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/admin-shared](https://github.com/medusajs/admin-shared)@2.22.0

</details>

<details>
<summary>medusajs/medusa (@&#8203;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)]:
  - [@&#8203;medusajs/utils](https://github.com/medusajs/utils)@2.22.1
  - [@&#8203;medusajs/deps](https://github.com/medusajs/deps)@2.22.1
  - [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/utils](https://github.com/medusajs/utils)@2.22.0
  - [@&#8203;medusajs/deps](https://github.com/medusajs/deps)@2.22.0
  - [@&#8203;medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0

</details>

<details>
<summary>medusajs/medusa (@&#8203;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)]:
  - [@&#8203;medusajs/utils](https://github.com/medusajs/utils)@2.22.1
  - [@&#8203;medusajs/types](https://github.com/medusajs/types)@2.22.1
  - [@&#8203;medusajs/cli](https://github.com/medusajs/cli)@2.22.1
  - [@&#8203;medusajs/modules-sdk](https://github.com/medusajs/modules-sdk)@2.22.1
  - [@&#8203;medusajs/orchestration](https://github.com/medusajs/orchestration)@2.22.1
  - [@&#8203;medusajs/workflows-sdk](https://github.com/medusajs/workflows-sdk)@2.22.1
  - [@&#8203;medusajs/deps](https://github.com/medusajs/deps)@2.22.1
  - [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;17147](https://github.com/medusajs/medusa/pull/17147) [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - chore(admin-bundler, framework, medusa, deps): dependency updates

- [#&#8203;16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@&#8203;NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/utils](https://github.com/medusajs/utils)@2.22.0
  - [@&#8203;medusajs/cli](https://github.com/medusajs/cli)@2.22.0
  - [@&#8203;medusajs/deps](https://github.com/medusajs/deps)@2.22.0
  - [@&#8203;medusajs/modules-sdk](https://github.com/medusajs/modules-sdk)@2.22.0
  - [@&#8203;medusajs/orchestration](https://github.com/medusajs/orchestration)@2.22.0
  - [@&#8203;medusajs/types](https://github.com/medusajs/types)@2.22.0
  - [@&#8203;medusajs/workflows-sdk](https://github.com/medusajs/workflows-sdk)@2.22.0
  - [@&#8203;medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0

</details>

<details>
<summary>medusajs/medusa (@&#8203;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

- [#&#8203;17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;17157](https://github.com/medusajs/medusa/pull/17157) [`c522ce6c070a85ed735fa0e1ea281b7641935a96`](https://github.com/medusajs/medusa/commit/c522ce6c070a85ed735fa0e1ea281b7641935a96) Thanks [@&#8203;sarmah-rup](https://github.com/sarmah-rup)! - fix(js-sdk): don't throw a ReferenceError when `setLocale` is called outside the browser

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json

- [#&#8203;16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature

</details>

<details>
<summary>medusajs/medusa (@&#8203;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

- [#&#8203;17442](https://github.com/medusajs/medusa/pull/17442) [`ea2d48190febf36389aa66242247c180f9f48212`](https://github.com/medusajs/medusa/commit/ea2d48190febf36389aa66242247c180f9f48212) Thanks [@&#8203;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

- [#&#8203;17449](https://github.com/medusajs/medusa/pull/17449) [`52f4c751d2277ab704c1a184c7971a6684e11a74`](https://github.com/medusajs/medusa/commit/52f4c751d2277ab704c1a184c7971a6684e11a74) Thanks [@&#8203;medusa-os-bot](https://github.com/apps/medusa-os-bot)! - fix(medusa): reject deleting a variant through a product it doesn't belong to

- [#&#8203;17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/promotion](https://github.com/medusajs/promotion)@2.22.1
  - [@&#8203;medusajs/caching](https://github.com/medusajs/caching)@2.22.1
  - [@&#8203;medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.1
  - [@&#8203;medusajs/locking](https://github.com/medusajs/locking)@2.22.1
  - [@&#8203;medusajs/locking-redis](https://github.com/medusajs/locking-redis)@2.22.1
  - [@&#8203;medusajs/translation](https://github.com/medusajs/translation)@2.22.1
  - [@&#8203;medusajs/index](https://github.com/medusajs/index)@2.22.1
  - [@&#8203;medusajs/pricing](https://github.com/medusajs/pricing)@2.22.1
  - [@&#8203;medusajs/order](https://github.com/medusajs/order)@2.22.1
  - [@&#8203;medusajs/payment](https://github.com/medusajs/payment)@2.22.1
  - [@&#8203;medusajs/search-postgres](https://github.com/medusajs/search-postgres)@2.22.1
  - [@&#8203;medusajs/framework](https://github.com/medusajs/framework)@2.22.1
  - [@&#8203;medusajs/event-bus-redis](https://github.com/medusajs/event-bus-redis)@2.22.1
  - [@&#8203;medusajs/admin-bundler](https://github.com/medusajs/admin-bundler)@2.22.1
  - [@&#8203;medusajs/draft-order](https://github.com/medusajs/draft-order)@2.22.1
  - [@&#8203;medusajs/analytics](https://github.com/medusajs/analytics)@2.22.1
  - [@&#8203;medusajs/api-key](https://github.com/medusajs/api-key)@2.22.1
  - [@&#8203;medusajs/auth](https://github.com/medusajs/auth)@2.22.1
  - [@&#8203;medusajs/cart](https://github.com/medusajs/cart)@2.22.1
  - [@&#8203;medusajs/currency](https://github.com/medusajs/currency)@2.22.1
  - [@&#8203;medusajs/customer](https://github.com/medusajs/customer)@2.22.1
  - [@&#8203;medusajs/file](https://github.com/medusajs/file)@2.22.1
  - [@&#8203;medusajs/fulfillment](https://github.com/medusajs/fulfillment)@2.22.1
  - [@&#8203;medusajs/inventory](https://github.com/medusajs/inventory)@2.22.1
  - [@&#8203;medusajs/link-modules](https://github.com/medusajs/link-modules)@2.22.1
  - [@&#8203;medusajs/notification](https://github.com/medusajs/notification)@2.22.1
  - [@&#8203;medusajs/product](https://github.com/medusajs/product)@2.22.1
  - [@&#8203;medusajs/rbac](https://github.com/medusajs/rbac)@2.22.1
  - [@&#8203;medusajs/region](https://github.com/medusajs/region)@2.22.1
  - [@&#8203;medusajs/sales-channel](https://github.com/medusajs/sales-channel)@2.22.1
  - [@&#8203;medusajs/search](https://github.com/medusajs/search)@2.22.1
  - [@&#8203;medusajs/settings](https://github.com/medusajs/settings)@2.22.1
  - [@&#8203;medusajs/stock-location](https://github.com/medusajs/stock-location)@2.22.1
  - [@&#8203;medusajs/store](https://github.com/medusajs/store)@2.22.1
  - [@&#8203;medusajs/tax](https://github.com/medusajs/tax)@2.22.1
  - [@&#8203;medusajs/user](https://github.com/medusajs/user)@2.22.1
  - [@&#8203;medusajs/workflow-engine-inmemory](https://github.com/medusajs/workflow-engine-inmemory)@2.22.1
  - [@&#8203;medusajs/workflow-engine-redis](https://github.com/medusajs/workflow-engine-redis)@2.22.1
  - [@&#8203;medusajs/cache-inmemory](https://github.com/medusajs/cache-inmemory)@2.22.1
  - [@&#8203;medusajs/cache-redis](https://github.com/medusajs/cache-redis)@2.22.1
  - [@&#8203;medusajs/event-bus-local](https://github.com/medusajs/event-bus-local)@2.22.1
  - [@&#8203;medusajs/analytics-local](https://github.com/medusajs/analytics-local)@2.22.1
  - [@&#8203;medusajs/analytics-posthog](https://github.com/medusajs/analytics-posthog)@2.22.1
  - [@&#8203;medusajs/auth-emailpass](https://github.com/medusajs/auth-emailpass)@2.22.1
  - [@&#8203;medusajs/auth-github](https://github.com/medusajs/auth-github)@2.22.1
  - [@&#8203;medusajs/auth-google](https://github.com/medusajs/auth-google)@2.22.1
  - [@&#8203;medusajs/auth-oidc](https://github.com/medusajs/auth-oidc)@2.22.1
  - [@&#8203;medusajs/caching-redis](https://github.com/medusajs/caching-redis)@2.22.1
  - [@&#8203;medusajs/file-local](https://github.com/medusajs/file-local)@2.22.1
  - [@&#8203;medusajs/file-s3](https://github.com/medusajs/file-s3)@2.22.1
  - [@&#8203;medusajs/fulfillment-manual](https://github.com/medusajs/fulfillment-manual)@2.22.1
  - [@&#8203;medusajs/locking-postgres](https://github.com/medusajs/locking-postgres)@2.22.1
  - [@&#8203;medusajs/notification-local](https://github.com/medusajs/notification-local)@2.22.1
  - [@&#8203;medusajs/notification-sendgrid](https://github.com/medusajs/notification-sendgrid)@2.22.1
  - [@&#8203;medusajs/payment-stripe](https://github.com/medusajs/payment-stripe)@2.22.1
  - [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;17035](https://github.com/medusajs/medusa/pull/17035) [`9aa921a62139888fed08aee7db1480cff0a3ee40`](https://github.com/medusajs/medusa/commit/9aa921a62139888fed08aee7db1480cff0a3ee40) Thanks [@&#8203;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.

- [#&#8203;17347](https://github.com/medusajs/medusa/pull/17347) [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541) Thanks [@&#8203;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

- [#&#8203;17314](https://github.com/medusajs/medusa/pull/17314) [`06bc7ec543e823c92321d582e1faa7f800985fb9`](https://github.com/medusajs/medusa/commit/06bc7ec543e823c92321d582e1faa7f800985fb9) Thanks [@&#8203;NicolasGorga](https://github.com/NicolasGorga)! - fix(medusa): remove undefined `allowed` from admin customers export query config

- [#&#8203;17147](https://github.com/medusajs/medusa/pull/17147) [`14499a2e9309d653c0e4ec6aec3f88079751b4d2`](https://github.com/medusajs/medusa/commit/14499a2e9309d653c0e4ec6aec3f88079751b4d2) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - chore(admin-bundler, framework, medusa, deps): dependency updates

- [#&#8203;16964](https://github.com/medusajs/medusa/pull/16964) [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - fix(payment,core-flows,medusa,types,utils): let refunds be retried safely with an idempotency key

- [#&#8203;17313](https://github.com/medusajs/medusa/pull/17313) [`906433ac6b1d5ec3cc23f88c8297d29fa87427fd`](https://github.com/medusajs/medusa/commit/906433ac6b1d5ec3cc23f88c8297d29fa87427fd) Thanks [@&#8203;medusa-agents](https://github.com/apps/medusa-agents)! - fix(medusa): accept case-insensitive order directions on POST /store/search

- [#&#8203;16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@&#8203;NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json

- [#&#8203;16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature

- [#&#8203;17361](https://github.com/medusajs/medusa/pull/17361) [`3755f0f08c02548fb97a7b3f5c3403c2f1919ab6`](https://github.com/medusajs/medusa/commit/3755f0f08c02548fb97a7b3f5c3403c2f1919ab6) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/payment-stripe](https://github.com/medusajs/payment-stripe)@2.22.0
  - [@&#8203;medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.0
  - [@&#8203;medusajs/draft-order](https://github.com/medusajs/draft-order)@2.22.0
  - [@&#8203;medusajs/admin-bundler](https://github.com/medusajs/admin-bundler)@2.22.0
  - [@&#8203;medusajs/analytics-local](https://github.com/medusajs/analytics-local)@2.22.0
  - [@&#8203;medusajs/analytics-posthog](https://github.com/medusajs/analytics-posthog)@2.22.0
  - [@&#8203;medusajs/analytics](https://github.com/medusajs/analytics)@2.22.0
  - [@&#8203;medusajs/api-key](https://github.com/medusajs/api-key)@2.22.0
  - [@&#8203;medusajs/auth-emailpass](https://github.com/medusajs/auth-emailpass)@2.22.0
  - [@&#8203;medusajs/auth-github](https://github.com/medusajs/auth-github)@2.22.0
  - [@&#8203;medusajs/auth-google](https://github.com/medusajs/auth-google)@2.22.0
  - [@&#8203;medusajs/auth-oidc](https://github.com/medusajs/auth-oidc)@2.22.0
  - [@&#8203;medusajs/auth](https://github.com/medusajs/auth)@2.22.0
  - [@&#8203;medusajs/cache-inmemory](https://github.com/medusajs/cache-inmemory)@2.22.0
  - [@&#8203;medusajs/cache-redis](https://github.com/medusajs/cache-redis)@2.22.0
  - [@&#8203;medusajs/caching-redis](https://github.com/medusajs/caching-redis)@2.22.0
  - [@&#8203;medusajs/cart](https://github.com/medusajs/cart)@2.22.0
  - [@&#8203;medusajs/currency](https://github.com/medusajs/currency)@2.22.0
  - [@&#8203;medusajs/customer](https://github.com/medusajs/customer)@2.22.0
  - [@&#8203;medusajs/event-bus-local](https://github.com/medusajs/event-bus-local)@2.22.0
  - [@&#8203;medusajs/event-bus-redis](https://github.com/medusajs/event-bus-redis)@2.22.0
  - [@&#8203;medusajs/file-local](https://github.com/medusajs/file-local)@2.22.0
  - [@&#8203;medusajs/file-s3](https://github.com/medusajs/file-s3)@2.22.0
  - [@&#8203;medusajs/file](https://github.com/medusajs/file)@2.22.0
  - [@&#8203;medusajs/framework](https://github.com/medusajs/framework)@2.22.0
  - [@&#8203;medusajs/fulfillment-manual](https://github.com/medusajs/fulfillment-manual)@2.22.0
  - [@&#8203;medusajs/fulfillment](https://github.com/medusajs/fulfillment)@2.22.0
  - [@&#8203;medusajs/index](https://github.com/medusajs/index)@2.22.0
  - [@&#8203;medusajs/inventory](https://github.com/medusajs/inventory)@2.22.0
  - [@&#8203;medusajs/link-modules](https://github.com/medusajs/link-modules)@2.22.0
  - [@&#8203;medusajs/locking-postgres](https://github.com/medusajs/locking-postgres)@2.22.0
  - [@&#8203;medusajs/locking-redis](https://github.com/medusajs/locking-redis)@2.22.0
  - [@&#8203;medusajs/notification-local](https://github.com/medusajs/notification-local)@2.22.0
  - [@&#8203;medusajs/notification-sendgrid](https://github.com/medusajs/notification-sendgrid)@2.22.0
  - [@&#8203;medusajs/notification](https://github.com/medusajs/notification)@2.22.0
  - [@&#8203;medusajs/order](https://github.com/medusajs/order)@2.22.0
  - [@&#8203;medusajs/payment](https://github.com/medusajs/payment)@2.22.0
  - [@&#8203;medusajs/pricing](https://github.com/medusajs/pricing)@2.22.0
  - [@&#8203;medusajs/product](https://github.com/medusajs/product)@2.22.0
  - [@&#8203;medusajs/promotion](https://github.com/medusajs/promotion)@2.22.0
  - [@&#8203;medusajs/rbac](https://github.com/medusajs/rbac)@2.22.0
  - [@&#8203;medusajs/region](https://github.com/medusajs/region)@2.22.0
  - [@&#8203;medusajs/sales-channel](https://github.com/medusajs/sales-channel)@2.22.0
  - [@&#8203;medusajs/search-postgres](https://github.com/medusajs/search-postgres)@2.22.0
  - [@&#8203;medusajs/search](https://github.com/medusajs/search)@2.22.0
  - [@&#8203;medusajs/settings](https://github.com/medusajs/settings)@2.22.0
  - [@&#8203;medusajs/stock-location](https://github.com/medusajs/stock-location)@2.22.0
  - [@&#8203;medusajs/store](https://github.com/medusajs/store)@2.22.0
  - [@&#8203;medusajs/tax](https://github.com/medusajs/tax)@2.22.0
  - [@&#8203;medusajs/translation](https://github.com/medusajs/translation)@2.22.0
  - [@&#8203;medusajs/user](https://github.com/medusajs/user)@2.22.0
  - [@&#8203;medusajs/workflow-engine-inmemory](https://github.com/medusajs/workflow-engine-inmemory)@2.22.0
  - [@&#8203;medusajs/workflow-engine-redis](https://github.com/medusajs/workflow-engine-redis)@2.22.0
  - [@&#8203;medusajs/caching](https://github.com/medusajs/caching)@2.22.0
  - [@&#8203;medusajs/locking](https://github.com/medusajs/locking)@2.22.0
  - [@&#8203;medusajs/telemetry](https://github.com/medusajs/telemetry)@2.22.0

</details>

<details>
<summary>medusajs/medusa (@&#8203;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

- [#&#8203;17461](https://github.com/medusajs/medusa/pull/17461) [`bb1cece185d747fcac1e9bd15d99e1189b0d9973`](https://github.com/medusajs/medusa/commit/bb1cece185d747fcac1e9bd15d99e1189b0d9973) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/medusa](https://github.com/medusajs/medusa)@2.22.1
  - [@&#8203;medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.1
  - [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;16678](https://github.com/medusajs/medusa/pull/16678) [`44db0ca6357ab4d4681a8004e869fde339c3117a`](https://github.com/medusajs/medusa/commit/44db0ca6357ab4d4681a8004e869fde339c3117a) Thanks [@&#8203;NicolasGorga](https://github.com/NicolasGorga)! - chore(medusa,framework,utils,modules-sdk,test-utils): add license key checks

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json

- [#&#8203;17129](https://github.com/medusajs/medusa/pull/17129) [`0fdcf25c29f3da6d36eb11855ef10044db7da1f1`](https://github.com/medusajs/medusa/commit/0fdcf25c29f3da6d36eb11855ef10044db7da1f1) Thanks [@&#8203;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)]:
  - [@&#8203;medusajs/medusa](https://github.com/medusajs/medusa)@2.22.0
  - [@&#8203;medusajs/core-flows](https://github.com/medusajs/core-flows)@2.22.0
  - [@&#8203;medusajs/framework](https://github.com/medusajs/framework)@2.22.0

</details>

<details>
<summary>medusajs/medusa (@&#8203;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

- [#&#8203;17428](https://github.com/medusajs/medusa/pull/17428) [`081bcd2ef57e3d8e946ded205f2bdbd99c2834ba`](https://github.com/medusajs/medusa/commit/081bcd2ef57e3d8e946ded205f2bdbd99c2834ba) Thanks [@&#8203;medusa-agents](https://github.com/apps/medusa-agents)! - fix(types): add attribute, value and operator to FilterablePriceRuleProps

- [#&#8203;17432](https://github.com/medusajs/medusa/pull/17432) [`7c3b0339379efeda7863f48b9f60e3391cece091`](https://github.com/medusajs/medusa/commit/7c3b0339379efeda7863f48b9f60e3391cece091) Thanks [@&#8203;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

- [#&#8203;17089](https://github.com/medusajs/medusa/pull/17089) [`d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a`](https://github.com/medusajs/medusa/commit/d249d29ddef76d0bde0b68899b9fe5f9faa1ef6a) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: drop Node.js 20 support and require Node.js v22.22.0 or later

##### Patch Changes

- [#&#8203;17347](https://github.com/medusajs/medusa/pull/17347) [`673d03edafd30beef18286bbef8a737ff332d541`](https://github.com/medusajs/medusa/commit/673d03edafd30beef18286bbef8a737ff332d541) Thanks [@&#8203;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

- [#&#8203;17099](https://github.com/medusajs/medusa/pull/17099) [`dab83ec94a8d60446e15eb982617b7c1cc7589a2`](https://github.com/medusajs/medusa/commit/dab83ec94a8d60446e15eb982617b7c1cc7589a2) Thanks [@&#8203;sradevski](https://github.com/sradevski)! - feat(payment): register a Medusa Payments provider per Medusa Cloud payment account

- [#&#8203;16964](https://github.com/medusajs/medusa/pull/16964) [`780a69aad3ea20beadf82e9c5351a6633de45b64`](https://github.com/medusajs/medusa/commit/780a69aad3ea20beadf82e9c5351a6633de45b64) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - fix(payment,core-flows,medusa,types,utils): let refunds be retried safely with an idempotency key

- [#&#8203;17382](https://github.com/medusajs/medusa/pull/17382) [`1db74006ede40300afe64970024688a1a9c2a936`](https://github.com/medusajs/medusa/commit/1db74006ede40300afe64970024688a1a9c2a936) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - chore: ship AGENTS.md in published packages and add agent discovery fields to package.json

- [#&#8203;16142](https://github.com/medusajs/medusa/pull/16142) [`a491ca71f438e1f35a496d63d29141e15bc56c93`](https://github.com/medusajs/medusa/commit/a491ca71f438e1f35a496d63d29141e15bc56c93) Thanks [@&#8203;shahednasser](https://github.com/shahednasser)! - feat(dashboard, core-flows, js-sdk, types, medusa): add export customers feature

</details>

<details>
<summary>swc-project/swc (@&#8203;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 ([#&#8203;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 ([#&#8203;12504](https://github.com/swc-project/swc/issues/12504)) ([410ae3a](https://github.com/swc-project/swc/commit/410ae3a0750e2d218eaabc2686d29f08b1e20482))

- **(es/codegen)** Parenthesize typed arrow parameters ([#&#8203;12503](https://github.com/swc-project/swc/issues/12503)) ([aa1ffd6](https://github.com/swc-project/swc/commit/aa1ffd682fa211f006b47588da6c2da3c1bf8abe))

- **(es/codegen)** Preserve TypeScript token boundaries ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;12526](https://github.com/swc-project/swc/issues/12526)) ([c0e3fa1](https://github.com/swc-project/swc/commit/c0e3fa13fd664634fc662087f3920e628c1a8001))

- **(es/fixer)** Preserve TypeScript expression grouping ([#&#8203;12518](https://github.com/swc-project/swc/issues/12518)) ([b9d3f8f](https://github.com/swc-project/swc/commit/b9d3f8fb383b385035dea2f48f258ff9eb04a062))

- **(es/fixer)** Preserve TypeScript operand grouping ([#&#8203;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 ([#&#8203;12551](https://github.com/swc-project/swc/issues/12551)) ([ec34371](https://github.com/swc-project/swc/commit/ec34371a49973bf076ccd8e489e7bed730e7cef6))

- **(es/fixer)** Preserve optional chain boundaries ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;12582](https://github.com/swc-project/swc/issues/12582)) ([b5a52b9](https://github.com/swc-project/swc/commit/b5a52b9a9d4b7f8c3e38628167e937037d831860))

- **(es/parser)** Isolate enum await context ([#&#8203;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 ([#&#8203;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 ([#&#8203;12524](https://github.com/swc-project/swc/issues/12524)) ([31b5fb9](https://github.com/swc-project/swc/commit/31b5fb9ae6e6769dc02d857fc1ea8eeb76b5a051))

- **(es/parser)** Allow namespace await identifiers ([#&#8203;12507](https://github.com/swc-project/swc/issues/12507)) ([3daa5dc](https://github.com/swc-project/swc/commit/3daa5dcce773a2994ff7f52d9ef72fdd7fec67ee))

- **(es/parser)** Align TypeScript expression lookahead ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;12513](https://github.com/swc-project/swc/issues/12513)) ([5092a16](https://github.com/swc-project/swc/commit/5092a16cef14093df987a37334bb3253db4649e0))

- Add CodSpeed sponsor logo to README ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;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 ([#&#8203;12532](https://github.com/swc-project/swc/issues/12532)) ([346a025](https://github.com/swc-project/swc/commit/346a025cd7738762442c99f9582c9dcee0f46b1c))

- Ignore unreachable ruzstd advisory in Wasmer ([#&#8203;12533](https://…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants