{"id":94309,"name":"@types/convict-format-with-validator","ecosystem":"npm","repository_url":null,"issues_count":1,"created_at":"2026-06-21T04:00:55.259Z","updated_at":"2026-06-21T04:00:55.259Z","purl":"pkg:npm/@types/convict-format-with-validator","unique_repositories_count":1,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4709060405","node_id":"PR_kwDOS67_Ns7oysys","number":2,"state":"closed","title":"Bump the js-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-21T02:20:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-21T02:18:46.000Z","updated_at":"2026-06-21T02:20:59.000Z","time_to_close":124,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"js-dependencies","update_count":15,"packages":[{"name":"oxfmt","old_version":"0.46.0","new_version":"0.55.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"oxlint","old_version":"1.34.0","new_version":"1.70.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"stylelint","old_version":"17.8.0","new_version":"17.13.0","repository_url":"https://github.com/stylelint/stylelint"},{"name":"typescript","old_version":"5.9.2","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"solid-js","old_version":"1.9.3","new_version":"1.9.13","repository_url":"https://github.com/solidjs/solid"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.61.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/bun","old_version":"1.3.12","new_version":"1.3.14","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@astrojs/sitemap","old_version":"3.7.2","new_version":"3.7.3","repository_url":"https://github.com/withastro/astro"},{"name":"@iconify-json/simple-icons","old_version":"1.2.79","new_version":"1.2.86","repository_url":"https://github.com/iconify/icon-sets"},{"name":"astro","old_version":"6.1.8","new_version":"6.4.8","repository_url":"https://github.com/withastro/astro"},{"name":"@astrojs/check","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/withastro/astro"},{"name":"@axe-core/playwright","old_version":"4.11.2","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-npm"},{"name":"sharp","old_version":"0.35.1","new_version":"0.35.2","repository_url":"https://github.com/lovell/sharp"},{"name":"@types/convict-format-with-validator","old_version":"6.0.5","new_version":"6.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@anthropic-ai/sdk","old_version":"0.104.1","new_version":"0.105.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the js-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.46.0` | `0.55.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.34.0` | `1.70.0` |\n| [stylelint](https://github.com/stylelint/stylelint) | `17.8.0` | `17.13.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `6.0.3` |\n| [solid-js](https://github.com/solidjs/solid) | `1.9.3` | `1.9.13` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.61.0` |\n| [@types/bun](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun) | `1.3.12` | `1.3.14` |\n| [@astrojs/sitemap](https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap) | `3.7.2` | `3.7.3` |\n| [@iconify-json/simple-icons](https://github.com/iconify/icon-sets) | `1.2.79` | `1.2.86` |\n| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `6.1.8` | `6.4.8` |\n| [@astrojs/check](https://github.com/withastro/astro/tree/HEAD/packages/language-tools/astro-check) | `0.9.8` | `0.9.9` |\n| [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) | `4.11.2` | `4.11.3` |\n| [sharp](https://github.com/lovell/sharp) | `0.35.1` | `0.35.2` |\n| [@types/convict-format-with-validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/convict-format-with-validator) | `6.0.5` | `6.0.6` |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.104.1` | `0.105.0` |\n\nUpdates `oxfmt` from 0.46.0 to 0.55.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md\"\u003eoxfmt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.55.0] - 2026-06-15\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9a2788b linter/unicorn: Implement \u003ccode\u003eprefer-export-from\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935\"\u003e#22935\u003c/a\u003e) (AliceLanniste)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.54.0] - 2026-06-08\u003c/h2\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965\"\u003e#22965\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003ef88961a oxfmt: Annotate each config option with supported languages (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953\"\u003e#22953\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.52.0] - 2026-05-26\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e16b8058 oxfmt: Support \u003ccode\u003evite-plus/resolveConfig\u003c/code\u003e for vite.config.ts (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454\"\u003e#22454\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.50.0] - 2026-05-15\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e43b9978 formatter/sort_imports: Treat subpath imports as internal (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22440\"\u003e#22440\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.49.0] - 2026-05-11\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6e8e818 oxfmt: Experimental .svelte support (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/21700\"\u003e#21700\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.45.0] - 2026-04-13\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e50c389b oxfmt: Support \u003ccode\u003e.editorconfig\u003c/code\u003e \u003ccode\u003equote_type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20989\"\u003e#20989\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.44.0] - 2026-04-06\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edd2df87 npm: Export package.json for oxlint and oxfmt (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20784\"\u003e#20784\u003c/a\u003e) (kazuya kawaguchi)\u003c/li\u003e\n\u003cli\u003e4216380 oxfmt: Support \u003ccode\u003e.editorconfig\u003c/code\u003e \u003ccode\u003etab_width\u003c/code\u003e fallback (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20988\"\u003e#20988\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.43.0] - 2026-03-30\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6ef440a oxfmt: Support bool for object style options (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20853\"\u003e#20853\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/aa79b5be9915068f60bc361febf2e7496b92fc24\"\u003e\u003ccode\u003eaa79b5b\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.70.0 \u0026amp;\u0026amp; oxfmt v0.55.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23442\"\u003e#23442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/9a2788b3ae60c033a969fbba63733748f8c6130a\"\u003e\u003ccode\u003e9a2788b\u003c/code\u003e\u003c/a\u003e feat(linter/unicorn): implement \u003ccode\u003eprefer-export-from\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935\"\u003e#22935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/44ae845fe19d3700128e50e7e61d98c7a85f3f47\"\u003e\u003ccode\u003e44ae845\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.69.0 \u0026amp;\u0026amp; oxfmt v0.54.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23116\"\u003e#23116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/dadafe3e0874b2b75775d265b24d19d7f446e2bf\"\u003e\u003ccode\u003edadafe3\u003c/code\u003e\u003c/a\u003e docs(oxlint, oxfmt): mention migrate skills in npm READMEs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965\"\u003e#22965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/f88961ae2968ae2a12035111d07c72797812d2fd\"\u003e\u003ccode\u003ef88961a\u003c/code\u003e\u003c/a\u003e docs(oxfmt): annotate each config option with supported languages (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953\"\u003e#22953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/964a7580840f394d67c149ea083e35a1e74c128f\"\u003e\u003ccode\u003e964a758\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.68.0 \u0026amp;\u0026amp; oxfmt v0.53.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22883\"\u003e#22883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/68b455d84f0b18bd6646cfe4f9babb12ec4fc448\"\u003e\u003ccode\u003e68b455d\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.67.0 \u0026amp;\u0026amp; oxfmt v0.52.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22735\"\u003e#22735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/16b8058cd6fd55472cb3a225852ca22db24bb461\"\u003e\u003ccode\u003e16b8058\u003c/code\u003e\u003c/a\u003e feat(oxfmt): Support \u003ccode\u003evite-plus/resolveConfig\u003c/code\u003e for vite.config.ts (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/557020642e27b948e46f73754b82bee452a82f32\"\u003e\u003ccode\u003e5570206\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.66.0 \u0026amp;\u0026amp; oxfmt v0.51.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22528\"\u003e#22528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/25e5cbc76f887cf5c0c2bdfbef8d4a74fd1ce87d\"\u003e\u003ccode\u003e25e5cbc\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.65.0 \u0026amp;\u0026amp; oxfmt v0.50.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22458\"\u003e#22458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oxc-project/oxc/commits/oxfmt_v0.55.0/npm/oxfmt\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oxlint` from 1.34.0 to 1.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/releases\"\u003eoxlint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eoxlint v1.27.0 \u0026amp;\u0026amp; oxfmt v0.12.0\u003c/h2\u003e\n\u003ch1\u003eOxlint v1.27.0\u003c/h1\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e222a8f0 linter/plugins: Implement \u003ccode\u003eSourceCode#isSpaceBetween\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15498\"\u003e#15498\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e2f9735d linter/plugins: Implement \u003ccode\u003econtext.languageOptions\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15486\"\u003e#15486\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003ebc731ff linter/plugins: Stub out all \u003ccode\u003eContext\u003c/code\u003e APIs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15479\"\u003e#15479\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e5822cb4 linter/plugins: Add \u003ccode\u003eextend\u003c/code\u003e method to \u003ccode\u003eFILE_CONTEXT\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15477\"\u003e#15477\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e7b1e6f3 apps: Add pure rust binaries and release to github (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15469\"\u003e#15469\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003e2a89b43 linter: Introduce debug assertions after fixes to assert validity (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15389\"\u003e#15389\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ead3c45a editor: Add \u003ccode\u003eoxc.path.node\u003c/code\u003e option (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15040\"\u003e#15040\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6f3cd77 linter/no-var: Incorrect warning for blocks (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15504\"\u003e#15504\u003c/a\u003e) (Hamir Mahal)\u003c/li\u003e\n\u003cli\u003e6957fb9 linter/plugins: Do not allow access to \u003ccode\u003eContext#id\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15489\"\u003e#15489\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e7409630 linter/plugins: Allow access to \u003ccode\u003ecwd\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e in ESLint interop mode (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15488\"\u003e#15488\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e732205e parser: Reject \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e in a switch \u003ccode\u003ecase\u003c/code\u003e / \u003ccode\u003edefault\u003c/code\u003e clause (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15225\"\u003e#15225\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003ea17ca32 linter/plugins: Replace \u003ccode\u003eContext\u003c/code\u003e class (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15448\"\u003e#15448\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003eecf2f7b language_server: Fail gracefully when tsgolint executable not found (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15436\"\u003e#15436\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e3c8d3a7 lang-server: Improve logging in failure case for tsgolint (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15299\"\u003e#15299\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003eef71410 linter: Use jsx if source type is JS in fix debug assertion (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15434\"\u003e#15434\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ee32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15426\"\u003e#15426\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e6565dbe linter/switch-case-braces: Skip comments when searching for \u003ccode\u003e:\u003c/code\u003e token (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15425\"\u003e#15425\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15423\"\u003e#15423\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003efde753e linter/plugins: Block access to \u003ccode\u003econtext.settings\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15394\"\u003e#15394\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003eddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15388\"\u003e#15388\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003edac2a9c linter/no-template-curly-in-string: Remove fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15387\"\u003e#15387\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e989b8e3 linter/no-var: Only fix to \u003ccode\u003econst\u003c/code\u003e if the var has an initializer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15385\"\u003e#15385\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ecc403f5 linter/plugins: Return empty object for unimplemented parserServices (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15364\"\u003e#15364\u003c/a\u003e) (magic-akari)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e25d577e language_server: Start tools in parallel (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15500\"\u003e#15500\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3c57291 linter/plugins: Optimize loops (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15449\"\u003e#15449\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e3166233 linter/plugins: Remove \u003ccode\u003eArc\u003c/code\u003es (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15431\"\u003e#15431\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e9de1322 linter/plugins: Lazily deserialize settings JSON (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15395\"\u003e#15395\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e3049ec2 linter/plugins: Optimize \u003ccode\u003edeepFreezeSettings\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15392\"\u003e#15392\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e444ebfd linter/plugins: Use single object for \u003ccode\u003eparserServices\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15378\"\u003e#15378\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e97d2104 linter: Update comment in lint.rs about default value for tsconfig path (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15530\"\u003e#15530\u003c/a\u003e) (Connor Shea)\u003c/li\u003e\n\u003cli\u003e2c6bd9e linter: Always refer as \u0026quot;ES2015\u0026quot; instead of \u0026quot;ES6\u0026quot; (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15411\"\u003e#15411\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003ea0c5203 linter/import/named: Update \u0026quot;ES7\u0026quot; comment in examples (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15410\"\u003e#15410\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e3dc24b5 linter,minifier: Always refer as \u0026quot;ES Modules\u0026quot; instead of \u0026quot;ES6 Modules\u0026quot; (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15409\"\u003e#15409\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e2ad77fb linter/no-this-before-super: Correct \u0026quot;Why is this bad?\u0026quot; section (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15408\"\u003e#15408\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e57f0ce1 linter: Add backquotes where appropriate (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15407\"\u003e#15407\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOxfmt v0.12.0\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md\"\u003eoxlint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.70.0] - 2026-06-15\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2e8bda4 linter/vue: Implement no-dupe-keys rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23350\"\u003e#23350\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003e1490a0a linter/react: Implement react-compiler rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23202\"\u003e#23202\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003edd560ae linter/unicorn: Implement \u003ccode\u003eno-array-fill-with-reference-type\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23397\"\u003e#23397\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003eaf36c2f linter: Add schema for \u003ccode\u003ereact/jsx-curly-brace-presence\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23400\"\u003e#23400\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e47d34a3 linter: Add schema for \u003ccode\u003ereact/jsx-handler-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23393\"\u003e#23393\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ef4250d0 linter: Add schema for \u003ccode\u003eunicorn/import-style\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23386\"\u003e#23386\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e30c74ce linter: Add schema for \u003ccode\u003ejsx_a11y/no-noninteractive-element-to-interactive-role\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23384\"\u003e#23384\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ecfbe8dc linter: Add schema for \u003ccode\u003ejsx_a11y/no-interactive-element-to-noninteractive-role\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23382\"\u003e#23382\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ed15b7ff linter: Add schema for \u003ccode\u003etypescript/no-restricted-types\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23381\"\u003e#23381\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e028a811 linter: Add schema for \u003ccode\u003ejsx-a11y/media-has-caption\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23377\"\u003e#23377\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eb3b1038 linter: Add schema for \u003ccode\u003ejsx-a11y/label-has-associated-control\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23376\"\u003e#23376\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e7ada6b2 linter: Add schema for \u003ccode\u003ejsx_a11y/no-distracting-elements\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23379\"\u003e#23379\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003eee3dd49 linter: Add schema for \u003ccode\u003ejsx-a11y/img-redundant-alt\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23374\"\u003e#23374\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003edf5f8dd linter: Add short descriptions to most lint rules. (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23365\"\u003e#23365\u003c/a\u003e) (Connor Shea)\u003c/li\u003e\n\u003cli\u003ee3fd735 linter: Add schema for \u003ccode\u003ejsx_a11y/alt-text\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23369\"\u003e#23369\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e0f2fff4 linter: Add schema for \u003ccode\u003ereact/exhaustive-deps\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23372\"\u003e#23372\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003ee3e4e10 linter: Add schema for \u003ccode\u003ereact_perf/jsx-no-new-object-as-prop\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23368\"\u003e#23368\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e9366d44 linter: Add schema for \u003ccode\u003eunicorn/prefer-at\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23366\"\u003e#23366\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ef57b55d linter: Add schema for \u003ccode\u003etypescript/array-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23355\"\u003e#23355\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e0dcf912 linter: Add schema for \u003ccode\u003etypescript/ban-ts-comment\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23354\"\u003e#23354\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e51fa83e linter: Add schema for \u003ccode\u003ereact/no-did-update-set-state\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23357\"\u003e#23357\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e59db0bd linter: Add schema for \u003ccode\u003econsistent-generic-constructors\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23353\"\u003e#23353\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ec4775c0 linter: Add schema for \u003ccode\u003etypescript/consistent-type-assertions\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23349\"\u003e#23349\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e6e516f7 linter: Add schema for \u003ccode\u003etypescript/consistent-type-imports\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23348\"\u003e#23348\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e012134d linter: Add schema for \u003ccode\u003ereact/jsx-no-target-blank\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23345\"\u003e#23345\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e0806aae linter: Add schema for \u003ccode\u003ejsx_a11y/no-noninteractive-tabindex\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23337\"\u003e#23337\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e0708b5a linter: Add schema for \u003ccode\u003ereact/jsx-filename-extension\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23315\"\u003e#23315\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e150bce1 linter: Add schema for \u003ccode\u003etypescript/no-empty-object-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23309\"\u003e#23309\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ef9e36f1 linter: Add schema for \u003ccode\u003etypescript/no-duplicate-type-constituents\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23308\"\u003e#23308\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e937accf linter: Add schema for \u003ccode\u003etypescript/no-invalid-void-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23307\"\u003e#23307\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3e042b9 linter: Add schema for \u003ccode\u003etypescript/no-misused-promises\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23306\"\u003e#23306\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eda212d1 linter: Add schema for \u003ccode\u003etypescript/no-unnecessary-condition\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23305\"\u003e#23305\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ef8f0d38 linter: Add schema for \u003ccode\u003etypescript/parameter-properties\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23304\"\u003e#23304\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e2275fc7 linter: Add schema for \u003ccode\u003etypescript/prefer-nullish-coalescing\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23302\"\u003e#23302\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ed353858 linter: Add schema for \u003ccode\u003etypescript/prefer-string-starts-ends-with\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23301\"\u003e#23301\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e03060f5 linter: Add schema for \u003ccode\u003etypescript/triple-slash-reference\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23300\"\u003e#23300\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e6619cee linter: Add schema for \u003ccode\u003epromise/param-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23298\"\u003e#23298\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e8bf108e linter: Add schema for \u003ccode\u003epromise/catch-or-return\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23297\"\u003e#23297\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e48158d0 linter: Add schema for \u003ccode\u003evitest/consistent-each-for\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23294\"\u003e#23294\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e7e74c98 linter: Add schema for \u003ccode\u003evitest/consistent-test-filename\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23293\"\u003e#23293\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eff94d4a linter: Add schema for \u003ccode\u003evitest/consistent-vitest-vi\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23292\"\u003e#23292\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e2409a10 linter: Add schema for \u003ccode\u003evitest/prefer-import-in-mock\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23291\"\u003e#23291\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3d782b7 linter: Add schema for \u003ccode\u003ereact/no-unstable-nested-components\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23287\"\u003e#23287\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e0a0bc2f linter/jsx-a11y: Add \u003ccode\u003eallowedRedundantRoles\u003c/code\u003e option to \u003ccode\u003eno-redundant-roles\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22820\"\u003e#22820\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003e80758a5 linter/vue: Implement no-side-effects-in-computed-properties rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23282\"\u003e#23282\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003ee3869ac linter: Add schema for \u003ccode\u003ereact/no-object-type-as-default-prop\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23279\"\u003e#23279\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/aa79b5be9915068f60bc361febf2e7496b92fc24\"\u003e\u003ccode\u003eaa79b5b\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.70.0 \u0026amp;\u0026amp; oxfmt v0.55.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23442\"\u003e#23442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/5cb8d1bcf0c63b34ba91e9f9c36e7a84c76cb496\"\u003e\u003ccode\u003e5cb8d1b\u003c/code\u003e\u003c/a\u003e fix(linter/jsx-a11y/control-has-associated-label): reject excessive label dep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/f682e253892e8e77d7700d1053234e7a53c0dbca\"\u003e\u003ccode\u003ef682e25\u003c/code\u003e\u003c/a\u003e docs(linter): remove manually written options doc for `eslint/prefer-arrow-ca...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/2e8bda49991cfef9cb9182d37e9f304372f53839\"\u003e\u003ccode\u003e2e8bda4\u003c/code\u003e\u003c/a\u003e feat(linter/vue): implement no-dupe-keys rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23350\"\u003e#23350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/64c942cffe0e8829293d1d9f2f046b496759609a\"\u003e\u003ccode\u003e64c942c\u003c/code\u003e\u003c/a\u003e docs(linter): remove manually written options doc for \u003ccode\u003eeslint/no-sequences\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/1490a0a0691908df0ff6659750ca2f3a29396c1a\"\u003e\u003ccode\u003e1490a0a\u003c/code\u003e\u003c/a\u003e feat(linter/react): implement react-compiler rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/965358e6132e84b1828b82e0e8b17f8ac2dec54b\"\u003e\u003ccode\u003e965358e\u003c/code\u003e\u003c/a\u003e refactor(linter): reuse \u003ccode\u003eRuleNoConfig\u003c/code\u003e reference for rule schema (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23390\"\u003e#23390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/dd560ae213490fb208fdaa278562cf9169777f86\"\u003e\u003ccode\u003edd560ae\u003c/code\u003e\u003c/a\u003e feat(linter/unicorn): implement \u003ccode\u003eno-array-fill-with-reference-type\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/af36c2f9cd497c2f233de1902fc96b88804a2d3c\"\u003e\u003ccode\u003eaf36c2f\u003c/code\u003e\u003c/a\u003e feat(linter): add schema for \u003ccode\u003ereact/jsx-curly-brace-presence\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23400\"\u003e#23400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/47d34a304c83f9a34d78d2895c3616206f5888a1\"\u003e\u003ccode\u003e47d34a3\u003c/code\u003e\u003c/a\u003e feat(linter): add schema for \u003ccode\u003ereact/jsx-handler-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23393\"\u003e#23393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oxc-project/oxc/commits/oxlint_v1.70.0/npm/oxlint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stylelint` from 17.8.0 to 17.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stylelint/stylelint/releases\"\u003estylelint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.13.0\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleaved non-consecutive duplicates with \u003ccode\u003eignore: [\u0026quot;consecutive-duplicates(-*)\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9324\"\u003e#9324\u003c/a\u003e) (\u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-max-type\u003c/code\u003e false positives for nested selectors (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9319\"\u003e#9319\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-type-no-unknown\u003c/code\u003e false positives for \u003ccode\u003einstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9308\"\u003e#9308\u003c/a\u003e) (\u003ca href=\"https://github.com/Mouvedia\"\u003e\u003ccode\u003e@​Mouvedia\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.12.0\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eblock-no-empty\u003c/code\u003e reported range when using comments (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9294\"\u003e#9294\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-property-value-no-unknown\u003c/code\u003e false negatives for custom properties defined in reference files (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003ecaption-side\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9293\"\u003e#9293\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.1\u003c/h2\u003e\n\u003cp\u003eIt fixes 2 bugs.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003enode_modules\u003c/code\u003e ignore for \u003ccode\u003ecodeFilename\u003c/code\u003e paths containing a dot-prefixed directory (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9282\"\u003e#9282\u003c/a\u003e) (\u003ca href=\"https://github.com/tuhtah\"\u003e\u003ccode\u003e@​tuhtah\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-redundant-longhand-properties\u003c/code\u003e range for contiguous redundant longhand properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9273\"\u003e#9273\u003c/a\u003e) (\u003ca href=\"https://github.com/pamelalozano16\"\u003e\u003ccode\u003e@​pamelalozano16\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.0\u003c/h2\u003e\n\u003cp\u003eIt adds 2 features, including a \u003ccode\u003eloader\u003c/code\u003e property to \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e for when the order of appearance in the reference styles matters.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eloader\u003c/code\u003e to experimental \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9251\"\u003e#9251\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eautofixed\u003c/code\u003e to the result object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/8771\"\u003e#8771\u003c/a\u003e) (\u003ca href=\"https://github.com/Rob\"\u003e\u003ccode\u003e@​Rob\u003c/code\u003e\u003c/a\u003e--W).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.10.0\u003c/h2\u003e\n\u003cp\u003eIt adds 3 rules and fixes 4 bugs. You can use the \u003ccode\u003e*-layout-mappings\u003c/code\u003e rules to enforce logical or physical properties, units and keywords.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eselector-no-invalid\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9232\"\u003e#9232\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eunit-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9229\"\u003e#9229\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9233\"\u003e#9233\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: inconsistent error messages when module is not found (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9260\"\u003e#9260\u003c/a\u003e) (\u003ca href=\"https://github.com/ybiquitous\"\u003e\u003ccode\u003e@​ybiquitous\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false negatives for property names in declaration values (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9222\"\u003e#9222\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003e@page\u003c/code\u003e properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9223\"\u003e#9223\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-pseudo-class-no-unknown\u003c/code\u003e false positives for nested \u003ccode\u003ewebkit-scrollbar\u003c/code\u003e part (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9259\"\u003e#9259\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.1\u003c/h2\u003e\n\u003cp\u003eIt fixes 4 bugs. We also documented the \u003ccode\u003emessageArgs\u003c/code\u003e each rule provides to the \u003ccode\u003emessage\u003c/code\u003e configuration property.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eConfigurationError\u003c/code\u003e regression for custom syntaxes (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9245\"\u003e#9245\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: MD5 hash algorithm to SHA256 for caching (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9241\"\u003e#9241\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-no-deprecated\u003c/code\u003e autofix for \u003ccode\u003epage-break-*: always\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9214\"\u003e#9214\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-no-deprecated\u003c/code\u003e false positives for \u003ccode\u003e::part()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9227\"\u003e#9227\u003c/a\u003e) (\u003ca href=\"https://github.com/SaekiTominaga\"\u003e\u003ccode\u003e@​SaekiTominaga\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.0\u003c/h2\u003e\n\u003cp\u003eIt adds 3 new features. Adding the \u003ccode\u003ereferenceFiles\u003c/code\u003e property to your configuration object makes the \u003ccode\u003eno-unknown-animations\u003c/code\u003e, \u003ccode\u003eno-unknown-custom-media\u003c/code\u003e and \u003ccode\u003eno-unknown-custom-properties\u003c/code\u003e rules more useful.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: experimental \u003ccode\u003ereferenceFiles\u003c/code\u003e to configuration object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9179\"\u003e#9179\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: experimental \u003ccode\u003eabortSignal\u003c/code\u003e option to Node.js API for cancellation support (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9213\"\u003e#9213\u003c/a\u003e) (\u003ca href=\"https://github.com/adalinesimonian\"\u003e\u003ccode\u003e@​adalinesimonian\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md\"\u003estylelint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.13.0 - 2026-06-06\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleaved non-consecutive duplicates with \u003ccode\u003eignore: [\u0026quot;consecutive-duplicates(-*)\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9324\"\u003e#9324\u003c/a\u003e) (\u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-max-type\u003c/code\u003e false positives for nested selectors (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9319\"\u003e#9319\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-type-no-unknown\u003c/code\u003e false positives for \u003ccode\u003einstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9308\"\u003e#9308\u003c/a\u003e) (\u003ca href=\"https://github.com/Mouvedia\"\u003e\u003ccode\u003e@​Mouvedia\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.12.0 - 2026-05-20\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eblock-no-empty\u003c/code\u003e reported range when using comments (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9294\"\u003e#9294\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-property-value-no-unknown\u003c/code\u003e false negatives for custom properties defined in reference files (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003ecaption-side\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9293\"\u003e#9293\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.1 - 2026-05-14\u003c/h2\u003e\n\u003cp\u003eIt fixes 2 bugs.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003enode_modules\u003c/code\u003e ignore for \u003ccode\u003ecodeFilename\u003c/code\u003e paths containing a dot-prefixed directory (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9282\"\u003e#9282\u003c/a\u003e) (\u003ca href=\"https://github.com/tuhtah\"\u003e\u003ccode\u003e@​tuhtah\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-redundant-longhand-properties\u003c/code\u003e range for contiguous redundant longhand properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9273\"\u003e#9273\u003c/a\u003e) (\u003ca href=\"https://github.com/pamelalozano16\"\u003e\u003ccode\u003e@​pamelalozano16\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.0 - 2026-05-05\u003c/h2\u003e\n\u003cp\u003eIt adds 2 features, including a \u003ccode\u003eloader\u003c/code\u003e property to \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e for when the order of appearance in the reference styles matters.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eloader\u003c/code\u003e to experimental \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9251\"\u003e#9251\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eautofixed\u003c/code\u003e to the result object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/8771\"\u003e#8771\u003c/a\u003e) (\u003ca href=\"https://github.com/Rob--W\"\u003e\u003ccode\u003e@​Rob--W\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.10.0 - 2026-05-03\u003c/h2\u003e\n\u003cp\u003eIt adds 3 rules and fixes 4 bugs. You can use the \u003ccode\u003e*-layout-mappings\u003c/code\u003e rules to enforce logical or physical properties, units and keywords.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eselector-no-invalid\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9232\"\u003e#9232\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eunit-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9229\"\u003e#9229\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9233\"\u003e#9233\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: inconsistent error messages when module is not found (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9260\"\u003e#9260\u003c/a\u003e) (\u003ca href=\"https://github.com/ybiquitous\"\u003e\u003ccode\u003e@​ybiquitous\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false negatives for property names in declaration values (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9222\"\u003e#9222\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003e@page\u003c/code\u003e properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9223\"\u003e#9223\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-pseudo-class-no-unknown\u003c/code\u003e false positives for nested \u003ccode\u003ewebkit-scrollbar\u003c/code\u003e part (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9259\"\u003e#9259\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.1 - 2026-04-27\u003c/h2\u003e\n\u003cp\u003eIt fixes 4 bugs. We also documented the \u003ccode\u003emessageArgs\u003c/code\u003e each rule provides to the \u003ccode\u003emessage\u003c/code\u003e configuration property.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eConfigurationError\u003c/code\u003e regression for custom syntaxes (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9245\"\u003e#9245\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: MD5 hash algorithm to SHA256 for caching (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9241\"\u003e#9241\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-no-deprecated\u003c/code\u003e autofix for \u003ccode\u003epage-break-*: always\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9214\"\u003e#9214\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-no-deprecated\u003c/code\u003e false positives for \u003ccode\u003e::part()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9227\"\u003e#9227\u003c/a\u003e) (\u003ca href=\"https://github.com/SaekiTominaga\"\u003e\u003ccode\u003e@​SaekiTominaga\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/7fcee2b3155adb43daa2078762a15c2d9a24e69b\"\u003e\u003ccode\u003e7fcee2b\u003c/code\u003e\u003c/a\u003e Release 17.13.0 (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9342\"\u003e#9342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/3b7287b2eb88474f63f6d17474e87ba836bf1f43\"\u003e\u003ccode\u003e3b7287b\u003c/code\u003e\u003c/a\u003e Refactor to reuse shared utilities (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9337\"\u003e#9337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/8e889c3394f410916343a5e4c2b372ec514184d0\"\u003e\u003ccode\u003e8e889c3\u003c/code\u003e\u003c/a\u003e Bump lint-staged from 17.0.4 to 17.0.5 (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9334\"\u003e#9334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/a74aab46df5a94afa0cf4fddc9faf6eeacf34293\"\u003e\u003ccode\u003ea74aab4\u003c/code\u003e\u003c/a\u003e Bump the stylelint-actions group with 5 updates (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9333\"\u003e#9333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/74c644828b839add46650d67390a0f1094dbcf7a\"\u003e\u003ccode\u003e74c6448\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleav...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/1cd26ac54ed16b92f77487f85b9305ca320f4085\"\u003e\u003ccode\u003e1cd26ac\u003c/code\u003e\u003c/a\u003e Skip changeset verification on fork PRs CI (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9331\"\u003e#9331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/712b9867f7a1fa631813f577d7941686a10d3a58\"\u003e\u003ccode\u003e712b986\u003c/code\u003e\u003c/a\u003e Fix vulnerable dependencies via \u003ccode\u003enpm audit fix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9328\"\u003e#9328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/27196b71dbc255bd612ad26dee40bf276a8123b0\"\u003e\u003ccode\u003e27196b7\u003c/code\u003e\u003c/a\u003e Fix CI badge in README.md (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9329\"\u003e#9329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/179bba2e5a3264f9e96baf3318afdf113ea4f8dc\"\u003e\u003ccode\u003e179bba2\u003c/code\u003e\u003c/a\u003e Refactor to use \u003ccode\u003e@import\u003c/code\u003e over \u003ccode\u003e@typedef\u003c/code\u003e for simple imports (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9326\"\u003e#9326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/94eab544e488dddb43829353649da8debd6427b5\"\u003e\u003ccode\u003e94eab54\u003c/code\u003e\u003c/a\u003e Document using our PR template (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9327\"\u003e#9327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stylelint/stylelint/compare/17.8.0...17.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eInstall script changes\u003c/summary\u003e\n\u003cp\u003eThis version modifies \u003ccode\u003eprepare\u003c/code\u003e script that runs during installation. Review the package contents before updating.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 5.9.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/TypeScript/releases\"\u003etypescript's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTypeScript 6.0.3\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/\"\u003erelease announcement blog post\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22\"\u003efixed issues query for TypeScript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.1%22\"\u003efixed issues query for TypeScript 6.0.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.2%22\"\u003efixed issues query for TypeScript 6.0.2 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.3%22\"\u003efixed issues query for TypeScript 6.0.3 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 6.0\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/\"\u003erelease announcement blog post\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22\"\u003efixed issues query for TypeScript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.1%22\"\u003efixed issues query for TypeScript 6.0.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.2%22\"\u003efixed issues query for TypeScript 6.0.2 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 6.0 Beta\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/\"\u003erelease announcement\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22+is%3Aclosed+\"\u003efixed issues query for Typescript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 5.9.3\u003c/h2\u003e\n\u003cp\u003eNote: this tag was recreated to point at the correct commit. The npm package contained the correct content.\u003c/p\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/\"\u003erelease announcement\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eNo specific changes for TypeScript 5.9.2 (Stable)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.3%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.3 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/050880ce59e30b356b686bd3144efe24f875ebc8\"\u003e\u003ccode\u003e050880c\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.3 and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/eeae9dd0f17aa494658e4ec079dc002e02dd625e\"\u003e\u003ccode\u003eeeae9dd\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63401\"\u003e#63401\u003c/a\u003e (Also check package name validity in...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/ad1c695fada682764bb510dd680e8f175ae54094\"\u003e\u003ccode\u003ead1c695\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63368\"\u003e#63368\u003c/a\u003e (Harden ATA package name filtering) into release-6.0 (\u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63372\"\u003e#63372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/0725fb4664a1d5ec94040b6d94db77dc1cc354e4\"\u003e\u003ccode\u003e0725fb4\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63310\"\u003e#63310\u003c/a\u003e (Mark class property initializers as...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/607a22a90d1a5a1b507ce01bb8cd7ec020f954e7\"\u003e\u003ccode\u003e607a22a\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.2 and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/9e72ab71b575e26795d0d9eac3d2d9957beed17c\"\u003e\u003ccode\u003e9e72ab7\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63239\"\u003e#63239\u003c/a\u003e (Fix missing lib files in reused pro...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/35ff23d4b0cc715691323ebe54f523c16fe6e3a5\"\u003e\u003ccode\u003e35ff23d\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63163\"\u003e#63163\u003c/a\u003e (Port anyFunctionType subtype fix an...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/e175b69138038953d4e85bf6529afe88d56d8fbe\"\u003e\u003ccode\u003ee175b69\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.1-rc and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/af4caac0e91e838c46b3fdc1c9afacad68800f89\"\u003e\u003ccode\u003eaf4caac\u003c/code\u003e\u003c/a\u003e Update LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/8efd7e8544d8b35c9b33bca44a3124aa2613bf09\"\u003e\u003ccode\u003e8efd7e8\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into release-6.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/TypeScript/compare/v5.9.2...v6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid-js` from 1.9.3 to 1.9.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/3be495cec52bf78d7cc61f054af00320ecf4058c\"\u003e\u003ccode\u003e3be495c\u003c/code\u003e\u003c/a\u003e v1.9.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/4649b373d659d7a2a7c843e526f363828f69f4c6\"\u003e\u003ccode\u003e4649b37\u003c/code\u003e\u003c/a\u003e Update DOM expression runtimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/265648bd575ddca2263ed48930f13bc90e600100\"\u003e\u003ccode\u003e265648b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/a22dd2950d7344eb0df40bc8373fcd936ed356d3\"\u003e\u003ccode\u003ea22dd29\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2696\"\u003e#2696\u003c/a\u003e from brenelz/fix-resource-initial-value-inference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/4b1919a3763993f69ba087bbbc81ac0bc6fa5fa2\"\u003e\u003ccode\u003e4b1919a\u003c/code\u003e\u003c/a\u003e Fix createResource initial value inference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/3ed47531c0285e931603b89a4470d3039d44da50\"\u003e\u003ccode\u003e3ed4753\u003c/code\u003e\u003c/a\u003e Tighten produce draft proxy invariant test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/75525f0e95f6b3f017502f77e8f9898d9327c3d1\"\u003e\u003ccode\u003e75525f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2690\"\u003e#2690\u003c/a\u003e from brenelz/fix/2668-leaked-produce-draft-proxy-inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/a7959caadbcb544927f2d473f6da4f4cae195f35\"\u003e\u003ccode\u003ea7959ca\u003c/code\u003e\u003c/a\u003e Fix proxy invariant crash in draft production\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/cfde0a128baa7b8bc7d8f6543b4fa68d285e74f6\"\u003e\u003ccode\u003ecfde0a1\u003c/code\u003e\u003c/a\u003e Harden store prototype pollution guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/43cbc98eb4eb7c38223c23f8901fc70a5625c633\"\u003e\u003ccode\u003e43cbc98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2683\"\u003e#2683\u003c/a\u003e from thomasbuilds/prototype-fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/solidjs/solid/compare/v1.9.3...v1.9.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@playwright/test` from 1.59.1 to 1.61.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright/releases\"\u003e@​playwright/test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.61.0\u003c/h2\u003e\n\u003ch2\u003e🔑 WebAuthn passkeys\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-credentials\"\u003eCredentials\u003c/a\u003e virtual authenticator, available via \u003ca href=\"https://playwright.dev/docs/api/class-browsercontext#browser-context-credentials\"\u003ebrowserContext.credentials\u003c/a\u003e, lets tests register passkeys and answer \u003ccode\u003enavigator.credentials.create()\u003c/code\u003e / \u003ccode\u003enavigator.credentials.get()\u003c/code\u003e ceremonies in the page — no real hardware key required, works in all browsers:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst context = await browser.newContext();\r\n\u003cp\u003e// Seed a passkey your backend provisioned for a test user.\u003cbr /\u003e\nawait context.credentials.create('example.com', {\u003cbr /\u003e\nid: credentialId,\u003cbr /\u003e\nuserHandle,\u003cbr /\u003e\nprivateKey,\u003cbr /\u003e\npublicKey,\u003cbr /\u003e\n});\u003cbr /\u003e\nawait context.credentials.install();\u003c/p\u003e\n\u003cp\u003econst page = await context.newPage();\u003cbr /\u003e\nawait page.goto('\u003ca href=\"https://example.com/login\"\u003ehttps://example.com/login\u003c/a\u003e');\u003cbr /\u003e\n// The page's navigator.credentials.get() is answered with the seeded passkey.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou can also let the app register a passkey once in a setup test, read it back with \u003ca href=\"https://playwright.dev/docs/api/class-credentials#credentials-get\"\u003ecredentials.get()\u003c/a\u003e, and seed it into later tests — see \u003ca href=\"https://playwright.dev/docs/api/class-credentials\"\u003eCredentials\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e🗃️ Web Storage\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-webstorage\"\u003eWebStorage\u003c/a\u003e API, available via \u003ca href=\"https://playwright.dev/docs/api/class-page#page-local-storage\"\u003epage.localStorage\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-page#page-session-storage\"\u003epage.sessionStorage\u003c/a\u003e, reads and writes the page's storage for the current origin:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eawait page.localStorage.setItem('token', 'abc');\r\nconst token = await page.localStorage.getItem('token');\r\nconst items = await page.sessionStorage.items();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/docs/api/class-apiresponse#api-response-security-details\"\u003eapiResponse.securityDetails()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-apiresponse#api-response-server-addr\"\u003eapiResponse.serverAddr()\u003c/a\u003e mirror the browser-side \u003ca href=\"https://playwright.dev/docs/api/class-response#response-security-details\"\u003eresponse.securityDetails()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-response#response-server-addr\"\u003eresponse.serverAddr()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBrowser and Screencast\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003eartifactsDir\u003c/code\u003e in \u003ca href=\"https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e controls where artifacts such as traces and downloads are stored when attached to an existing browser.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003ecursor\u003c/code\u003e in \u003ca href=\"https://playwright.dev/docs/api/class-screencast#screencast-show-actions\"\u003escreencast.showActions()\u003c/a\u003e controls the cursor decoration rendered for pointer actions.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eonFrame\u003c/code\u003e callback in \u003ca href=\"https://playwright.dev/docs/api/class-screencast#screencast-start\"\u003escreencast.start()\u003c/a\u003e now receives a \u003ccode\u003etimestamp\u003c/code\u003e of when the frame was presented by the browser.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTest runner\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://playwright.dev/docs/api/class-testoptions#test-options-video\"\u003etestOptions.video\u003c/a\u003e option now supports the same set of modes as \u003ccode\u003etrace\u003c/code\u003e: new \u003ccode\u003e'on-all-retries'\u003c/code\u003e, \u003ccode\u003e'retain-on-first-failure'\u003c/code\u003e and \u003ccode\u003e'retain-on-failure-and-retries'\u003c/code\u003e values. See the \u003ca href=\"https://playwright.dev/docs/test-use-options#video-modes\"\u003evideo modes table\u003c/a\u003e for which runs are recorded and kept in each mode.\u003c/li\u003e\n\u003cli\u003eSupported \u003ccode\u003eexpect.soft.poll(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-fullconfig#full-config-argv\"\u003efullConfig.argv\u003c/a\u003e — a snapshot of \u003ccode\u003eprocess.argv\u003c/code\u003e from the runner process, handy for reading custom arguments passed after the \u003ccode\u003e--\u003c/code\u003e separator.\u003c/li\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-fullconfig#full-config-fail-on-flaky-tests\"\u003efullConfig.failOnFlakyTests\u003c/a\u003e mirrors the config option, so reporters can explain why a flaky run failed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/docs/api/class-testinfo#test-info-errors\"\u003etestInfo.errors\u003c/a\u003e now lists each sub-error of an \u003ccode\u003eAggregateError\u003c/code\u003e as a separate entry.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/1cc5a90cfa3eaa430b1a991963100f95126caa47\"\u003e\u003ccode\u003e1cc5a90\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41295\"\u003e#41295\u003c/a\u003e): chore: PLAYWRIGHT_TRACING_NO_WEBSOCKET_FRAMES and PLAYWR...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/a6772bdede34028cbbd417a3b3d778801899e870\"\u003e\u003ccode\u003ea6772bd\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41280\"\u003e#41280\u003c/a\u003e): Revert \u0026quot;fix(trace-viewer): add keyboard navigation to `N...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/8133dcf97d52818d36022ed37797a616ff6cb934\"\u003e\u003ccode\u003e8133dcf\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41283\"\u003e#41283\u003c/a\u003e): docs: add Ubuntu 26.04 and Node.js 26.x to system requir...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/812432e070afec9e44d22e95915f975965b7d5b7\"\u003e\u003ccode\u003e812432e\u003c/code\u003e\u003c/a\u003e chore: mark v1.61.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41277\"\u003e#41277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/ac05145c8d9eb1303c8f3bfd4d860b6d1ca261ae\"\u003e\u003ccode\u003eac05145\u003c/code\u003e\u003c/a\u003e fix(fetch): report serverAddr and securityDetails for reused sockets (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41267\"\u003e#41267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/056efc9f5c0a870d0944e53a835d6283a77f200f\"\u003e\u003ccode\u003e056efc9\u003c/code\u003e\u003c/a\u003e fix(trace-viewer): add keyboard navigation to \u003ccode\u003eNetworkFilters\u003c/code\u003e component (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/41f7b9a0db0d1ada12ff0d9244393eea8f81b796\"\u003e\u003ccode\u003e41f7b9a\u003c/code\u003e\u003c/a\u003e chore: fixes uncovered by the .NET 1.61 roll (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41266\"\u003e#41266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/ba507783ae48724a1882f6423d8e8ec208bf366a\"\u003e\u003ccode\u003eba50778\u003c/code\u003e\u003c/a\u003e fix(mcp): assign caps as array for legacy --vision flag (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41253\"\u003e#41253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/b8ee5ae27fd068e3744852209dfcb5c1a142909f\"\u003e\u003ccode\u003eb8ee5ae\u003c/code\u003e\u003c/a\u003e docs: release notes for v1.61 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41261\"\u003e#41261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/49c1f694c9bc06c9d1f6966afe8b6dfd4f388b3e\"\u003e\u003ccode\u003e49c1f69\u003c/code\u003e\u003c/a\u003e fix(trace viewer): load trace from a local file (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41263\"\u003e#41263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.59.1...v1.61.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/bun` from 1.3.12 to 1.3.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bun\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@astrojs/sitemap` from 3.7.2 to 3.7.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/releases\"\u003e@​astrojs/sitemap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​astrojs/sitemap\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.7.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16837\"\u003e#16837\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jdevalk\"\u003e\u003ccode\u003e@​jdevalk\u003c/code\u003e\u003c/a\u003e! - Improves \u003ccode\u003e\u0026lt;lastmod\u0026gt;\u003c/code\u003e accuracy in the sitemap index. Each \u003ccode\u003e\u0026lt;sitemap\u0026gt;\u003c/code\u003e entry in \u003ccode\u003esitemap-index.xml\u003c/code\u003e is now stamped with the most recent \u003ccode\u003elastmod\u003c/code\u003e of the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URL \u003ccode\u003elastmod\u003c/code\u003e, the entry falls back to the \u003ccode\u003elastmod\u003c/code\u003e option as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/blob/main/packages/integrations/sitemap/CHANGELOG.md\"\u003e@​astrojs/sitemap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16837\"\u003e#16837\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jdevalk\"\u003e\u003ccode\u003e@​jdevalk\u003c/code\u003e\u003c/a\u003e! - Improves \u003ccode\u003e\u0026lt;lastmod\u0026gt;\u003c/code\u003e accuracy in the sitemap index. Each \u003ccode\u003e\u0026lt;sitemap\u0026gt;\u003c/code\u003e entry in \u003ccode\u003esitemap-index.xml\u003c/code\u003e is now stamped with the most recent \u003ccode\u003elastmod\u003c/code\u003e of the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URL \u003ccode\u003elastmod\u003c/code\u003e, the entry falls back to the \u003ccode\u003elastmod\u003c/code\u003e option as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/1e4916333554cf3798d20cd33f4dbf91e2844891\"\u003e\u003ccode\u003e1e49163\u003c/code\u003e\u003c/a\u003e [ci] release (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16832\"\u003e#16832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Stamp sitemap index entries with per-file lastmod (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16837\"\u003e#16837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/5a8cd099fe373f907b8884cd596eee76a8d48952\"\u003e\u003ccode\u003e5a8cd09\u003c/code\u003e\u003c/a\u003e refactor: update tsconfig to use TypeScript project references (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16505\"\u003e#16505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/5c543c595def9826acdd71c1cb88f08f8d63f1a5\"\u003e\u003ccode\u003e5c543c5\u003c/code\u003e\u003c/a\u003e refactor(astro): add internal entry points for test (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16473\"\u003e#16473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/f7566b86ff720544bd52fad87d1251b21a311033\"\u003e\u003ccode\u003ef7566b8\u003c/code\u003e\u003c/a\u003e refactor: unify test setup (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16445\"\u003e#16445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/ba2dbf180595ae0c1c3e6f1ccf7ee1cbac07e5b1\"\u003e\u003ccode\u003eba2dbf1\u003c/code\u003e\u003c/a\u003e refactor(astro): correct Fixture type signatures in test-utils (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16380\"\u003e#16380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/245f30050b9044a99aa6ca42f09858a353c143ce\"\u003e\u003ccode\u003e245f300\u003c/code\u003e\u003c/a\u003e refactor: migrate sitemap tests to typescript (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16353\"\u003e#16353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/88fcc98e58455167afa0233163680b833812b69d\"\u003e\u003ccode\u003e88fcc98\u003c/code\u003e\u003c/a\u003e fix integrations links across docs (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16098\"\u003e#16098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/withastro/astro/commits/@astrojs/sitemap@3.7.3/packages/integrations/sitemap\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@iconify-json/simple-icons` from 1.2.79 to 1.2.86\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/iconify/icon-sets/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astro` from 6.1.8 to 6.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/releases\"\u003eastro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eastro@6.4.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/17109\"\u003e#17109\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/27c80ea92248993e5fce94b2c26d87d611ab6785\"\u003e\u003ccode\u003e27c80ea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ematipico\"\u003e\u003ccode\u003e@​ematipico\u003c/code\u003e\u003c/a\u003e! - Harden the limits on the number of decoding on the URL.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eastro@6.4.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/17035\"\u003e#17035\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/197e50e2e37168a9b9e8a014c13d1308b2220ca1\"\u003e\u003ccode\u003e197e50e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/astrobot-houston\"\u003e\u003ccode\u003e@​astrobot-houston\u003c/code\u003e\u003c/a\u003e! - Fixes \u003ccode\u003egetRelativeLocaleUrl\u003c/code\u003e, \u003ccode\u003egetAbsoluteLocaleUrl\u003c/code\u003e, and \u003ccode\u003egetAbsoluteLocaleUrlList\u003c/code\u003e to strip trailing slashes when \u003ccode\u003etrailingSlash: 'never'\u003c/code\u003e is configured\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16967\"\u003e#16967\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/37197652630ffbc11efaaec1865869410b8dfd70\"\u003e\u003ccode\u003e3719765\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/astrobot-houston\"\u003e\u003ccode\u003e@​astrobot-houston\u003c/code\u003e\u003c/a\u003e! - Fixes double URL-encoded paths returning 400 Bad Request on on-demand routes\u003c/p\u003e\n\u003cp\u003ePreviously, any URL containing a double-encoded character (like \u003ccode\u003e%255B\u003c/code\u003e, which is \u003ccode\u003e[\u003c/code\u003e encoded twice) was unconditionally rejected with a \u003ccode\u003e400 Bad Request\u003c/code\u003e before middleware or route handlers could run. This broke embedded tools like Sanity Studio whose client-side router legitimately produces double-encoded URLs.\u003c/p\u003e\n\u003cp\u003eThe fix replaces the rejection approach with iterative decoding — multi-level percent-encoding is now fully resolved to its canonical form before being passed to middleware and route matching. This preserves the security fix for CVE-2025-66202 (middleware authorization bypas...\n\n_Description has been truncated_","html_url":"https://github.com/getcodethrough/codethrough/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/getcodethrough%2Fcodethrough/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}],"issue_packages":[{"old_version":"6.0.5","new_version":"6.0.6","update_type":"patch","path":null,"pr_created_at":"2026-06-21T02:18:46.000Z","version_change":"6.0.5 → 6.0.6","issue":{"uuid":"4709060405","node_id":"PR_kwDOS67_Ns7oysys","number":2,"state":"closed","title":"Bump the js-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-21T02:20:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-21T02:18:46.000Z","updated_at":"2026-06-21T02:20:59.000Z","time_to_close":124,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"js-dependencies","update_count":15,"packages":[{"name":"oxfmt","old_version":"0.46.0","new_version":"0.55.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"oxlint","old_version":"1.34.0","new_version":"1.70.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"stylelint","old_version":"17.8.0","new_version":"17.13.0","repository_url":"https://github.com/stylelint/stylelint"},{"name":"typescript","old_version":"5.9.2","new_version":"6.0.3","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"solid-js","old_version":"1.9.3","new_version":"1.9.13","repository_url":"https://github.com/solidjs/solid"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.61.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/bun","old_version":"1.3.12","new_version":"1.3.14","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@astrojs/sitemap","old_version":"3.7.2","new_version":"3.7.3","repository_url":"https://github.com/withastro/astro"},{"name":"@iconify-json/simple-icons","old_version":"1.2.79","new_version":"1.2.86","repository_url":"https://github.com/iconify/icon-sets"},{"name":"astro","old_version":"6.1.8","new_version":"6.4.8","repository_url":"https://github.com/withastro/astro"},{"name":"@astrojs/check","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/withastro/astro"},{"name":"@axe-core/playwright","old_version":"4.11.2","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-npm"},{"name":"sharp","old_version":"0.35.1","new_version":"0.35.2","repository_url":"https://github.com/lovell/sharp"},{"name":"@types/convict-format-with-validator","old_version":"6.0.5","new_version":"6.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@anthropic-ai/sdk","old_version":"0.104.1","new_version":"0.105.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the js-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.46.0` | `0.55.0` |\n| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.34.0` | `1.70.0` |\n| [stylelint](https://github.com/stylelint/stylelint) | `17.8.0` | `17.13.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `6.0.3` |\n| [solid-js](https://github.com/solidjs/solid) | `1.9.3` | `1.9.13` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.61.0` |\n| [@types/bun](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun) | `1.3.12` | `1.3.14` |\n| [@astrojs/sitemap](https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap) | `3.7.2` | `3.7.3` |\n| [@iconify-json/simple-icons](https://github.com/iconify/icon-sets) | `1.2.79` | `1.2.86` |\n| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `6.1.8` | `6.4.8` |\n| [@astrojs/check](https://github.com/withastro/astro/tree/HEAD/packages/language-tools/astro-check) | `0.9.8` | `0.9.9` |\n| [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) | `4.11.2` | `4.11.3` |\n| [sharp](https://github.com/lovell/sharp) | `0.35.1` | `0.35.2` |\n| [@types/convict-format-with-validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/convict-format-with-validator) | `6.0.5` | `6.0.6` |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.104.1` | `0.105.0` |\n\nUpdates `oxfmt` from 0.46.0 to 0.55.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md\"\u003eoxfmt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.55.0] - 2026-06-15\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e9a2788b linter/unicorn: Implement \u003ccode\u003eprefer-export-from\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935\"\u003e#22935\u003c/a\u003e) (AliceLanniste)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.54.0] - 2026-06-08\u003c/h2\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965\"\u003e#22965\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003ef88961a oxfmt: Annotate each config option with supported languages (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953\"\u003e#22953\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.52.0] - 2026-05-26\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e16b8058 oxfmt: Support \u003ccode\u003evite-plus/resolveConfig\u003c/code\u003e for vite.config.ts (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454\"\u003e#22454\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.50.0] - 2026-05-15\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e43b9978 formatter/sort_imports: Treat subpath imports as internal (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22440\"\u003e#22440\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.49.0] - 2026-05-11\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6e8e818 oxfmt: Experimental .svelte support (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/21700\"\u003e#21700\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.45.0] - 2026-04-13\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e50c389b oxfmt: Support \u003ccode\u003e.editorconfig\u003c/code\u003e \u003ccode\u003equote_type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20989\"\u003e#20989\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.44.0] - 2026-04-06\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edd2df87 npm: Export package.json for oxlint and oxfmt (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20784\"\u003e#20784\u003c/a\u003e) (kazuya kawaguchi)\u003c/li\u003e\n\u003cli\u003e4216380 oxfmt: Support \u003ccode\u003e.editorconfig\u003c/code\u003e \u003ccode\u003etab_width\u003c/code\u003e fallback (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20988\"\u003e#20988\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.43.0] - 2026-03-30\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6ef440a oxfmt: Support bool for object style options (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/20853\"\u003e#20853\u003c/a\u003e) (leaysgur)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/aa79b5be9915068f60bc361febf2e7496b92fc24\"\u003e\u003ccode\u003eaa79b5b\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.70.0 \u0026amp;\u0026amp; oxfmt v0.55.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23442\"\u003e#23442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/9a2788b3ae60c033a969fbba63733748f8c6130a\"\u003e\u003ccode\u003e9a2788b\u003c/code\u003e\u003c/a\u003e feat(linter/unicorn): implement \u003ccode\u003eprefer-export-from\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935\"\u003e#22935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/44ae845fe19d3700128e50e7e61d98c7a85f3f47\"\u003e\u003ccode\u003e44ae845\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.69.0 \u0026amp;\u0026amp; oxfmt v0.54.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23116\"\u003e#23116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/dadafe3e0874b2b75775d265b24d19d7f446e2bf\"\u003e\u003ccode\u003edadafe3\u003c/code\u003e\u003c/a\u003e docs(oxlint, oxfmt): mention migrate skills in npm READMEs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965\"\u003e#22965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/f88961ae2968ae2a12035111d07c72797812d2fd\"\u003e\u003ccode\u003ef88961a\u003c/code\u003e\u003c/a\u003e docs(oxfmt): annotate each config option with supported languages (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953\"\u003e#22953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/964a7580840f394d67c149ea083e35a1e74c128f\"\u003e\u003ccode\u003e964a758\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.68.0 \u0026amp;\u0026amp; oxfmt v0.53.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22883\"\u003e#22883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/68b455d84f0b18bd6646cfe4f9babb12ec4fc448\"\u003e\u003ccode\u003e68b455d\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.67.0 \u0026amp;\u0026amp; oxfmt v0.52.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22735\"\u003e#22735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/16b8058cd6fd55472cb3a225852ca22db24bb461\"\u003e\u003ccode\u003e16b8058\u003c/code\u003e\u003c/a\u003e feat(oxfmt): Support \u003ccode\u003evite-plus/resolveConfig\u003c/code\u003e for vite.config.ts (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/557020642e27b948e46f73754b82bee452a82f32\"\u003e\u003ccode\u003e5570206\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.66.0 \u0026amp;\u0026amp; oxfmt v0.51.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22528\"\u003e#22528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/25e5cbc76f887cf5c0c2bdfbef8d4a74fd1ce87d\"\u003e\u003ccode\u003e25e5cbc\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.65.0 \u0026amp;\u0026amp; oxfmt v0.50.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22458\"\u003e#22458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oxc-project/oxc/commits/oxfmt_v0.55.0/npm/oxfmt\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oxlint` from 1.34.0 to 1.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/releases\"\u003eoxlint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eoxlint v1.27.0 \u0026amp;\u0026amp; oxfmt v0.12.0\u003c/h2\u003e\n\u003ch1\u003eOxlint v1.27.0\u003c/h1\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e222a8f0 linter/plugins: Implement \u003ccode\u003eSourceCode#isSpaceBetween\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15498\"\u003e#15498\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e2f9735d linter/plugins: Implement \u003ccode\u003econtext.languageOptions\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15486\"\u003e#15486\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003ebc731ff linter/plugins: Stub out all \u003ccode\u003eContext\u003c/code\u003e APIs (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15479\"\u003e#15479\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e5822cb4 linter/plugins: Add \u003ccode\u003eextend\u003c/code\u003e method to \u003ccode\u003eFILE_CONTEXT\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15477\"\u003e#15477\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e7b1e6f3 apps: Add pure rust binaries and release to github (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15469\"\u003e#15469\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003e2a89b43 linter: Introduce debug assertions after fixes to assert validity (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15389\"\u003e#15389\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ead3c45a editor: Add \u003ccode\u003eoxc.path.node\u003c/code\u003e option (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15040\"\u003e#15040\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6f3cd77 linter/no-var: Incorrect warning for blocks (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15504\"\u003e#15504\u003c/a\u003e) (Hamir Mahal)\u003c/li\u003e\n\u003cli\u003e6957fb9 linter/plugins: Do not allow access to \u003ccode\u003eContext#id\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15489\"\u003e#15489\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e7409630 linter/plugins: Allow access to \u003ccode\u003ecwd\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e in ESLint interop mode (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15488\"\u003e#15488\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e732205e parser: Reject \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e in a switch \u003ccode\u003ecase\u003c/code\u003e / \u003ccode\u003edefault\u003c/code\u003e clause (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15225\"\u003e#15225\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003ea17ca32 linter/plugins: Replace \u003ccode\u003eContext\u003c/code\u003e class (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15448\"\u003e#15448\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003eecf2f7b language_server: Fail gracefully when tsgolint executable not found (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15436\"\u003e#15436\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e3c8d3a7 lang-server: Improve logging in failure case for tsgolint (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15299\"\u003e#15299\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003eef71410 linter: Use jsx if source type is JS in fix debug assertion (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15434\"\u003e#15434\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ee32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15426\"\u003e#15426\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e6565dbe linter/switch-case-braces: Skip comments when searching for \u003ccode\u003e:\u003c/code\u003e token (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15425\"\u003e#15425\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15423\"\u003e#15423\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003efde753e linter/plugins: Block access to \u003ccode\u003econtext.settings\u003c/code\u003e in \u003ccode\u003ecreateOnce\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15394\"\u003e#15394\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003eddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15388\"\u003e#15388\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003edac2a9c linter/no-template-curly-in-string: Remove fixer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15387\"\u003e#15387\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003e989b8e3 linter/no-var: Only fix to \u003ccode\u003econst\u003c/code\u003e if the var has an initializer (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15385\"\u003e#15385\u003c/a\u003e) (camc314)\u003c/li\u003e\n\u003cli\u003ecc403f5 linter/plugins: Return empty object for unimplemented parserServices (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15364\"\u003e#15364\u003c/a\u003e) (magic-akari)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e25d577e language_server: Start tools in parallel (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15500\"\u003e#15500\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3c57291 linter/plugins: Optimize loops (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15449\"\u003e#15449\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e3166233 linter/plugins: Remove \u003ccode\u003eArc\u003c/code\u003es (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15431\"\u003e#15431\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e9de1322 linter/plugins: Lazily deserialize settings JSON (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15395\"\u003e#15395\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e3049ec2 linter/plugins: Optimize \u003ccode\u003edeepFreezeSettings\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15392\"\u003e#15392\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003cli\u003e444ebfd linter/plugins: Use single object for \u003ccode\u003eparserServices\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15378\"\u003e#15378\u003c/a\u003e) (overlookmotel)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e97d2104 linter: Update comment in lint.rs about default value for tsconfig path (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15530\"\u003e#15530\u003c/a\u003e) (Connor Shea)\u003c/li\u003e\n\u003cli\u003e2c6bd9e linter: Always refer as \u0026quot;ES2015\u0026quot; instead of \u0026quot;ES6\u0026quot; (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15411\"\u003e#15411\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003ea0c5203 linter/import/named: Update \u0026quot;ES7\u0026quot; comment in examples (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15410\"\u003e#15410\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e3dc24b5 linter,minifier: Always refer as \u0026quot;ES Modules\u0026quot; instead of \u0026quot;ES6 Modules\u0026quot; (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15409\"\u003e#15409\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e2ad77fb linter/no-this-before-super: Correct \u0026quot;Why is this bad?\u0026quot; section (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15408\"\u003e#15408\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003cli\u003e57f0ce1 linter: Add backquotes where appropriate (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15407\"\u003e#15407\u003c/a\u003e) (sapphi-red)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOxfmt v0.12.0\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md\"\u003eoxlint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.70.0] - 2026-06-15\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2e8bda4 linter/vue: Implement no-dupe-keys rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23350\"\u003e#23350\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003e1490a0a linter/react: Implement react-compiler rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23202\"\u003e#23202\u003c/a\u003e) (Boshen)\u003c/li\u003e\n\u003cli\u003edd560ae linter/unicorn: Implement \u003ccode\u003eno-array-fill-with-reference-type\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23397\"\u003e#23397\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003eaf36c2f linter: Add schema for \u003ccode\u003ereact/jsx-curly-brace-presence\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23400\"\u003e#23400\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e47d34a3 linter: Add schema for \u003ccode\u003ereact/jsx-handler-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23393\"\u003e#23393\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ef4250d0 linter: Add schema for \u003ccode\u003eunicorn/import-style\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23386\"\u003e#23386\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e30c74ce linter: Add schema for \u003ccode\u003ejsx_a11y/no-noninteractive-element-to-interactive-role\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23384\"\u003e#23384\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ecfbe8dc linter: Add schema for \u003ccode\u003ejsx_a11y/no-interactive-element-to-noninteractive-role\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23382\"\u003e#23382\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ed15b7ff linter: Add schema for \u003ccode\u003etypescript/no-restricted-types\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23381\"\u003e#23381\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e028a811 linter: Add schema for \u003ccode\u003ejsx-a11y/media-has-caption\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23377\"\u003e#23377\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eb3b1038 linter: Add schema for \u003ccode\u003ejsx-a11y/label-has-associated-control\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23376\"\u003e#23376\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e7ada6b2 linter: Add schema for \u003ccode\u003ejsx_a11y/no-distracting-elements\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23379\"\u003e#23379\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003eee3dd49 linter: Add schema for \u003ccode\u003ejsx-a11y/img-redundant-alt\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23374\"\u003e#23374\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003edf5f8dd linter: Add short descriptions to most lint rules. (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23365\"\u003e#23365\u003c/a\u003e) (Connor Shea)\u003c/li\u003e\n\u003cli\u003ee3fd735 linter: Add schema for \u003ccode\u003ejsx_a11y/alt-text\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23369\"\u003e#23369\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e0f2fff4 linter: Add schema for \u003ccode\u003ereact/exhaustive-deps\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23372\"\u003e#23372\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003ee3e4e10 linter: Add schema for \u003ccode\u003ereact_perf/jsx-no-new-object-as-prop\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23368\"\u003e#23368\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e9366d44 linter: Add schema for \u003ccode\u003eunicorn/prefer-at\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23366\"\u003e#23366\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003ef57b55d linter: Add schema for \u003ccode\u003etypescript/array-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23355\"\u003e#23355\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e0dcf912 linter: Add schema for \u003ccode\u003etypescript/ban-ts-comment\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23354\"\u003e#23354\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e51fa83e linter: Add schema for \u003ccode\u003ereact/no-did-update-set-state\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23357\"\u003e#23357\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e59db0bd linter: Add schema for \u003ccode\u003econsistent-generic-constructors\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23353\"\u003e#23353\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ec4775c0 linter: Add schema for \u003ccode\u003etypescript/consistent-type-assertions\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23349\"\u003e#23349\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e6e516f7 linter: Add schema for \u003ccode\u003etypescript/consistent-type-imports\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23348\"\u003e#23348\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e012134d linter: Add schema for \u003ccode\u003ereact/jsx-no-target-blank\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23345\"\u003e#23345\u003c/a\u003e) (WaterWhisperer)\u003c/li\u003e\n\u003cli\u003e0806aae linter: Add schema for \u003ccode\u003ejsx_a11y/no-noninteractive-tabindex\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23337\"\u003e#23337\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e0708b5a linter: Add schema for \u003ccode\u003ereact/jsx-filename-extension\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23315\"\u003e#23315\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e150bce1 linter: Add schema for \u003ccode\u003etypescript/no-empty-object-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23309\"\u003e#23309\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ef9e36f1 linter: Add schema for \u003ccode\u003etypescript/no-duplicate-type-constituents\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23308\"\u003e#23308\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e937accf linter: Add schema for \u003ccode\u003etypescript/no-invalid-void-type\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23307\"\u003e#23307\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3e042b9 linter: Add schema for \u003ccode\u003etypescript/no-misused-promises\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23306\"\u003e#23306\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eda212d1 linter: Add schema for \u003ccode\u003etypescript/no-unnecessary-condition\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23305\"\u003e#23305\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ef8f0d38 linter: Add schema for \u003ccode\u003etypescript/parameter-properties\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23304\"\u003e#23304\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e2275fc7 linter: Add schema for \u003ccode\u003etypescript/prefer-nullish-coalescing\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23302\"\u003e#23302\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003ed353858 linter: Add schema for \u003ccode\u003etypescript/prefer-string-starts-ends-with\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23301\"\u003e#23301\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e03060f5 linter: Add schema for \u003ccode\u003etypescript/triple-slash-reference\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23300\"\u003e#23300\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e6619cee linter: Add schema for \u003ccode\u003epromise/param-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23298\"\u003e#23298\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e8bf108e linter: Add schema for \u003ccode\u003epromise/catch-or-return\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23297\"\u003e#23297\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e48158d0 linter: Add schema for \u003ccode\u003evitest/consistent-each-for\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23294\"\u003e#23294\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e7e74c98 linter: Add schema for \u003ccode\u003evitest/consistent-test-filename\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23293\"\u003e#23293\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003eff94d4a linter: Add schema for \u003ccode\u003evitest/consistent-vitest-vi\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23292\"\u003e#23292\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e2409a10 linter: Add schema for \u003ccode\u003evitest/prefer-import-in-mock\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23291\"\u003e#23291\u003c/a\u003e) (Sysix)\u003c/li\u003e\n\u003cli\u003e3d782b7 linter: Add schema for \u003ccode\u003ereact/no-unstable-nested-components\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23287\"\u003e#23287\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003cli\u003e0a0bc2f linter/jsx-a11y: Add \u003ccode\u003eallowedRedundantRoles\u003c/code\u003e option to \u003ccode\u003eno-redundant-roles\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22820\"\u003e#22820\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003e80758a5 linter/vue: Implement no-side-effects-in-computed-properties rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23282\"\u003e#23282\u003c/a\u003e) (bab)\u003c/li\u003e\n\u003cli\u003ee3869ac linter: Add schema for \u003ccode\u003ereact/no-object-type-as-default-prop\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23279\"\u003e#23279\u003c/a\u003e) (Mikhail Baev)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/aa79b5be9915068f60bc361febf2e7496b92fc24\"\u003e\u003ccode\u003eaa79b5b\u003c/code\u003e\u003c/a\u003e release(apps): oxlint v1.70.0 \u0026amp;\u0026amp; oxfmt v0.55.0 (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23442\"\u003e#23442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/5cb8d1bcf0c63b34ba91e9f9c36e7a84c76cb496\"\u003e\u003ccode\u003e5cb8d1b\u003c/code\u003e\u003c/a\u003e fix(linter/jsx-a11y/control-has-associated-label): reject excessive label dep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/f682e253892e8e77d7700d1053234e7a53c0dbca\"\u003e\u003ccode\u003ef682e25\u003c/code\u003e\u003c/a\u003e docs(linter): remove manually written options doc for `eslint/prefer-arrow-ca...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/2e8bda49991cfef9cb9182d37e9f304372f53839\"\u003e\u003ccode\u003e2e8bda4\u003c/code\u003e\u003c/a\u003e feat(linter/vue): implement no-dupe-keys rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23350\"\u003e#23350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/64c942cffe0e8829293d1d9f2f046b496759609a\"\u003e\u003ccode\u003e64c942c\u003c/code\u003e\u003c/a\u003e docs(linter): remove manually written options doc for \u003ccode\u003eeslint/no-sequences\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/1490a0a0691908df0ff6659750ca2f3a29396c1a\"\u003e\u003ccode\u003e1490a0a\u003c/code\u003e\u003c/a\u003e feat(linter/react): implement react-compiler rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/965358e6132e84b1828b82e0e8b17f8ac2dec54b\"\u003e\u003ccode\u003e965358e\u003c/code\u003e\u003c/a\u003e refactor(linter): reuse \u003ccode\u003eRuleNoConfig\u003c/code\u003e reference for rule schema (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23390\"\u003e#23390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/dd560ae213490fb208fdaa278562cf9169777f86\"\u003e\u003ccode\u003edd560ae\u003c/code\u003e\u003c/a\u003e feat(linter/unicorn): implement \u003ccode\u003eno-array-fill-with-reference-type\u003c/code\u003e rule (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/af36c2f9cd497c2f233de1902fc96b88804a2d3c\"\u003e\u003ccode\u003eaf36c2f\u003c/code\u003e\u003c/a\u003e feat(linter): add schema for \u003ccode\u003ereact/jsx-curly-brace-presence\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23400\"\u003e#23400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oxc-project/oxc/commit/47d34a304c83f9a34d78d2895c3616206f5888a1\"\u003e\u003ccode\u003e47d34a3\u003c/code\u003e\u003c/a\u003e feat(linter): add schema for \u003ccode\u003ereact/jsx-handler-names\u003c/code\u003e (\u003ca href=\"https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23393\"\u003e#23393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oxc-project/oxc/commits/oxlint_v1.70.0/npm/oxlint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stylelint` from 17.8.0 to 17.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stylelint/stylelint/releases\"\u003estylelint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.13.0\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleaved non-consecutive duplicates with \u003ccode\u003eignore: [\u0026quot;consecutive-duplicates(-*)\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9324\"\u003e#9324\u003c/a\u003e) (\u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-max-type\u003c/code\u003e false positives for nested selectors (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9319\"\u003e#9319\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-type-no-unknown\u003c/code\u003e false positives for \u003ccode\u003einstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9308\"\u003e#9308\u003c/a\u003e) (\u003ca href=\"https://github.com/Mouvedia\"\u003e\u003ccode\u003e@​Mouvedia\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.12.0\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eblock-no-empty\u003c/code\u003e reported range when using comments (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9294\"\u003e#9294\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-property-value-no-unknown\u003c/code\u003e false negatives for custom properties defined in reference files (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003ecaption-side\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9293\"\u003e#9293\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.1\u003c/h2\u003e\n\u003cp\u003eIt fixes 2 bugs.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003enode_modules\u003c/code\u003e ignore for \u003ccode\u003ecodeFilename\u003c/code\u003e paths containing a dot-prefixed directory (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9282\"\u003e#9282\u003c/a\u003e) (\u003ca href=\"https://github.com/tuhtah\"\u003e\u003ccode\u003e@​tuhtah\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-redundant-longhand-properties\u003c/code\u003e range for contiguous redundant longhand properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9273\"\u003e#9273\u003c/a\u003e) (\u003ca href=\"https://github.com/pamelalozano16\"\u003e\u003ccode\u003e@​pamelalozano16\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.0\u003c/h2\u003e\n\u003cp\u003eIt adds 2 features, including a \u003ccode\u003eloader\u003c/code\u003e property to \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e for when the order of appearance in the reference styles matters.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eloader\u003c/code\u003e to experimental \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9251\"\u003e#9251\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eautofixed\u003c/code\u003e to the result object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/8771\"\u003e#8771\u003c/a\u003e) (\u003ca href=\"https://github.com/Rob\"\u003e\u003ccode\u003e@​Rob\u003c/code\u003e\u003c/a\u003e--W).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.10.0\u003c/h2\u003e\n\u003cp\u003eIt adds 3 rules and fixes 4 bugs. You can use the \u003ccode\u003e*-layout-mappings\u003c/code\u003e rules to enforce logical or physical properties, units and keywords.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eselector-no-invalid\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9232\"\u003e#9232\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eunit-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9229\"\u003e#9229\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9233\"\u003e#9233\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: inconsistent error messages when module is not found (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9260\"\u003e#9260\u003c/a\u003e) (\u003ca href=\"https://github.com/ybiquitous\"\u003e\u003ccode\u003e@​ybiquitous\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false negatives for property names in declaration values (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9222\"\u003e#9222\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003e@page\u003c/code\u003e properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9223\"\u003e#9223\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-pseudo-class-no-unknown\u003c/code\u003e false positives for nested \u003ccode\u003ewebkit-scrollbar\u003c/code\u003e part (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9259\"\u003e#9259\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.1\u003c/h2\u003e\n\u003cp\u003eIt fixes 4 bugs. We also documented the \u003ccode\u003emessageArgs\u003c/code\u003e each rule provides to the \u003ccode\u003emessage\u003c/code\u003e configuration property.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eConfigurationError\u003c/code\u003e regression for custom syntaxes (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9245\"\u003e#9245\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: MD5 hash algorithm to SHA256 for caching (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9241\"\u003e#9241\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-no-deprecated\u003c/code\u003e autofix for \u003ccode\u003epage-break-*: always\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9214\"\u003e#9214\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-no-deprecated\u003c/code\u003e false positives for \u003ccode\u003e::part()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9227\"\u003e#9227\u003c/a\u003e) (\u003ca href=\"https://github.com/SaekiTominaga\"\u003e\u003ccode\u003e@​SaekiTominaga\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.0\u003c/h2\u003e\n\u003cp\u003eIt adds 3 new features. Adding the \u003ccode\u003ereferenceFiles\u003c/code\u003e property to your configuration object makes the \u003ccode\u003eno-unknown-animations\u003c/code\u003e, \u003ccode\u003eno-unknown-custom-media\u003c/code\u003e and \u003ccode\u003eno-unknown-custom-properties\u003c/code\u003e rules more useful.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: experimental \u003ccode\u003ereferenceFiles\u003c/code\u003e to configuration object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9179\"\u003e#9179\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: experimental \u003ccode\u003eabortSignal\u003c/code\u003e option to Node.js API for cancellation support (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9213\"\u003e#9213\u003c/a\u003e) (\u003ca href=\"https://github.com/adalinesimonian\"\u003e\u003ccode\u003e@​adalinesimonian\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md\"\u003estylelint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.13.0 - 2026-06-06\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleaved non-consecutive duplicates with \u003ccode\u003eignore: [\u0026quot;consecutive-duplicates(-*)\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9324\"\u003e#9324\u003c/a\u003e) (\u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-max-type\u003c/code\u003e false positives for nested selectors (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9319\"\u003e#9319\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-type-no-unknown\u003c/code\u003e false positives for \u003ccode\u003einstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9308\"\u003e#9308\u003c/a\u003e) (\u003ca href=\"https://github.com/Mouvedia\"\u003e\u003ccode\u003e@​Mouvedia\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.12.0 - 2026-05-20\u003c/h2\u003e\n\u003cp\u003eIt fixes 3 bugs, including a false negative one.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eblock-no-empty\u003c/code\u003e reported range when using comments (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9294\"\u003e#9294\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-property-value-no-unknown\u003c/code\u003e false negatives for custom properties defined in reference files (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003ecaption-side\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9293\"\u003e#9293\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.1 - 2026-05-14\u003c/h2\u003e\n\u003cp\u003eIt fixes 2 bugs.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003enode_modules\u003c/code\u003e ignore for \u003ccode\u003ecodeFilename\u003c/code\u003e paths containing a dot-prefixed directory (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9282\"\u003e#9282\u003c/a\u003e) (\u003ca href=\"https://github.com/tuhtah\"\u003e\u003ccode\u003e@​tuhtah\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003edeclaration-block-no-redundant-longhand-properties\u003c/code\u003e range for contiguous redundant longhand properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9273\"\u003e#9273\u003c/a\u003e) (\u003ca href=\"https://github.com/pamelalozano16\"\u003e\u003ccode\u003e@​pamelalozano16\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.11.0 - 2026-05-05\u003c/h2\u003e\n\u003cp\u003eIt adds 2 features, including a \u003ccode\u003eloader\u003c/code\u003e property to \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e for when the order of appearance in the reference styles matters.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eloader\u003c/code\u003e to experimental \u003ccode\u003ereferenceFiles: {}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9251\"\u003e#9251\u003c/a\u003e) (\u003ca href=\"https://github.com/romainmenke\"\u003e\u003ccode\u003e@​romainmenke\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eautofixed\u003c/code\u003e to the result object (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/8771\"\u003e#8771\u003c/a\u003e) (\u003ca href=\"https://github.com/Rob--W\"\u003e\u003ccode\u003e@​Rob--W\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.10.0 - 2026-05-03\u003c/h2\u003e\n\u003cp\u003eIt adds 3 rules and fixes 4 bugs. You can use the \u003ccode\u003e*-layout-mappings\u003c/code\u003e rules to enforce logical or physical properties, units and keywords.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: \u003ccode\u003eselector-no-invalid\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9232\"\u003e#9232\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003eunit-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9229\"\u003e#9229\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded: \u003ccode\u003evalue-keyword-layout-mappings\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9233\"\u003e#9233\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: inconsistent error messages when module is not found (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9260\"\u003e#9260\u003c/a\u003e) (\u003ca href=\"https://github.com/ybiquitous\"\u003e\u003ccode\u003e@​ybiquitous\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false negatives for property names in declaration values (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9222\"\u003e#9222\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-layout-mappings\u003c/code\u003e false positives for \u003ccode\u003e@page\u003c/code\u003e properties (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9223\"\u003e#9223\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-pseudo-class-no-unknown\u003c/code\u003e false positives for nested \u003ccode\u003ewebkit-scrollbar\u003c/code\u003e part (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9259\"\u003e#9259\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.9.1 - 2026-04-27\u003c/h2\u003e\n\u003cp\u003eIt fixes 4 bugs. We also documented the \u003ccode\u003emessageArgs\u003c/code\u003e each rule provides to the \u003ccode\u003emessage\u003c/code\u003e configuration property.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: \u003ccode\u003eConfigurationError\u003c/code\u003e regression for custom syntaxes (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9245\"\u003e#9245\u003c/a\u003e) (\u003ca href=\"https://github.com/jeddy3\"\u003e\u003ccode\u003e@​jeddy3\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: MD5 hash algorithm to SHA256 for caching (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9241\"\u003e#9241\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eproperty-no-deprecated\u003c/code\u003e autofix for \u003ccode\u003epage-break-*: always\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9214\"\u003e#9214\u003c/a\u003e) (\u003ca href=\"https://github.com/rkdfx\"\u003e\u003ccode\u003e@​rkdfx\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed: \u003ccode\u003eselector-no-deprecated\u003c/code\u003e false positives for \u003ccode\u003e::part()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/pull/9227\"\u003e#9227\u003c/a\u003e) (\u003ca href=\"https://github.com/SaekiTominaga\"\u003e\u003ccode\u003e@​SaekiTominaga\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/7fcee2b3155adb43daa2078762a15c2d9a24e69b\"\u003e\u003ccode\u003e7fcee2b\u003c/code\u003e\u003c/a\u003e Release 17.13.0 (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9342\"\u003e#9342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/3b7287b2eb88474f63f6d17474e87ba836bf1f43\"\u003e\u003ccode\u003e3b7287b\u003c/code\u003e\u003c/a\u003e Refactor to reuse shared utilities (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9337\"\u003e#9337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/8e889c3394f410916343a5e4c2b372ec514184d0\"\u003e\u003ccode\u003e8e889c3\u003c/code\u003e\u003c/a\u003e Bump lint-staged from 17.0.4 to 17.0.5 (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9334\"\u003e#9334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/a74aab46df5a94afa0cf4fddc9faf6eeacf34293\"\u003e\u003ccode\u003ea74aab4\u003c/code\u003e\u003c/a\u003e Bump the stylelint-actions group with 5 updates (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9333\"\u003e#9333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/74c644828b839add46650d67390a0f1094dbcf7a\"\u003e\u003ccode\u003e74c6448\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003edeclaration-block-no-duplicate-properties\u003c/code\u003e false negatives for interleav...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/1cd26ac54ed16b92f77487f85b9305ca320f4085\"\u003e\u003ccode\u003e1cd26ac\u003c/code\u003e\u003c/a\u003e Skip changeset verification on fork PRs CI (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9331\"\u003e#9331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/712b9867f7a1fa631813f577d7941686a10d3a58\"\u003e\u003ccode\u003e712b986\u003c/code\u003e\u003c/a\u003e Fix vulnerable dependencies via \u003ccode\u003enpm audit fix\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9328\"\u003e#9328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/27196b71dbc255bd612ad26dee40bf276a8123b0\"\u003e\u003ccode\u003e27196b7\u003c/code\u003e\u003c/a\u003e Fix CI badge in README.md (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9329\"\u003e#9329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/179bba2e5a3264f9e96baf3318afdf113ea4f8dc\"\u003e\u003ccode\u003e179bba2\u003c/code\u003e\u003c/a\u003e Refactor to use \u003ccode\u003e@import\u003c/code\u003e over \u003ccode\u003e@typedef\u003c/code\u003e for simple imports (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9326\"\u003e#9326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stylelint/stylelint/commit/94eab544e488dddb43829353649da8debd6427b5\"\u003e\u003ccode\u003e94eab54\u003c/code\u003e\u003c/a\u003e Document using our PR template (\u003ca href=\"https://redirect.github.com/stylelint/stylelint/issues/9327\"\u003e#9327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stylelint/stylelint/compare/17.8.0...17.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eInstall script changes\u003c/summary\u003e\n\u003cp\u003eThis version modifies \u003ccode\u003eprepare\u003c/code\u003e script that runs during installation. Review the package contents before updating.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 5.9.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/TypeScript/releases\"\u003etypescript's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTypeScript 6.0.3\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/\"\u003erelease announcement blog post\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22\"\u003efixed issues query for TypeScript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.1%22\"\u003efixed issues query for TypeScript 6.0.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.2%22\"\u003efixed issues query for TypeScript 6.0.2 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.3%22\"\u003efixed issues query for TypeScript 6.0.3 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 6.0\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/\"\u003erelease announcement blog post\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22\"\u003efixed issues query for TypeScript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.1%22\"\u003efixed issues query for TypeScript 6.0.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.2%22\"\u003efixed issues query for TypeScript 6.0.2 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 6.0 Beta\u003c/h2\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/\"\u003erelease announcement\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+6.0.0%22+is%3Aclosed+\"\u003efixed issues query for Typescript 6.0.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTypeScript 5.9.3\u003c/h2\u003e\n\u003cp\u003eNote: this tag was recreated to point at the correct commit. The npm package contained the correct content.\u003c/p\u003e\n\u003cp\u003eFor release notes, check out the \u003ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/\"\u003erelease announcement\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.0 (Beta)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.1 (RC)\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eNo specific changes for TypeScript 5.9.2 (Stable)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\u0026amp;q=milestone%3A%22TypeScript+5.9.3%22+is%3Aclosed+\"\u003efixed issues query for Typescript 5.9.3 (Stable)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDownloads are available on:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript\"\u003enpm\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/050880ce59e30b356b686bd3144efe24f875ebc8\"\u003e\u003ccode\u003e050880c\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.3 and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/eeae9dd0f17aa494658e4ec079dc002e02dd625e\"\u003e\u003ccode\u003eeeae9dd\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63401\"\u003e#63401\u003c/a\u003e (Also check package name validity in...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/ad1c695fada682764bb510dd680e8f175ae54094\"\u003e\u003ccode\u003ead1c695\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63368\"\u003e#63368\u003c/a\u003e (Harden ATA package name filtering) into release-6.0 (\u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63372\"\u003e#63372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/0725fb4664a1d5ec94040b6d94db77dc1cc354e4\"\u003e\u003ccode\u003e0725fb4\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63310\"\u003e#63310\u003c/a\u003e (Mark class property initializers as...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/607a22a90d1a5a1b507ce01bb8cd7ec020f954e7\"\u003e\u003ccode\u003e607a22a\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.2 and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/9e72ab71b575e26795d0d9eac3d2d9957beed17c\"\u003e\u003ccode\u003e9e72ab7\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63239\"\u003e#63239\u003c/a\u003e (Fix missing lib files in reused pro...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/35ff23d4b0cc715691323ebe54f523c16fe6e3a5\"\u003e\u003ccode\u003e35ff23d\u003c/code\u003e\u003c/a\u003e 🤖 Pick PR \u003ca href=\"https://redirect.github.com/microsoft/TypeScript/issues/63163\"\u003e#63163\u003c/a\u003e (Port anyFunctionType subtype fix an...) into release-6.0 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/e175b69138038953d4e85bf6529afe88d56d8fbe\"\u003e\u003ccode\u003ee175b69\u003c/code\u003e\u003c/a\u003e Bump version to 6.0.1-rc and LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/af4caac0e91e838c46b3fdc1c9afacad68800f89\"\u003e\u003ccode\u003eaf4caac\u003c/code\u003e\u003c/a\u003e Update LKG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/TypeScript/commit/8efd7e8544d8b35c9b33bca44a3124aa2613bf09\"\u003e\u003ccode\u003e8efd7e8\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into release-6.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/TypeScript/compare/v5.9.2...v6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid-js` from 1.9.3 to 1.9.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/3be495cec52bf78d7cc61f054af00320ecf4058c\"\u003e\u003ccode\u003e3be495c\u003c/code\u003e\u003c/a\u003e v1.9.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/4649b373d659d7a2a7c843e526f363828f69f4c6\"\u003e\u003ccode\u003e4649b37\u003c/code\u003e\u003c/a\u003e Update DOM expression runtimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/265648bd575ddca2263ed48930f13bc90e600100\"\u003e\u003ccode\u003e265648b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/a22dd2950d7344eb0df40bc8373fcd936ed356d3\"\u003e\u003ccode\u003ea22dd29\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2696\"\u003e#2696\u003c/a\u003e from brenelz/fix-resource-initial-value-inference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/4b1919a3763993f69ba087bbbc81ac0bc6fa5fa2\"\u003e\u003ccode\u003e4b1919a\u003c/code\u003e\u003c/a\u003e Fix createResource initial value inference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/3ed47531c0285e931603b89a4470d3039d44da50\"\u003e\u003ccode\u003e3ed4753\u003c/code\u003e\u003c/a\u003e Tighten produce draft proxy invariant test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/75525f0e95f6b3f017502f77e8f9898d9327c3d1\"\u003e\u003ccode\u003e75525f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2690\"\u003e#2690\u003c/a\u003e from brenelz/fix/2668-leaked-produce-draft-proxy-inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/a7959caadbcb544927f2d473f6da4f4cae195f35\"\u003e\u003ccode\u003ea7959ca\u003c/code\u003e\u003c/a\u003e Fix proxy invariant crash in draft production\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/cfde0a128baa7b8bc7d8f6543b4fa68d285e74f6\"\u003e\u003ccode\u003ecfde0a1\u003c/code\u003e\u003c/a\u003e Harden store prototype pollution guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/solidjs/solid/commit/43cbc98eb4eb7c38223c23f8901fc70a5625c633\"\u003e\u003ccode\u003e43cbc98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/solidjs/solid/issues/2683\"\u003e#2683\u003c/a\u003e from thomasbuilds/prototype-fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/solidjs/solid/compare/v1.9.3...v1.9.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@playwright/test` from 1.59.1 to 1.61.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright/releases\"\u003e@​playwright/test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.61.0\u003c/h2\u003e\n\u003ch2\u003e🔑 WebAuthn passkeys\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-credentials\"\u003eCredentials\u003c/a\u003e virtual authenticator, available via \u003ca href=\"https://playwright.dev/docs/api/class-browsercontext#browser-context-credentials\"\u003ebrowserContext.credentials\u003c/a\u003e, lets tests register passkeys and answer \u003ccode\u003enavigator.credentials.create()\u003c/code\u003e / \u003ccode\u003enavigator.credentials.get()\u003c/code\u003e ceremonies in the page — no real hardware key required, works in all browsers:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst context = await browser.newContext();\r\n\u003cp\u003e// Seed a passkey your backend provisioned for a test user.\u003cbr /\u003e\nawait context.credentials.create('example.com', {\u003cbr /\u003e\nid: credentialId,\u003cbr /\u003e\nuserHandle,\u003cbr /\u003e\nprivateKey,\u003cbr /\u003e\npublicKey,\u003cbr /\u003e\n});\u003cbr /\u003e\nawait context.credentials.install();\u003c/p\u003e\n\u003cp\u003econst page = await context.newPage();\u003cbr /\u003e\nawait page.goto('\u003ca href=\"https://example.com/login\"\u003ehttps://example.com/login\u003c/a\u003e');\u003cbr /\u003e\n// The page's navigator.credentials.get() is answered with the seeded passkey.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eYou can also let the app register a passkey once in a setup test, read it back with \u003ca href=\"https://playwright.dev/docs/api/class-credentials#credentials-get\"\u003ecredentials.get()\u003c/a\u003e, and seed it into later tests — see \u003ca href=\"https://playwright.dev/docs/api/class-credentials\"\u003eCredentials\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e🗃️ Web Storage\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-webstorage\"\u003eWebStorage\u003c/a\u003e API, available via \u003ca href=\"https://playwright.dev/docs/api/class-page#page-local-storage\"\u003epage.localStorage\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-page#page-session-storage\"\u003epage.sessionStorage\u003c/a\u003e, reads and writes the page's storage for the current origin:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eawait page.localStorage.setItem('token', 'abc');\r\nconst token = await page.localStorage.getItem('token');\r\nconst items = await page.sessionStorage.items();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/docs/api/class-apiresponse#api-response-security-details\"\u003eapiResponse.securityDetails()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-apiresponse#api-response-server-addr\"\u003eapiResponse.serverAddr()\u003c/a\u003e mirror the browser-side \u003ca href=\"https://playwright.dev/docs/api/class-response#response-security-details\"\u003eresponse.securityDetails()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-response#response-server-addr\"\u003eresponse.serverAddr()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBrowser and Screencast\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003eartifactsDir\u003c/code\u003e in \u003ca href=\"https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e controls where artifacts such as traces and downloads are stored when attached to an existing browser.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003ecursor\u003c/code\u003e in \u003ca href=\"https://playwright.dev/docs/api/class-screencast#screencast-show-actions\"\u003escreencast.showActions()\u003c/a\u003e controls the cursor decoration rendered for pointer actions.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eonFrame\u003c/code\u003e callback in \u003ca href=\"https://playwright.dev/docs/api/class-screencast#screencast-start\"\u003escreencast.start()\u003c/a\u003e now receives a \u003ccode\u003etimestamp\u003c/code\u003e of when the frame was presented by the browser.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTest runner\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://playwright.dev/docs/api/class-testoptions#test-options-video\"\u003etestOptions.video\u003c/a\u003e option now supports the same set of modes as \u003ccode\u003etrace\u003c/code\u003e: new \u003ccode\u003e'on-all-retries'\u003c/code\u003e, \u003ccode\u003e'retain-on-first-failure'\u003c/code\u003e and \u003ccode\u003e'retain-on-failure-and-retries'\u003c/code\u003e values. See the \u003ca href=\"https://playwright.dev/docs/test-use-options#video-modes\"\u003evideo modes table\u003c/a\u003e for which runs are recorded and kept in each mode.\u003c/li\u003e\n\u003cli\u003eSupported \u003ccode\u003eexpect.soft.poll(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-fullconfig#full-config-argv\"\u003efullConfig.argv\u003c/a\u003e — a snapshot of \u003ccode\u003eprocess.argv\u003c/code\u003e from the runner process, handy for reading custom arguments passed after the \u003ccode\u003e--\u003c/code\u003e separator.\u003c/li\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-fullconfig#full-config-fail-on-flaky-tests\"\u003efullConfig.failOnFlakyTests\u003c/a\u003e mirrors the config option, so reporters can explain why a flaky run failed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/docs/api/class-testinfo#test-info-errors\"\u003etestInfo.errors\u003c/a\u003e now lists each sub-error of an \u003ccode\u003eAggregateError\u003c/code\u003e as a separate entry.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/1cc5a90cfa3eaa430b1a991963100f95126caa47\"\u003e\u003ccode\u003e1cc5a90\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41295\"\u003e#41295\u003c/a\u003e): chore: PLAYWRIGHT_TRACING_NO_WEBSOCKET_FRAMES and PLAYWR...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/a6772bdede34028cbbd417a3b3d778801899e870\"\u003e\u003ccode\u003ea6772bd\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41280\"\u003e#41280\u003c/a\u003e): Revert \u0026quot;fix(trace-viewer): add keyboard navigation to `N...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/8133dcf97d52818d36022ed37797a616ff6cb934\"\u003e\u003ccode\u003e8133dcf\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41283\"\u003e#41283\u003c/a\u003e): docs: add Ubuntu 26.04 and Node.js 26.x to system requir...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/812432e070afec9e44d22e95915f975965b7d5b7\"\u003e\u003ccode\u003e812432e\u003c/code\u003e\u003c/a\u003e chore: mark v1.61.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41277\"\u003e#41277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/ac05145c8d9eb1303c8f3bfd4d860b6d1ca261ae\"\u003e\u003ccode\u003eac05145\u003c/code\u003e\u003c/a\u003e fix(fetch): report serverAddr and securityDetails for reused sockets (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41267\"\u003e#41267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/056efc9f5c0a870d0944e53a835d6283a77f200f\"\u003e\u003ccode\u003e056efc9\u003c/code\u003e\u003c/a\u003e fix(trace-viewer): add keyboard navigation to \u003ccode\u003eNetworkFilters\u003c/code\u003e component (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41\"\u003e#41\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/41f7b9a0db0d1ada12ff0d9244393eea8f81b796\"\u003e\u003ccode\u003e41f7b9a\u003c/code\u003e\u003c/a\u003e chore: fixes uncovered by the .NET 1.61 roll (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41266\"\u003e#41266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/ba507783ae48724a1882f6423d8e8ec208bf366a\"\u003e\u003ccode\u003eba50778\u003c/code\u003e\u003c/a\u003e fix(mcp): assign caps as array for legacy --vision flag (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41253\"\u003e#41253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/b8ee5ae27fd068e3744852209dfcb5c1a142909f\"\u003e\u003ccode\u003eb8ee5ae\u003c/code\u003e\u003c/a\u003e docs: release notes for v1.61 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41261\"\u003e#41261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/49c1f694c9bc06c9d1f6966afe8b6dfd4f388b3e\"\u003e\u003ccode\u003e49c1f69\u003c/code\u003e\u003c/a\u003e fix(trace viewer): load trace from a local file (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41263\"\u003e#41263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.59.1...v1.61.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/bun` from 1.3.12 to 1.3.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bun\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@astrojs/sitemap` from 3.7.2 to 3.7.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/releases\"\u003e@​astrojs/sitemap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​astrojs/sitemap\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.7.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16837\"\u003e#16837\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jdevalk\"\u003e\u003ccode\u003e@​jdevalk\u003c/code\u003e\u003c/a\u003e! - Improves \u003ccode\u003e\u0026lt;lastmod\u0026gt;\u003c/code\u003e accuracy in the sitemap index. Each \u003ccode\u003e\u0026lt;sitemap\u0026gt;\u003c/code\u003e entry in \u003ccode\u003esitemap-index.xml\u003c/code\u003e is now stamped with the most recent \u003ccode\u003elastmod\u003c/code\u003e of the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URL \u003ccode\u003elastmod\u003c/code\u003e, the entry falls back to the \u003ccode\u003elastmod\u003c/code\u003e option as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/blob/main/packages/integrations/sitemap/CHANGELOG.md\"\u003e@​astrojs/sitemap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16837\"\u003e#16837\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jdevalk\"\u003e\u003ccode\u003e@​jdevalk\u003c/code\u003e\u003c/a\u003e! - Improves \u003ccode\u003e\u0026lt;lastmod\u0026gt;\u003c/code\u003e accuracy in the sitemap index. Each \u003ccode\u003e\u0026lt;sitemap\u0026gt;\u003c/code\u003e entry in \u003ccode\u003esitemap-index.xml\u003c/code\u003e is now stamped with the most recent \u003ccode\u003elastmod\u003c/code\u003e of the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URL \u003ccode\u003elastmod\u003c/code\u003e, the entry falls back to the \u003ccode\u003elastmod\u003c/code\u003e option as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/1e4916333554cf3798d20cd33f4dbf91e2844891\"\u003e\u003ccode\u003e1e49163\u003c/code\u003e\u003c/a\u003e [ci] release (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16832\"\u003e#16832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/783c4a6e7789999aac0259e4777c90178adb9a02\"\u003e\u003ccode\u003e783c4a6\u003c/code\u003e\u003c/a\u003e Stamp sitemap index entries with per-file lastmod (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16837\"\u003e#16837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/5a8cd099fe373f907b8884cd596eee76a8d48952\"\u003e\u003ccode\u003e5a8cd09\u003c/code\u003e\u003c/a\u003e refactor: update tsconfig to use TypeScript project references (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16505\"\u003e#16505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/5c543c595def9826acdd71c1cb88f08f8d63f1a5\"\u003e\u003ccode\u003e5c543c5\u003c/code\u003e\u003c/a\u003e refactor(astro): add internal entry points for test (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16473\"\u003e#16473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/f7566b86ff720544bd52fad87d1251b21a311033\"\u003e\u003ccode\u003ef7566b8\u003c/code\u003e\u003c/a\u003e refactor: unify test setup (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16445\"\u003e#16445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/ba2dbf180595ae0c1c3e6f1ccf7ee1cbac07e5b1\"\u003e\u003ccode\u003eba2dbf1\u003c/code\u003e\u003c/a\u003e refactor(astro): correct Fixture type signatures in test-utils (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16380\"\u003e#16380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/245f30050b9044a99aa6ca42f09858a353c143ce\"\u003e\u003ccode\u003e245f300\u003c/code\u003e\u003c/a\u003e refactor: migrate sitemap tests to typescript (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16353\"\u003e#16353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/withastro/astro/commit/88fcc98e58455167afa0233163680b833812b69d\"\u003e\u003ccode\u003e88fcc98\u003c/code\u003e\u003c/a\u003e fix integrations links across docs (\u003ca href=\"https://github.com/withastro/astro/tree/HEAD/packages/integrations/sitemap/issues/16098\"\u003e#16098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/withastro/astro/commits/@astrojs/sitemap@3.7.3/packages/integrations/sitemap\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@iconify-json/simple-icons` from 1.2.79 to 1.2.86\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/iconify/icon-sets/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astro` from 6.1.8 to 6.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/withastro/astro/releases\"\u003eastro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eastro@6.4.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/17109\"\u003e#17109\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/27c80ea92248993e5fce94b2c26d87d611ab6785\"\u003e\u003ccode\u003e27c80ea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ematipico\"\u003e\u003ccode\u003e@​ematipico\u003c/code\u003e\u003c/a\u003e! - Harden the limits on the number of decoding on the URL.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eastro@6.4.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/17035\"\u003e#17035\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/197e50e2e37168a9b9e8a014c13d1308b2220ca1\"\u003e\u003ccode\u003e197e50e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/astrobot-houston\"\u003e\u003ccode\u003e@​astrobot-houston\u003c/code\u003e\u003c/a\u003e! - Fixes \u003ccode\u003egetRelativeLocaleUrl\u003c/code\u003e, \u003ccode\u003egetAbsoluteLocaleUrl\u003c/code\u003e, and \u003ccode\u003egetAbsoluteLocaleUrlList\u003c/code\u003e to strip trailing slashes when \u003ccode\u003etrailingSlash: 'never'\u003c/code\u003e is configured\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/withastro/astro/pull/16967\"\u003e#16967\u003c/a\u003e \u003ca href=\"https://github.com/withastro/astro/commit/37197652630ffbc11efaaec1865869410b8dfd70\"\u003e\u003ccode\u003e3719765\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/astrobot-houston\"\u003e\u003ccode\u003e@​astrobot-houston\u003c/code\u003e\u003c/a\u003e! - Fixes double URL-encoded paths returning 400 Bad Request on on-demand routes\u003c/p\u003e\n\u003cp\u003ePreviously, any URL containing a double-encoded character (like \u003ccode\u003e%255B\u003c/code\u003e, which is \u003ccode\u003e[\u003c/code\u003e encoded twice) was unconditionally rejected with a \u003ccode\u003e400 Bad Request\u003c/code\u003e before middleware or route handlers could run. This broke embedded tools like Sanity Studio whose client-side router legitimately produces double-encoded URLs.\u003c/p\u003e\n\u003cp\u003eThe fix replaces the rejection approach with iterative decoding — multi-level percent-encoding is now fully resolved to its canonical form before being passed to middleware and route matching. This preserves the security fix for CVE-2025-66202 (middleware authorization bypas...\n\n_Description has been truncated_","html_url":"https://github.com/getcodethrough/codethrough/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/getcodethrough%2Fcodethrough/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}}]}