Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [compiler] Update for Zod v3/v4 compatibility by josephsavona · Pull Request #34717 · react/react · GitHub
Skip to content

[compiler] Update for Zod v3/v4 compatibility - #34717

Merged
josephsavona merged 1 commit into
mainfrom
pr34717
Oct 3, 2025
Merged

[compiler] Update for Zod v3/v4 compatibility#34717
josephsavona merged 1 commit into
mainfrom
pr34717

Conversation

@josephsavona

@josephsavonajosephsavona commented Oct 3, 2025

Copy link
Copy Markdown
Contributor

Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use z.any() where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).

@github-actionsgithub-actionsBot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@josephsavona

Copy link
Copy Markdown
ContributorAuthor

Note: this is a redo of #34710 w fixes

@josephsavona
josephsavonaforce-pushed the pr34717 branch 2 times, most recently from 45c2375 to 69fbdeaCompareOctober 3, 2025 16:44
@josephsavonajosephsavona changed the title feat(eslint-plugin): add Zod v4 compatibilityPartial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,Oct 3, 2025
@josephsavonajosephsavona changed the title Partial redo of #34710. The changes there tried to use z.function(args, return) to be compatible across Zod v3 and v4,[compiler] Update for Zod v3/v4 compatibilityOct 3, 2025
@react-sizebot

react-sizebot commented Oct 3, 2025

Copy link
Copy Markdown

Comparing: 71753ac...8335312

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name+/-BaseCurrent+/- gzipBase gzipCurrent gzip
oss-stable/react-dom/cjs/react-dom.production.js=6.68 kB6.68 kB=1.83 kB1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js=536.14 kB536.14 kB=94.81 kB94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js=6.69 kB6.69 kB=1.83 kB1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js=663.96 kB663.96 kB=117.04 kB117.04 kB
facebook-www/ReactDOM-prod.classic.js=687.83 kB687.83 kB=121.08 kB121.08 kB
facebook-www/ReactDOM-prod.modern.js=678.26 kB678.26 kB=119.43 kB119.44 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 8335312

Partial redo of #34710. The changes there tried to use `z.function(args, return)` to be compatible across Zod v3 and v4, but Zod 4's function API has completely changed. Instead, I've updated to just use `z.any()` where we expect a function, and manually validate that it's a function before we call the value. We already have validation of the return type (also using Zod).
@josephsavona
josephsavona merged commit d6eb735 into mainOct 3, 2025
253 of 285 checks passed
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
github-actionsBot pushed a commit that referenced this pull request Oct 3, 2025
Partial redo of #34710. The changes there tried to use `z.function(args,
return)` to be compatible across Zod v3 and v4, but Zod 4's function API
has completely changed. Instead, I've updated to just use `z.any()`
where we expect a function, and manually validate that it's a function
before we call the value. We already have validation of the return type
(also using Zod).
Co-authored-by: kolvian <eliot@pontarelli.com>
DiffTrain build for [d6eb735](d6eb735)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)
This MR contains the following updates:
| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |
---
### Release Notes
<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>
### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)
[Compare Source](react/react@8618113...a2329c1)
**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.
- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](react/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](react/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](react/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](react/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](react/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](react/react#34717))
### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)
[Compare Source](react/react@fea92d8...8618113)
**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](react/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](react/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](react/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](react/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](react/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](react/react#34497)
### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)
[Compare Source](react/react@3607f48...fea92d8)
Accidentally released. See 6.1.0 for the actual changes.
</details>
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->
See merge request swiss-armed-forces/cyber-command/cea/loom!241
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedReact Core TeamOpened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@josephsavona@react-sizebot@poteto@kolvian