{"id":489,"name":"i18next","ecosystem":"npm","repository_url":"https://github.com/i18next/i18next","issues_count":13759,"created_at":"2025-06-06T15:01:34.834Z","updated_at":"2025-06-06T15:01:34.834Z","purl":"pkg:npm/i18next","metadata":{"id":1851736,"name":"i18next","ecosystem":"npm","description":"i18next internationalization framework","homepage":"https://www.i18next.com","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/i18next/i18next","keywords_array":["i18next","internationalization","i18n","translation","localization","l10n","globalization","gettext"],"namespace":null,"versions_count":529,"first_release_published_at":"2012-01-03T13:06:12.544Z","latest_release_published_at":"2025-05-25T06:49:52.141Z","latest_release_number":"25.2.1","last_synced_at":"2025-05-25T06:55:21.346Z","created_at":"2022-04-09T17:25:47.887Z","updated_at":"2025-05-25T06:55:23.676Z","registry_url":"https://www.npmjs.com/package/i18next","install_command":"npm install i18next","documentation_url":null,"metadata":{"funding":[{"type":"individual","url":"https://locize.com"},{"type":"individual","url":"https://locize.com/i18next.html"},{"type":"individual","url":"https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"}],"dist-tags":{"latest":"25.2.1"}},"repo_metadata":{"id":2056419,"uuid":"2994517","full_name":"i18next/i18next","owner":"i18next","description":" i18next: learn once - translate everywhere","archived":false,"fork":false,"pushed_at":"2024-10-13T14:17:05.000Z","size":23640,"stargazers_count":7731,"open_issues_count":29,"forks_count":642,"subscribers_count":81,"default_branch":"master","last_synced_at":"2024-10-18T16:21:17.411Z","etag":null,"topics":["deno","ecosystem","flexibility","i18n","internationalization","javascript","nodejs","translation"],"latest_commit_sha":null,"homepage":"https://www.i18next.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/i18next.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-12-16T12:37:42.000Z","updated_at":"2024-10-18T06:39:06.000Z","dependencies_parsed_at":"2023-07-05T18:01:44.051Z","dependency_job_id":"87e97912-121a-4c5f-a6d2-8609cd0bae5a","html_url":"https://github.com/i18next/i18next","commit_stats":{"total_commits":1946,"total_committers":252,"mean_commits":7.722222222222222,"dds":0.5642343268242549,"last_synced_commit":"1736965d1f21612c80e391b25574fe657de840a6"},"previous_names":[],"tags_count":452,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i18next","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221432308,"owners_count":16819985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"i18next","name":"i18next","uuid":"8546082","kind":"organization","description":"Organization for i18next.com and anything i18next related.","email":null,"website":"https://www.i18next.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/8546082?v=4","repositories_count":55,"last_synced_at":"2024-04-08T15:22:41.994Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/i18next","funding_links":[],"total_stars":26383,"followers":152,"following":0,"created_at":"2022-11-02T16:24:04.743Z","updated_at":"2024-04-08T15:22:45.789Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i18next","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i18next/repositories"},"tags":[{"name":"v23.16.2","sha":"758420143fe612a298057111fe1cc4c9f8a44d9d","kind":"tag","published_at":"2024-10-20T12:47:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.16.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.2/manifests"},{"name":"v23.16.1","sha":"07c791f0b41449a38c2da5a4ed384e26c50ac438","kind":"tag","published_at":"2024-10-19T15:47:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.16.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.1/manifests"},{"name":"v23.16.0","sha":"1736965d1f21612c80e391b25574fe657de840a6","kind":"tag","published_at":"2024-10-13T14:16:53.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.16.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.16.0/manifests"},{"name":"v23.15.2","sha":"60e3779e7635b63794d071127143dd2e2e18f5f5","kind":"tag","published_at":"2024-10-05T07:07:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.15.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.2/manifests"},{"name":"v23.15.1","sha":"0d82641d0e53e4463541bd25f2e35666aba28406","kind":"tag","published_at":"2024-09-10T08:05:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.15.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.1/manifests"},{"name":"v23.15.0","sha":"e5170ad9d024c4279e8682a21f741491316ccd9e","kind":"tag","published_at":"2024-09-09T14:44:42.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.15.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.15.0/manifests"},{"name":"v23.14.0","sha":"0083b3a80f344281897f2727712078b6872d0107","kind":"tag","published_at":"2024-08-19T08:51:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.14.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.14.0/manifests"},{"name":"v23.13.0","sha":"d7fcec65faf4cb8f232a721d481e0d29ed684159","kind":"tag","published_at":"2024-08-16T04:49:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.13.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.13.0/manifests"},{"name":"v23.12.7","sha":"202465a5b7115337f03490436f88737284e279e3","kind":"tag","published_at":"2024-08-15T17:55:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.7","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.7/manifests"},{"name":"v23.12.6","sha":"35d97577c953e91cddd880362deb47428030ccce","kind":"tag","published_at":"2024-08-15T15:54:42.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.6","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.6/manifests"},{"name":"v23.12.5","sha":"21fdd90e2e1b50b2bd974caffa7f5a21753b8359","kind":"tag","published_at":"2024-08-15T15:49:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.5","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.5/manifests"},{"name":"v23.12.4","sha":"141ec9c5ddf1719c60e0be90075030ef76f7c066","kind":"tag","published_at":"2024-08-15T15:19:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.4","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.4/manifests"},{"name":"v23.12.3","sha":"076e37a180db8aef2c8a25cabb39749a1df9ca30","kind":"tag","published_at":"2024-08-12T21:44:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.3/manifests"},{"name":"v23.12.2","sha":"83cfe9cd0f58023b76402b176bfe9ca04accac10","kind":"tag","published_at":"2024-07-19T09:06:18.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.2/manifests"},{"name":"v23.12.1","sha":"4002c1721573704f7dc9c62460b714ef33eda638","kind":"tag","published_at":"2024-07-14T12:12:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.1/manifests"},{"name":"v23.12.0","sha":"b9ae2395198584237e0dae5a5c78d75c262e72ab","kind":"tag","published_at":"2024-07-14T11:06:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.12.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.12.0/manifests"},{"name":"v23.11.5","sha":"bfbb7d8eaed3dd9dc0ca27bd4f71f5cc17d92f49","kind":"tag","published_at":"2024-05-20T17:15:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.5","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.5/manifests"},{"name":"v23.11.4","sha":"9ce9150766763bc5b36b408d21b9b5aa316d0d73","kind":"tag","published_at":"2024-05-10T08:04:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.4","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.4/manifests"},{"name":"v23.11.3","sha":"99d6d69520d44d46b15bb5090dc2c913731526c8","kind":"tag","published_at":"2024-04-29T06:51:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.3/manifests"},{"name":"v23.11.2","sha":"c9e2bf5a1eeff27dd017eb068314377b0990d081","kind":"tag","published_at":"2024-04-14T13:02:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.2/manifests"},{"name":"v23.11.1","sha":"2a2a6824ad5da5619bae9309bdbf05e0952e1d06","kind":"tag","published_at":"2024-04-09T17:40:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.1/manifests"},{"name":"v23.11.0","sha":"e8efbf02ee69798249b96a37bd195f9be20d66fc","kind":"tag","published_at":"2024-04-08T15:55:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.11.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.11.0/manifests"},{"name":"v23.10.1","sha":"da6d6544ffd55860eba1e1073c77015e0ea02208","kind":"tag","published_at":"2024-03-08T06:10:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.10.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.10.1/manifests"},{"name":"v23.10.0","sha":"14598e2b74d55b87c8d57783ac370d8a9c0c3f38","kind":"tag","published_at":"2024-02-22T12:11:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.10.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.10.0/manifests"},{"name":"v23.9.0","sha":"f66289e1a2365c602239b19ea70542caa89dba76","kind":"tag","published_at":"2024-02-18T16:15:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.9.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.9.0/manifests"},{"name":"v23.8.3","sha":"2f3384ba5bf7422e387d320f3a347cf3d28e417a","kind":"tag","published_at":"2024-02-17T13:17:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.8.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.3/manifests"},{"name":"v23.8.2","sha":"4ce76aec6301506bd9a792ff39ecd009ff7598c2","kind":"tag","published_at":"2024-01-31T13:58:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.8.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.2/manifests"},{"name":"v23.8.1","sha":"70591073b81298c158017950f8b9626fc0ed3608","kind":"tag","published_at":"2024-01-29T06:10:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.8.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.1/manifests"},{"name":"v23.8.0","sha":"eb1207c6bf5f0d539eac1ab29f9b5192bbc3470d","kind":"tag","published_at":"2024-01-28T10:44:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.8.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.8.0/manifests"},{"name":"v23.7.20","sha":"cf6b91f59eb29cf7a8dc7812fcab44db86009417","kind":"tag","published_at":"2024-01-26T12:02:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.20","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.20/manifests"},{"name":"v23.7.19","sha":"8ac8be62f555c4b3a32cf06f2bad4da987fef0f3","kind":"tag","published_at":"2024-01-24T22:41:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.19","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.19/manifests"},{"name":"v23.7.18","sha":"ffd59fd5eaba94c6c5594de3731704cd8fb0f459","kind":"tag","published_at":"2024-01-20T22:01:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.18","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.18/manifests"},{"name":"v23.7.17","sha":"873b4f4e97d33c8f5e55d73cc1327a324ebbb7e6","kind":"tag","published_at":"2024-01-20T12:00:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.17","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.17/manifests"},{"name":"v23.7.16","sha":"5ab0cd08d1cb3fd68162ce3e16b9960d3ca9d26c","kind":"tag","published_at":"2024-01-04T11:19:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.16","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.16/manifests"},{"name":"v23.7.15","sha":"2fecf35211f8c24a7705302f3fc71611226254d5","kind":"tag","published_at":"2024-01-03T10:37:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.15","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.15/manifests"},{"name":"v23.7.14","sha":"0ba52bfd4e425c8db4ea2238baae0b130501c17f","kind":"tag","published_at":"2024-01-02T20:06:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.14","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.14/manifests"},{"name":"v23.7.13","sha":"36b87d949870ca4c2e0edc5c2c58db457933be84","kind":"tag","published_at":"2023-12-30T15:28:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.13","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.13/manifests"},{"name":"v23.7.12","sha":"8ae4599082a9eb5d00e1c002f0af6a40b3512e79","kind":"tag","published_at":"2023-12-28T15:04:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.12","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.12/manifests"},{"name":"v23.7.11","sha":"a6c6680b151fd66e4b4cc2f443aaeaa5d057a453","kind":"tag","published_at":"2023-12-14T21:55:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.11","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.11/manifests"},{"name":"v23.7.10","sha":"ca47349b5bb50677f61cc8eaa5dce008edc5c096","kind":"tag","published_at":"2023-12-14T15:13:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.10","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.10/manifests"},{"name":"v23.7.9","sha":"f212295d007fd7538da046ecfd7b9667fd4e675b","kind":"tag","published_at":"2023-12-06T20:15:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.9","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.9/manifests"},{"name":"v23.7.8","sha":"760b5d7cbef017bc729b3756de46559f40b9f8b4","kind":"tag","published_at":"2023-12-06T20:10:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.8","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.8/manifests"},{"name":"v23.7.7","sha":"7b042486092bcc298d2f1d485c3ebc09e0088494","kind":"tag","published_at":"2023-11-28T14:09:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.7","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.7/manifests"},{"name":"v23.7.6","sha":"7df42ed86e4ce5ff48f58846d086b4cf36d241e1","kind":"tag","published_at":"2023-11-13T12:25:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.6","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.6/manifests"},{"name":"v23.7.5","sha":"2ac4d82ed751bd31e2b547b26281abb7c95f7e1e","kind":"tag","published_at":"2023-11-13T10:56:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.5","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.5/manifests"},{"name":"v23.7.4","sha":"0d80bef5873e76c301e67b932a87c3e8c173f04c","kind":"tag","published_at":"2023-11-13T10:47:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.4","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.4/manifests"},{"name":"v23.7.3","sha":"4e8022eadee9ccc601972ad4cf8e74a4c9a97a3b","kind":"tag","published_at":"2023-11-11T07:23:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.3/manifests"},{"name":"v23.7.2","sha":"a5e5e3ee13c1c30083decc1ee12743009cbf2e47","kind":"tag","published_at":"2023-11-10T23:00:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.2/manifests"},{"name":"v23.7.1","sha":"f15deb989d81bdd9c4ec40bc9976d6c2673929e4","kind":"tag","published_at":"2023-11-10T13:50:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.1/manifests"},{"name":"v23.7.0","sha":"a3f7451e1852cf49692e5d64b064fc3e7f43ccd3","kind":"tag","published_at":"2023-11-10T13:27:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.7.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.7.0/manifests"},{"name":"v23.6.0","sha":"a5191c8947bb012d46801f8e280d2e118dcce299","kind":"tag","published_at":"2023-10-18T16:05:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.6.0/manifests"},{"name":"v23.5.1","sha":"f6aea8d40039e4593dfcb0dabb54ad6d1ba14f85","kind":"tag","published_at":"2023-09-08T09:34:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.5.1/manifests"},{"name":"v23.5.0","sha":"2d42064303fbb7bedb229b0197e850155dacfffe","kind":"tag","published_at":"2023-09-07T08:51:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.5.0/manifests"},{"name":"v23.4.9","sha":"958460479b97a029e3e70522b59aaabd3eff9775","kind":"tag","published_at":"2023-09-05T17:13:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.9","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.9/manifests"},{"name":"v23.4.8","sha":"da59db205eab6950f6d298f278ce0ab1132b7845","kind":"tag","published_at":"2023-09-05T16:01:21.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.8","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.8/manifests"},{"name":"v23.4.7","sha":"e8e59115b04362fe68e5a4cdd34385f735ec07db","kind":"tag","published_at":"2023-09-05T15:35:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.7","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.7/manifests"},{"name":"v23.4.6","sha":"9bfbc1c3c30317b8181ad4ec108266b38eb22178","kind":"tag","published_at":"2023-08-25T14:09:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.6","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.6/manifests"},{"name":"v23.4.5","sha":"76f89b03cb50a0f8520dce4be83f7d073351a2a0","kind":"tag","published_at":"2023-08-22T18:38:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.5","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.5/manifests"},{"name":"v23.4.4","sha":"3dbcb257512de0998589c979f2d89f436ac819b7","kind":"tag","published_at":"2023-08-09T08:52:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.4","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.4/manifests"},{"name":"v23.4.3","sha":"181dcbdfc0fca21e3b4702972ad845fee6976bb1","kind":"tag","published_at":"2023-08-08T13:58:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.3/manifests"},{"name":"v23.4.2","sha":"75248db5ac95a82f9b8c927ca14018e9660f0cb1","kind":"tag","published_at":"2023-08-06T19:15:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.2/manifests"},{"name":"v23.4.1","sha":"b33ceea8f03fcc1a736d9bd6597bf0108e4838d1","kind":"tag","published_at":"2023-07-29T11:34:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.1/manifests"},{"name":"v23.4.0","sha":"9d3f01b56789b3a63cad00947674077ba6184e58","kind":"tag","published_at":"2023-07-29T06:19:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.4.0/manifests"},{"name":"v23.3.0","sha":"549ada89c7e2f6de80678d3b229561db3fc52e73","kind":"tag","published_at":"2023-07-26T05:42:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.3.0/manifests"},{"name":"v23.2.11","sha":"815cd837eae346193af4ae767fad0b617e59b091","kind":"tag","published_at":"2023-07-12T19:09:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.11","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.11/manifests"},{"name":"v23.2.10","sha":"3a1b4993d530779ade3c6e840213831e4c92701b","kind":"tag","published_at":"2023-07-12T05:13:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.10","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.10/manifests"},{"name":"v23.2.9","sha":"24a52e9c2c0d990a4529886c008e66408b76f89a","kind":"tag","published_at":"2023-07-11T20:14:26.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.9","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.9/manifests"},{"name":"v23.2.8","sha":"94eb1c68fc230a2a6cb179d6a9e628d7a5362cef","kind":"tag","published_at":"2023-07-06T20:26:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.8","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.8/manifests"},{"name":"v23.2.7","sha":"7e752ae8450cc147eaaaec26b9146226f79b7c3e","kind":"tag","published_at":"2023-07-04T12:30:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.7","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.7/manifests"},{"name":"v23.2.6","sha":"1708185d784e749b61a58c1e4a4756d8c6ada878","kind":"tag","published_at":"2023-06-29T13:30:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.6","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.6/manifests"},{"name":"v23.2.5","sha":"bf17cf1bcdd23f1ecec5bdaa813c317f501a08f3","kind":"tag","published_at":"2023-06-29T04:47:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.5","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.5/manifests"},{"name":"v23.2.4","sha":"25ef5c8ea056ecf65812ead5dbf971f4a5848049","kind":"tag","published_at":"2023-06-23T05:01:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.4","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.4/manifests"},{"name":"v23.2.3","sha":"5fb74d516ccd6bfee4a6a3e5339ef1bdd52c55ee","kind":"tag","published_at":"2023-06-22T05:14:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.3","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.3/manifests"},{"name":"v23.2.2","sha":"81d76045eef27f6ad1c724ee223f6ecc8c34d3c6","kind":"tag","published_at":"2023-06-21T08:29:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.2/manifests"},{"name":"v23.2.1","sha":"dd573c7ff6a678ba3901868bd4c67b0a8f44b0a5","kind":"tag","published_at":"2023-06-20T09:05:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.1/manifests"},{"name":"v23.2.0","sha":"80817865025ffab920b1ec150066f8dae711c4bb","kind":"tag","published_at":"2023-06-19T11:36:07.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.2.0/manifests"},{"name":"v23.1.0","sha":"ca898d65f3eb8c7be9dc8f22bab1b78aeac9e7cc","kind":"tag","published_at":"2023-06-16T13:12:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.1.0/manifests"},{"name":"v23.0.2","sha":"18a1929907e9c806b256f65b666ba97491d93f7e","kind":"tag","published_at":"2023-06-15T16:42:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v23.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.2/manifests"},{"name":"v23.0.1","sha":"c45439eee0ab7303b5ea02b6fb2f1e7c22a9cd08","kind":"tag","published_at":"2023-06-15T08:34:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v23.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.1/manifests"},{"name":"v23.0.0","sha":"76ba008ca9db7d8115be7ad51a7012a5edc6980a","kind":"tag","published_at":"2023-06-15T08:29:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v23.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v23.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v23.0.0/manifests"},{"name":"v22.5.1","sha":"51ef11d0703b193b71bcb6263dc585765221fec6","kind":"tag","published_at":"2023-06-06T15:19:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v22.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.5.1/manifests"},{"name":"v22.5.0","sha":"495debde2961f7d1a4043c984cfa8006515b0a85","kind":"tag","published_at":"2023-05-18T20:56:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.5.0/manifests"},{"name":"v22.4.15","sha":"d4229c3c1866f0cc64314b9bac7fffacac1195fe","kind":"tag","published_at":"2023-04-19T15:39:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.15","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.15/manifests"},{"name":"v22.4.14","sha":"ad67e60aa8f8144fdf165fdbe6dcfe6093d6b851","kind":"tag","published_at":"2023-04-02T11:27:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.14","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.14/manifests"},{"name":"v22.4.13","sha":"dd133af54f071deadbd8fd9dd95e0153b4e6deea","kind":"tag","published_at":"2023-03-21T06:24:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.13","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.13/manifests"},{"name":"v22.4.12","sha":"0a27a72c07fd4ece0308073bcd30285eb4e6f95e","kind":"tag","published_at":"2023-03-17T06:26:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.12","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.12/manifests"},{"name":"v22.4.11","sha":"7da1717e9c4b4c378c6a7af36868d10e6ac4c0e1","kind":"tag","published_at":"2023-03-06T21:53:26.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.11","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.11/manifests"},{"name":"v22.4.10","sha":"d787dd22d1ad775aea68ae53bfa04784285cb0eb","kind":"tag","published_at":"2023-02-17T11:48:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.10","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.10/manifests"},{"name":"v22.4.9","sha":"a334583a7752bf83a62da10fae035af53641784b","kind":"tag","published_at":"2023-01-08T14:45:53.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.9","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.9/manifests"},{"name":"v22.4.8","sha":"5bd9ac037867edbb45fcdf9976e3b5ea48f164d5","kind":"tag","published_at":"2023-01-03T12:37:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.8","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.8/manifests"},{"name":"v22.4.7","sha":"c3e116bde0fe95be120eb3700ad398e23dd02ebc","kind":"tag","published_at":"2023-01-02T20:32:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.7","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.7/manifests"},{"name":"v22.4.6","sha":"5698af18ce30d6688c1ea354734c2e6279e83bbe","kind":"tag","published_at":"2022-12-19T09:47:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.6","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.6/manifests"},{"name":"v22.4.5","sha":"c503aa9b00cac4ff6d8863f559a7555a501b7eed","kind":"tag","published_at":"2022-12-13T10:25:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.5","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.5/manifests"},{"name":"v22.4.4","sha":"66572465b4c6584e905a4bf9dca6e2ee12a91afc","kind":"tag","published_at":"2022-12-13T07:10:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.4","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.4/manifests"},{"name":"v22.4.3","sha":"c0bc1a6b4c74f8c32fd9bdb84e40a38835791c76","kind":"tag","published_at":"2022-12-12T09:16:07.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.3","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.3/manifests"},{"name":"v22.4.2","sha":"71489525080f08907e771f1a7ef2a9fd4e43117e","kind":"tag","published_at":"2022-12-12T07:49:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.2/manifests"},{"name":"v22.4.1","sha":"1c4ab4788d10e8107c5e6df47b7d8b084e2eae01","kind":"tag","published_at":"2022-12-11T21:09:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.1/manifests"},{"name":"v22.4.0","sha":"18d109436b948777ff6d659f4b781e616fcbe40a","kind":"tag","published_at":"2022-12-11T17:13:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.4.0/manifests"},{"name":"v22.3.0","sha":"15b47dffeaad911c7ece4437060c8fabe2e91867","kind":"tag","published_at":"2022-12-10T19:33:40.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.3.0/manifests"},{"name":"v22.2.0","sha":"2f4aea32c02c65c836390c6ba98aa43a40920719","kind":"tag","published_at":"2022-12-10T15:17:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.2.0/manifests"},{"name":"v22.1.5","sha":"c28c0d73d288bbe0734f2171653b3e68606a8b72","kind":"tag","published_at":"2022-12-09T09:54:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.5","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.5/manifests"},{"name":"v22.1.4","sha":"97e0b4ffcc7da4db8261b901afcfa1d3f71bafe6","kind":"tag","published_at":"2022-12-07T13:36:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.4","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.4/manifests"},{"name":"v22.1.3","sha":"d111f5943fbb6f48495a47a45d365ca137d3db46","kind":"tag","published_at":"2022-12-07T13:23:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.3","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.3/manifests"},{"name":"v22.1.2","sha":"fcb925e5095d31fdc4f3aa46b50edd7a33cfae93","kind":"tag","published_at":"2022-12-07T10:47:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.2/manifests"},{"name":"v22.1.1","sha":"31f85f19e9fc97f1de4b8884ea85280b47918655","kind":"tag","published_at":"2022-12-07T10:40:21.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.1/manifests"},{"name":"v22.1.0","sha":"32331b5ca657975d6fa43da7b9d7c61af27c05ca","kind":"tag","published_at":"2022-12-07T10:07:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.1.0/manifests"},{"name":"v22.0.8","sha":"7eecc6a815e83c576a0ca9241b501bbd1752b6e7","kind":"tag","published_at":"2022-12-05T11:53:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.8","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.8/manifests"},{"name":"v22.0.7","sha":"07c755063c1d27ed232e5134e8aad21e43d8b90b","kind":"tag","published_at":"2022-12-05T07:35:19.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.7","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.7/manifests"},{"name":"v22.0.6","sha":"77da0d1d78a40a7e45a6f3ec877b1a32879b78b9","kind":"tag","published_at":"2022-11-17T13:45:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.6","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.6/manifests"},{"name":"v22.0.5","sha":"abb7651a7cbf5a8dffe7b2557f5e42555193e15d","kind":"tag","published_at":"2022-11-12T16:37:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.5","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.5/manifests"},{"name":"v22.0.4","sha":"ecfa1bd26a94bb265871df6c6d85a211a2351be6","kind":"tag","published_at":"2022-10-28T19:00:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.4","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.4/manifests"},{"name":"v22.0.3","sha":"f00b57c1d87b359a8d737903f67a0a486604c25e","kind":"tag","published_at":"2022-10-27T07:52:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.3/manifests"},{"name":"v22.0.2","sha":"96613faccfea2cbf95de8ffce12119611af65e00","kind":"tag","published_at":"2022-10-21T06:43:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.2/manifests"},{"name":"v22.0.1","sha":"df759b2ff0030358bc46c02528a28d40de5c6465","kind":"tag","published_at":"2022-10-19T16:32:40.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.1/manifests"},{"name":"v22.0.0","sha":"fce9cb1dac8aee6903644f816f4582968f9d5ccf","kind":"tag","published_at":"2022-10-19T06:54:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v22.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v22.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v22.0.0/manifests"},{"name":"v21.10.0","sha":"6bc410b08cdcc33007ecd231787c679d38ee4933","kind":"tag","published_at":"2022-10-06T09:00:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.10.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.10.0/manifests"},{"name":"v21.9.2","sha":"66bf71876d16f42cebf008a704d7582b890745e6","kind":"tag","published_at":"2022-09-18T06:42:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.9.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.2/manifests"},{"name":"v21.9.1","sha":"9304a251e54d58cda88fb484299bef67f2025c2e","kind":"tag","published_at":"2022-08-16T08:31:18.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.9.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.1/manifests"},{"name":"v21.9.0","sha":"e3c9172fe0de3a7c4d3adcff40614baf22714b83","kind":"tag","published_at":"2022-08-08T17:12:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.9.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.9.0/manifests"},{"name":"v21.8.16","sha":"fbaf139ccb3e95b78311e41f0db6186ad438b5b1","kind":"tag","published_at":"2022-07-30T15:51:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.16","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.16/manifests"},{"name":"v21.8.15","sha":"6afdfbf75cdac7f877e5f30db6ccd4ea5cf57094","kind":"tag","published_at":"2022-07-30T12:39:19.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.15","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.15/manifests"},{"name":"v21.8.14","sha":"26a4d277b541cd55bfe64c12f081209b99ba73bd","kind":"tag","published_at":"2022-07-13T20:47:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.14","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.14/manifests"},{"name":"v21.8.13","sha":"b1697ca9c18cde8e9f27092c88ed70fe36c0980a","kind":"tag","published_at":"2022-07-06T06:11:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.13","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.13/manifests"},{"name":"v21.8.12","sha":"aa941d8f3f03d119584eed7fec111d685bdc1e6e","kind":"tag","published_at":"2022-07-04T12:44:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.12","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.12/manifests"},{"name":"v21.8.11","sha":"37d3dcccdee5b3771c409b237194f379237bc3b9","kind":"tag","published_at":"2022-06-27T10:16:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.11","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.11/manifests"},{"name":"v21.8.10","sha":"2fb4b253765ae5f9c8c2c0b66c12de18ef9cbd1a","kind":"tag","published_at":"2022-06-16T04:42:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.10","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.10/manifests"},{"name":"v21.8.9","sha":"0bff38b47848339d80fb9e49038e7c40d8c159b9","kind":"tag","published_at":"2022-06-07T19:47:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.9","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.9/manifests"},{"name":"v21.8.8","sha":"b1f6c3633faa6bf6cf31c3ea8a7a09fa62f2deb7","kind":"tag","published_at":"2022-06-03T14:35:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.8","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.8/manifests"},{"name":"v21.8.7","sha":"194d22b238f5b18b3059b6145e1b8aea82cfa8bb","kind":"tag","published_at":"2022-06-02T15:04:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.7","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.7/manifests"},{"name":"v21.8.6","sha":"f4f1a99321eb2e879a0d672cfd52d1387a408a6d","kind":"tag","published_at":"2022-06-02T12:25:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.6","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.6/manifests"},{"name":"v21.8.5","sha":"ec6ea21e0f8c401dffda7dcafbe703884bb993ae","kind":"tag","published_at":"2022-05-29T06:36:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.5","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.5/manifests"},{"name":"v21.8.4","sha":"721dfafe2ac4b9951bc6c85d9be60d94dcbc00c4","kind":"tag","published_at":"2022-05-23T09:41:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.4","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.4/manifests"},{"name":"v21.8.3","sha":"88fef6397762a8ad1733710f76b39a728b70fb34","kind":"tag","published_at":"2022-05-18T06:25:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.3","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.3/manifests"},{"name":"v21.8.2","sha":"12f5f4e4f6e9e330f603a474e9735d8d9e5e20b2","kind":"tag","published_at":"2022-05-13T16:00:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.2/manifests"},{"name":"v21.8.1","sha":"d0cd150fd6a9b7fb741aa4fe462942a76b0e490d","kind":"tag","published_at":"2022-05-11T19:28:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.1/manifests"},{"name":"v21.8.0","sha":"9f1a3975168a089f4677840522e2e1b801f53aee","kind":"tag","published_at":"2022-05-08T17:52:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.8.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.8.0/manifests"},{"name":"v21.7.1","sha":"a0daee7d64b19190d9dc335a764a6e1735dfc7aa","kind":"tag","published_at":"2022-05-06T09:51:11.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.7.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.7.1/manifests"},{"name":"v21.7.0","sha":"59c738ea7e325df6281d775c2a03d6a82970f51f","kind":"tag","published_at":"2022-05-06T08:55:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.7.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.7.0/manifests"},{"name":"v21.6.16","sha":"3c757ab15c284fae55298f4bd7cb712b9a0c0d89","kind":"tag","published_at":"2022-04-11T18:08:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.16","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.16/manifests"},{"name":"v21.6.15","sha":"9c98c11e598ee2bf75ab737d9eb4c1480af706b9","kind":"tag","published_at":"2022-04-10T06:19:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.15","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.15/manifests"},{"name":"v21.6.14","sha":"9ca694db52fe5b6f10da5debf3e106e6f615b907","kind":"commit","published_at":"2022-03-09T13:25:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.14","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.14/manifests"},{"name":"v21.6.13","sha":"430a93161b7adaf8580324ea2b2858bd7a2e71a5","kind":"tag","published_at":"2022-03-03T09:39:21.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.13","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.13/manifests"},{"name":"v21.6.12","sha":"f2f72f13df1fe643816069620e7b8edcab4773d2","kind":"tag","published_at":"2022-02-23T16:35:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.12","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.12/manifests"},{"name":"v21.6.11","sha":"cb23709e8d798a4b0806e226f08fc4e836ce5a02","kind":"tag","published_at":"2022-02-07T09:29:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.11","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.11/manifests"},{"name":"v21.6.10","sha":"bfa0c0f0c4a69cf16af7112ded3679b52737ac36","kind":"tag","published_at":"2022-01-26T08:51:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.10","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.10/manifests"},{"name":"v21.6.9","sha":"ce01d6dfbf33e09c1163661557b6d347878f35dc","kind":"tag","published_at":"2022-01-25T17:04:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.9","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.9/manifests"},{"name":"v21.6.8","sha":"7d7dcf84c48b9c9673f0976674b9265696293b8a","kind":"tag","published_at":"2022-01-25T15:55:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.8","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.8/manifests"},{"name":"v21.6.7","sha":"3cc45cfab2ae75fb992e71428199ab3c2b6d268c","kind":"tag","published_at":"2022-01-21T17:26:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.7","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.7/manifests"},{"name":"v21.6.6","sha":"aad62416735de81cf982b589bd770f0d140c08bc","kind":"tag","published_at":"2022-01-11T16:38:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.6","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.6/manifests"},{"name":"v21.6.5","sha":"9331e28c76cb46007d4a63a95d36dfeaabcfc862","kind":"tag","published_at":"2022-01-04T13:42:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.5","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.5/manifests"},{"name":"v21.6.4","sha":"3a2db93b04104556f959e10b4f8f356925685c85","kind":"tag","published_at":"2021-12-28T07:52:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.4","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.4/manifests"},{"name":"v21.6.3","sha":"be1a75c96eea8b0a9e723b680819dd9b6ee79163","kind":"tag","published_at":"2021-12-18T20:38:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.3","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.3/manifests"},{"name":"v21.6.2","sha":"4acad100f8917a4a7d4de3c10dd14815555f0def","kind":"tag","published_at":"2021-12-16T13:49:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.2/manifests"},{"name":"v21.6.1","sha":"e123812ec3c841583a75871bf137b274f32ca0ee","kind":"tag","published_at":"2021-12-16T13:29:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.1/manifests"},{"name":"v21.6.0","sha":"569c5a84ff5e90295a963890c280dc452a654e19","kind":"tag","published_at":"2021-12-08T10:11:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.6.0/manifests"},{"name":"v21.5.6","sha":"22a45fa656ff95bc276de3620d0dafd110ac7ded","kind":"tag","published_at":"2021-12-07T17:10:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.6","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.6/manifests"},{"name":"v21.5.5","sha":"34c5efd32c7825d16d99988396629aeab6d24fbb","kind":"tag","published_at":"2021-12-07T06:23:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.5","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.5/manifests"},{"name":"v21.5.4","sha":"02e7d12e35d7949b55ae5ecb585db36087e69d3f","kind":"tag","published_at":"2021-11-29T09:17:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.4","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.4/manifests"},{"name":"v21.5.3","sha":"fbd60f0e04b0c32a6579fcf29d3cd4fa57b20b3c","kind":"tag","published_at":"2021-11-23T09:05:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.3","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.3/manifests"},{"name":"v21.5.2","sha":"e03dd9b9b50541e2395da52e27ccae026ca2c0f2","kind":"tag","published_at":"2021-11-16T12:39:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.2/manifests"},{"name":"v21.5.1","sha":"2f56df9d508795402d87b9eed255416ba5eb70f3","kind":"tag","published_at":"2021-11-16T06:38:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.1/manifests"},{"name":"v21.5.0","sha":"aafb29ded88c8133bb05cfab118cef8512aefdc8","kind":"tag","published_at":"2021-11-15T16:40:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.5.0/manifests"},{"name":"v21.4.2","sha":"9ad73d5e029eec70935b526a458f80bea4561b17","kind":"tag","published_at":"2021-11-09T20:07:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.2/manifests"},{"name":"v21.4.1","sha":"2f0c9cb4312d235dca502a89d489e1660cf5e7ba","kind":"tag","published_at":"2021-11-08T09:47:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.1/manifests"},{"name":"v21.4.0","sha":"1c72609a940182869ada8ab95e250446ef8f1582","kind":"tag","published_at":"2021-11-02T05:56:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.4.0/manifests"},{"name":"v21.3.3","sha":"cd721b737201980c6a7fd59a9cc2ece7ad54a7ac","kind":"tag","published_at":"2021-10-21T16:17:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.3.3","html_url":"https://github.com/i18next/i18next/releases/tag/v21.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.3/manifests"},{"name":"v21.3.2","sha":"eb9844be2b9fa5f0c3ebf1204c8659c50ebdcf17","kind":"tag","published_at":"2021-10-16T07:03:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.3.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.2/manifests"},{"name":"v21.3.1","sha":"c2eccedbc13295e94b98f14ff85f2bd377d774e0","kind":"tag","published_at":"2021-10-13T20:51:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.1/manifests"},{"name":"v21.3.0","sha":"ba3beecdca13e35c26153e3710314f9f37a13e49","kind":"tag","published_at":"2021-10-12T12:43:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.3.0/manifests"},{"name":"v21.2.6","sha":"8b500bccd029d3f8a0ca42960e8669873325b109","kind":"tag","published_at":"2021-10-10T11:17:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.6","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.6/manifests"},{"name":"v21.2.5","sha":"a6be07b61f972b6d72a875b8cf1c2bfc8a2307e5","kind":"tag","published_at":"2021-10-10T11:00:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.5","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.5/manifests"},{"name":"v21.2.4","sha":"76bb899d86d6a1bf854296638623e1b2ba207c62","kind":"tag","published_at":"2021-10-02T19:29:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.4","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.4/manifests"},{"name":"v21.2.3","sha":"6a0a42b5540c0eff5f0994f1e9af70e1cb305c1f","kind":"tag","published_at":"2021-10-01T21:25:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.3","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.3/manifests"},{"name":"v21.2.2","sha":"b0ab828eddfbb3fab0fd207c7e0329061f085469","kind":"tag","published_at":"2021-10-01T20:39:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.2/manifests"},{"name":"v21.2.1","sha":"d8b86c02e3c9913df926e2e6fdba593a7ce14fa7","kind":"tag","published_at":"2021-10-01T15:42:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.1/manifests"},{"name":"v21.2.0","sha":"3658478cd4e1211f3d2e1b2f96b1da171cbc07b3","kind":"tag","published_at":"2021-09-29T11:23:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.2.0/manifests"},{"name":"v21.1.1","sha":"5a9bba39a56a24b325058a6bd88516c0b19fede9","kind":"tag","published_at":"2021-09-27T12:24:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.1.1/manifests"},{"name":"v21.1.0","sha":"17b192b35a3660434cac604b312dbe33f2fcc8fe","kind":"tag","published_at":"2021-09-24T13:51:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.1.0/manifests"},{"name":"v21.0.2","sha":"e06325ac5623be9b6092ea7ebde3d78bb72fb4f9","kind":"tag","published_at":"2021-09-23T05:05:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v21.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.2/manifests"},{"name":"v21.0.1","sha":"91dba24ba14ee67984acc83d7c9dc7442d75dc59","kind":"tag","published_at":"2021-09-21T06:42:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v21.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.1/manifests"},{"name":"v21.0.0","sha":"578d321434b992ea86d9637b5510c638f20cf8ef","kind":"tag","published_at":"2021-09-20T13:39:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v21.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v21.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v21.0.0/manifests"},{"name":"v20.6.1","sha":"c0e6e1a4dcc712bc5869583830928a118ccc0813","kind":"tag","published_at":"2021-09-08T08:47:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.6.1","html_url":"https://github.com/i18next/i18next/releases/tag/v20.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.6.1/manifests"},{"name":"v20.6.0","sha":"fc699c0f683775feb33ddbbede2d81cde7ad43de","kind":"tag","published_at":"2021-09-01T09:28:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.6.0/manifests"},{"name":"v20.5.0","sha":"6483ae2153eeea1073bf38c7b7a61aba6c662827","kind":"tag","published_at":"2021-08-31T10:14:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.5.0/manifests"},{"name":"v20.4.0","sha":"fa61ddac565d15a85851f5fff2ff0a9b9792e4d6","kind":"tag","published_at":"2021-08-10T09:15:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.4.0/manifests"},{"name":"v20.3.5","sha":"b371a5cb0795c0cd0a96c9f5b977f0bf290adc22","kind":"tag","published_at":"2021-07-25T09:40:19.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.5","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.5/manifests"},{"name":"v20.3.4","sha":"50865264d2cb05e25d45e7ea9796cceeac076686","kind":"tag","published_at":"2021-07-20T15:10:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.4","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.4/manifests"},{"name":"v20.3.3","sha":"5fd43af3fab680fd71b225f7bd8408a0127a8fd1","kind":"tag","published_at":"2021-07-14T07:00:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.3","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.3/manifests"},{"name":"v20.3.2","sha":"3275a472c7f0e0be304ea7240c6d99ebea987667","kind":"tag","published_at":"2021-06-17T19:07:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.2","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.2/manifests"},{"name":"v20.3.1","sha":"2482b6117f7aa6a17ee04d24c4dfc6e46cc2138b","kind":"tag","published_at":"2021-05-28T13:34:40.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.1/manifests"},{"name":"v20.3.0","sha":"44c9e5838d8a737a94922227300c06c2d557980d","kind":"tag","published_at":"2021-05-22T08:08:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.3.0/manifests"},{"name":"v20.2.4","sha":"24ed5abff5041e5f9c208a1d1b45fbb7a137b2d1","kind":"tag","published_at":"2021-05-15T08:39:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.2.4","html_url":"https://github.com/i18next/i18next/releases/tag/v20.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.4/manifests"},{"name":"v20.2.3","sha":"4c60dd41dc01b8e97100712c2e3dfed5f48a7ffa","kind":"tag","published_at":"2021-05-15T06:27:17.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.2.3","html_url":"https://github.com/i18next/i18next/releases/tag/v20.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.3/manifests"},{"name":"v20.2.2","sha":"44f26a6a6dfed51bb93cd2a176f15c5ae334a7c9","kind":"tag","published_at":"2021-04-26T19:33:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v20.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.2/manifests"},{"name":"v20.2.1","sha":"b3f9d4aaa1e0d1e4ab2006402b37c37406bda53a","kind":"tag","published_at":"2021-04-07T05:16:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v20.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.1/manifests"},{"name":"v20.2.0","sha":"b15c7ef7b4d5c9d7503d7927ca2df4f645330494","kind":"tag","published_at":"2021-04-06T19:06:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.2.0/manifests"},{"name":"v20.1.0","sha":"f5ca8f6f4b228bc6ce8b9b8640eec30e99044397","kind":"tag","published_at":"2021-03-24T18:00:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.1.0/manifests"},{"name":"v20.0.0","sha":"629617dab84cdd1613c267ab870248dd769a6abd","kind":"tag","published_at":"2021-03-22T11:20:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v20.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v20.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v20.0.0/manifests"},{"name":"v19.9.2","sha":"a6e09e32301d371092abf2d3bfed1ffa31db9a18","kind":"tag","published_at":"2021-03-09T11:58:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.9.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.2/manifests"},{"name":"v19.9.1","sha":"fe5d90efcf7e3e4d3a022d5ab60a35af51c8d73d","kind":"tag","published_at":"2021-03-01T07:23:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.9.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.1/manifests"},{"name":"v19.9.0","sha":"a33bf136f63a45c825f831c18bb7652163d987a1","kind":"tag","published_at":"2021-02-24T07:43:32.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.9.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.9.0/manifests"},{"name":"v19.8.9","sha":"653fff2a4164443fb64688f9a5e14808e48a7d01","kind":"tag","published_at":"2021-02-17T21:18:44.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.9","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.9/manifests"},{"name":"v19.8.8","sha":"1115959ed79ae1a24b78aa35737ce6939f0ed1cd","kind":"tag","published_at":"2021-02-16T19:32:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.8","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.8/manifests"},{"name":"v19.8.7","sha":"203101cb29da726cb6a460ff16fe3f774c10d109","kind":"tag","published_at":"2021-02-02T08:10:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.7","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.7/manifests"},{"name":"v19.8.6","sha":"ffc213c2f1aafa3f4b67d37ff27761d01b0c5f80","kind":"tag","published_at":"2021-02-01T22:26:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.6","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.6/manifests"},{"name":"v19.8.5","sha":"aeab3cadd23a41092ad81fd9908ce33d7b44d91c","kind":"tag","published_at":"2021-01-28T12:53:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.5","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.5/manifests"},{"name":"v19.8.4","sha":"ba564b3d1f8c66f1323396123378f42ab3225593","kind":"tag","published_at":"2020-11-18T16:59:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.4","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.4/manifests"},{"name":"v19.8.3","sha":"03ef4ed2269cc9b753ef2c81277437ef1b353d64","kind":"tag","published_at":"2020-10-25T10:57:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.3/manifests"},{"name":"v19.8.2","sha":"cb780add1fbe5b829bca2d4d56ed201bf8ab82bd","kind":"tag","published_at":"2020-10-06T13:07:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.2/manifests"},{"name":"v19.8.1","sha":"685aa0feb47d027e72033a566d17e5f5b216bd0e","kind":"tag","published_at":"2020-10-03T19:39:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.1/manifests"},{"name":"v19.8.0","sha":"ba2613bc53c98dffb12c795ff9bf17088a77e989","kind":"tag","published_at":"2020-10-02T11:16:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.8.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.8.0/manifests"},{"name":"v19.7.0","sha":"ee7d49d098d0629a868f194db157e5904dec02e8","kind":"tag","published_at":"2020-08-19T06:44:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.7.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.7.0/manifests"},{"name":"v19.6.3","sha":"f4445f3d73ebd25806ca4a2b37640c76663fd8b9","kind":"tag","published_at":"2020-07-24T14:18:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.6.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.3/manifests"},{"name":"v19.6.2","sha":"b8b014f99a16af73f458c32f167e485447d76f92","kind":"tag","published_at":"2020-07-16T08:25:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.6.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.2/manifests"},{"name":"v19.6.1","sha":"782626076fe58089941f9232aa636dcc98a14e52","kind":"tag","published_at":"2020-07-15T14:04:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.6.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.1/manifests"},{"name":"v19.6.0","sha":"8c6316042ba0a0fd5102240e6b5edfdd4224f578","kind":"tag","published_at":"2020-07-11T05:15:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.6.0/manifests"},{"name":"v19.5.6","sha":"8a3b93b708cababc2a4a740b15cf4ac09fb598d7","kind":"tag","published_at":"2020-07-09T18:55:43.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.6","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.6/manifests"},{"name":"v19.5.5","sha":"c9be7ad858f2bcfe4f28b353af1bc3ed796cd592","kind":"tag","published_at":"2020-07-09T07:42:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.5","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.5/manifests"},{"name":"v19.5.4","sha":"457768bdf5b64b871eecf9c4be072f72a5d27130","kind":"tag","published_at":"2020-07-03T13:08:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.4","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.4/manifests"},{"name":"v19.5.3","sha":"4bfa7a3ace9d5eb6f7dee2fe4640b918242ba441","kind":"tag","published_at":"2020-07-02T06:42:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.3/manifests"},{"name":"v19.5.2","sha":"72c50090284c1a95a3fb39372fe509e8e73e9386","kind":"tag","published_at":"2020-07-01T06:27:26.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.2/manifests"},{"name":"v19.5.1","sha":"67e256998e2d1022fb4e9c01bfe123eed8a3eb91","kind":"tag","published_at":"2020-06-21T17:12:21.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.1/manifests"},{"name":"v19.5.0","sha":"aca450fa8bb99ff81f1e95f83e5810c48f7431be","kind":"tag","published_at":"2020-06-19T11:28:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.5.0/manifests"},{"name":"v19.4.5","sha":"f9404668d5a3c88e395ac0793bfc0f81798f3ac7","kind":"tag","published_at":"2020-05-25T16:28:07.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.5","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.5/manifests"},{"name":"v19.4.4","sha":"278f4f0223e19f2b5b2d7796f016df87c05b8daa","kind":"tag","published_at":"2020-04-27T08:02:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.4","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.4/manifests"},{"name":"v19.4.3","sha":"f22e3424d9fc8e6ab1dcfec0aa92549e9020a610","kind":"tag","published_at":"2020-04-20T11:01:44.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.3/manifests"},{"name":"v19.4.2","sha":"767da4284273e86a2741f75585c6bf20e4ed4ebe","kind":"tag","published_at":"2020-04-15T10:14:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.2/manifests"},{"name":"v19.4.1","sha":"1301fcea6832f182b8b845b359ca8fdc9590f271","kind":"tag","published_at":"2020-04-10T16:21:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.1/manifests"},{"name":"v19.4.0","sha":"72c2677346d1e240f158774cc4f9785ecd981253","kind":"tag","published_at":"2020-04-08T15:51:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.4.0/manifests"},{"name":"v19.3.4","sha":"5b83bff7bc7f1008dbaa3c06ec11af43a7b64e9e","kind":"tag","published_at":"2020-03-27T10:09:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.3.4","html_url":"https://github.com/i18next/i18next/releases/tag/v19.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.4/manifests"},{"name":"v19.3.3","sha":"5cc39347de0b7527e6eca2371cfcb691ca426142","kind":"tag","published_at":"2020-03-16T19:56:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.3.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.3/manifests"},{"name":"v19.3.2","sha":"233eb5a3d43e4cfdfc9e09f63bdf82021de38014","kind":"tag","published_at":"2020-02-24T19:05:58.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.3.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.2/manifests"},{"name":"v19.3.1","sha":"272ff7ff70e9ce6b6733c3cd849fbc526ed99e97","kind":"tag","published_at":"2020-02-20T11:00:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.1/manifests"},{"name":"v19.3.0","sha":"c68b118dacbae8cbc9746a45aea409e02bcf0cd8","kind":"tag","published_at":"2020-02-20T10:21:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.3.0/manifests"},{"name":"v19.2.0","sha":"c135b20cbef90369bc772f571a90a6f37deef035","kind":"tag","published_at":"2020-02-19T07:42:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.2.0/manifests"},{"name":"v19.1.0","sha":"b38b63602a0aaebda3d474c94eda43812e0184d5","kind":"tag","published_at":"2020-01-27T10:11:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.1.0/manifests"},{"name":"v19.0.3","sha":"bae313ceb49a28402f60e422da6af245ad0fb869","kind":"tag","published_at":"2020-01-06T15:11:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v19.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.3/manifests"},{"name":"v19.0.2","sha":"027bcd93f4a2065b792b8ce424ff4c1ca9bbd102","kind":"tag","published_at":"2019-12-12T09:00:18.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v19.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.2/manifests"},{"name":"v19.0.1","sha":"f27eba8e0763740cc3c53bc9d9f7c9068cafcbf0","kind":"tag","published_at":"2019-11-19T13:50:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v19.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.1/manifests"},{"name":"v19.0.0","sha":"3130cd6253f25e0095ee9ea2ffd4f08fad385ce8","kind":"tag","published_at":"2019-10-29T15:43:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v19.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v19.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v19.0.0/manifests"},{"name":"v18.0.1","sha":"1d8e6aec72173920161b5b69b68739039049b769","kind":"tag","published_at":"2019-10-26T08:47:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v18.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v18.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v18.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v18.0.1/manifests"},{"name":"v18.0.0","sha":"0cec5878e9c437f2fa361dedea89141ad51e89e4","kind":"tag","published_at":"2019-10-24T15:16:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v18.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v18.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v18.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v18.0.0/manifests"},{"name":"v17.3.1","sha":"873f056a208e248ca94f865c47141b27a707bc52","kind":"tag","published_at":"2019-10-24T07:20:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v17.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.3.1/manifests"},{"name":"v17.3.0","sha":"bcb2211b5f5e4d30c30fc4d545f99834d17a0f25","kind":"tag","published_at":"2019-10-21T09:30:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v17.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.3.0/manifests"},{"name":"v17.2.0","sha":"bbaa762f3c11a1ad96353a20d6309a260c7557e6","kind":"tag","published_at":"2019-10-11T12:45:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v17.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.2.0/manifests"},{"name":"v17.1.0","sha":"9d3cdbf9228b9393d4414015490f5ec50b73ea5b","kind":"tag","published_at":"2019-10-09T13:47:11.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v17.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.1.0/manifests"},{"name":"v17.0.18","sha":"a0fb30cb04666c34c59d59bbfaaef53ce8e03cd4","kind":"tag","published_at":"2019-10-02T12:09:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.18","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.18/manifests"},{"name":"v17.0.17","sha":"895c2a6815222f979867eaaf90539a9845501e31","kind":"tag","published_at":"2019-10-01T11:11:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.17","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.17/manifests"},{"name":"v17.0.16","sha":"3d350a3d889dda757f4e9b3e7b0bff2e51aa73b8","kind":"tag","published_at":"2019-09-17T11:04:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.16","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.16/manifests"},{"name":"v17.0.15","sha":"ec02f38bc3e60405b1f6ce6f3ee896cc197e764e","kind":"tag","published_at":"2019-09-15T08:14:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.15","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.15/manifests"},{"name":"v17.0.14","sha":"85bbb39d66dc30ade0693c20076cbb4f84fd7652","kind":"tag","published_at":"2019-09-09T08:52:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.14","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.14/manifests"},{"name":"v17.0.13","sha":"eca2f9c305205a460657c861d9cb71708562b7b1","kind":"tag","published_at":"2019-08-29T06:13:43.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.13","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.13/manifests"},{"name":"v17.0.12","sha":"a95da801cd115ddf648f45e630739b64557ca5bb","kind":"tag","published_at":"2019-08-22T07:01:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.12","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.12/manifests"},{"name":"v17.0.11","sha":"30c3b1be7291664b154500a61d91e50e2471b28f","kind":"tag","published_at":"2019-08-10T09:10:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.11","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.11/manifests"},{"name":"v17.0.10","sha":"9a93dd96e8e4d074198a2f7f87d86a6cc756c58b","kind":"tag","published_at":"2019-08-09T06:53:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.10","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.10/manifests"},{"name":"v17.0.9","sha":"bf0264495d0f2b4c0eb890393f5b9c6f72f60b26","kind":"tag","published_at":"2019-08-05T16:09:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.9","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.9/manifests"},{"name":"v17.0.8","sha":"c8466aeaa65b16e2d4f8dfbfed5f769569193fc0","kind":"tag","published_at":"2019-08-01T18:12:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.8","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.8/manifests"},{"name":"v17.0.7","sha":"db9eeb7c11380cb5d6c82eb9f045570866dd9482","kind":"tag","published_at":"2019-07-29T21:12:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.7","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.7/manifests"},{"name":"v17.0.6","sha":"744e57bfdea25524a13d32d14eff0928c2f462aa","kind":"tag","published_at":"2019-07-01T17:22:19.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.6","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.6/manifests"},{"name":"v17.0.5","sha":"03906928b59d1fecda849d29603170e65d9eaec3","kind":"tag","published_at":"2019-07-01T17:17:03.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.5","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.5/manifests"},{"name":"v17.0.4","sha":"76f6aaa8a7e2063b98c4e30c8dec21640e537360","kind":"tag","published_at":"2019-06-19T06:10:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.4","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.4/manifests"},{"name":"v17.0.3","sha":"fce7715bd9a0a77bae8732240a182ef1ed34a785","kind":"tag","published_at":"2019-06-07T07:24:44.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.3/manifests"},{"name":"v17.0.2","sha":"3a26319ca8ab8de0333c2a04f0ee29c3e2c41418","kind":"tag","published_at":"2019-06-06T05:44:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.2/manifests"},{"name":"v17.0.1","sha":"5e6d296d392c455d0e06bc08b53110f0aacfb0c7","kind":"tag","published_at":"2019-06-04T09:50:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.1/manifests"},{"name":"v17.0.0","sha":"0ac771fb82fe01c0cf1d6031331c8901295e4da4","kind":"tag","published_at":"2019-06-04T06:55:44.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v17.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v17.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v17.0.0/manifests"},{"name":"v16.0.0","sha":"120019e9f62e9b49762d6c3799e909681cb809dd","kind":"tag","published_at":"2019-06-03T10:04:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v16.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v16.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v16.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v16.0.0/manifests"},{"name":"v15.1.3","sha":"9ce43adb40f2b5c965f923589b726d00d18a741c","kind":"tag","published_at":"2019-05-23T14:54:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.1.3","html_url":"https://github.com/i18next/i18next/releases/tag/v15.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.3/manifests"},{"name":"v15.1.2","sha":"31201aae794b4ab19abc7a21735630c50c97606a","kind":"tag","published_at":"2019-05-20T14:56:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v15.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.2/manifests"},{"name":"v15.1.0","sha":"bd4a43223351e08a980c27bcf1d0f39e2a25094e","kind":"tag","published_at":"2019-04-25T08:54:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v15.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.1.0/manifests"},{"name":"v15.0.9","sha":"e041e1e0b2ad1cfcb0fcf93d10574bd81f5da940","kind":"tag","published_at":"2019-04-03T06:33:35.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.9","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.9/manifests"},{"name":"v15.0.8","sha":"d4518f40f013fdef9d5866ec57b6b63fc6210ada","kind":"tag","published_at":"2019-03-27T07:19:58.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.8","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.8/manifests"},{"name":"v15.0.7","sha":"aa4a1e5524e65439d54f74e17ac54d066f02ecc8","kind":"tag","published_at":"2019-03-14T07:25:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.7","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.7/manifests"},{"name":"v15.0.6","sha":"f578879beb4a922ea6b68ace2fca7c4edfeb942c","kind":"tag","published_at":"2019-03-06T08:43:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.6","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.6/manifests"},{"name":"v15.0.5","sha":"19f0a89de310bff08011661afc61f76534acd2ac","kind":"tag","published_at":"2019-03-03T14:21:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.5","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.5/manifests"},{"name":"v15.0.4","sha":"65ebf242a83265629358e2e215b8df1a87c7a2a5","kind":"tag","published_at":"2019-02-14T07:51:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.4","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.4/manifests"},{"name":"v15.0.3","sha":"55bcc6dc132491c5c21d98ebe338ccb24d978283","kind":"tag","published_at":"2019-02-13T12:59:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.3/manifests"},{"name":"v15.0.2","sha":"52c18a19475d4fc07cc8dfb195ded3527f74e221","kind":"tag","published_at":"2019-02-11T12:55:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.2/manifests"},{"name":"v15.0.1","sha":"f0665e20ecc1da7d5234853c93e5ff78058ecf4a","kind":"tag","published_at":"2019-02-10T15:56:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.1/manifests"},{"name":"v15.0.0","sha":"5660e397df14751ece9e4aed93070f5800e7ae42","kind":"tag","published_at":"2019-02-09T21:33:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v15.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v15.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v15.0.0/manifests"},{"name":"v14.1.1","sha":"54da34f7d4abca6a8a0dab148b27baf1d9b64067","kind":"tag","published_at":"2019-02-07T11:07:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v14.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v14.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.1.1/manifests"},{"name":"v14.1.0","sha":"51bb65e1a9ebc1464260c2decfd7540bc92e8244","kind":"tag","published_at":"2019-02-07T10:47:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v14.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v14.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.1.0/manifests"},{"name":"v14.0.1","sha":"26a2b80d74e98ebd5d1fb2662284fbaf138d9397","kind":"tag","published_at":"2019-01-24T07:53:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v14.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v14.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.0.1/manifests"},{"name":"v14.0.0","sha":"537b1d6e27a793061db65d5f7b9faace7479088f","kind":"tag","published_at":"2019-01-23T20:16:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v14.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v14.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v14.0.0/manifests"},{"name":"v13.1.5","sha":"45261a2aea433e67a7f1d6a532c1cbe12db1ffe3","kind":"tag","published_at":"2019-01-22T07:49:40.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.5","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.5/manifests"},{"name":"v13.1.4","sha":"f0338401b36ee449d3cf911220d4221bf4a0d35a","kind":"tag","published_at":"2019-01-17T17:48:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.4","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.4/manifests"},{"name":"v13.1.3","sha":"a9979fbbc83f1909a45ef42ae029150ab91e7871","kind":"tag","published_at":"2019-01-17T16:32:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.3","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.3/manifests"},{"name":"v13.1.2","sha":"5bd4b74241bc1d89ac1cc2f2477b528496c571b3","kind":"tag","published_at":"2019-01-12T12:43:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.2/manifests"},{"name":"v13.1.1","sha":"a06a2c47a9755fb9ccc7a6cac32c69e63d67a332","kind":"tag","published_at":"2019-01-09T09:58:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.1/manifests"},{"name":"v13.1.0","sha":"1d22b3e96ed71d53a8cb9986b5e644f53205ded7","kind":"tag","published_at":"2018-12-31T15:36:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v13.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.1.0/manifests"},{"name":"v13.0.1","sha":"6b673243ada67144c12a74a6bd5b4f0ba040c85c","kind":"tag","published_at":"2018-12-25T09:33:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v13.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.0.1/manifests"},{"name":"v13.0.0","sha":"bc583383a501df4a3bd34a38c03d86c370dcd21c","kind":"tag","published_at":"2018-12-14T07:16:43.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v13.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v13.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v13.0.0/manifests"},{"name":"v12.1.0","sha":"e7dd382801e88524ebb1b9285eda215e66848b9e","kind":"tag","published_at":"2018-11-22T10:02:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v12.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v12.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v12.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v12.1.0/manifests"},{"name":"v12.0.0","sha":"400e10da790e6790e4e509287d3b654965824ea6","kind":"tag","published_at":"2018-10-24T07:24:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v12.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v12.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v12.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v12.0.0/manifests"},{"name":"v11.10.2","sha":"504a771092e20102a6cb04e800f7871138287483","kind":"tag","published_at":"2018-10-24T07:19:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.10.2","html_url":"https://github.com/i18next/i18next/releases/tag/v11.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.2/manifests"},{"name":"v11.10.1","sha":"2a26d5c2aab9774c660ba85a1b8cbbc1642379e6","kind":"tag","published_at":"2018-10-22T16:47:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.10.1","html_url":"https://github.com/i18next/i18next/releases/tag/v11.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.1/manifests"},{"name":"v11.10.0","sha":"3e2d0667a9fbe69897c30650ddc613b2a21b6166","kind":"tag","published_at":"2018-10-19T06:28:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.10.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.10.0/manifests"},{"name":"v11.9.1","sha":"0de7e5683565bcda8654aed5e9a59bf1ba916eaa","kind":"tag","published_at":"2018-10-09T07:29:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.9.1","html_url":"https://github.com/i18next/i18next/releases/tag/v11.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.9.1/manifests"},{"name":"v11.9.0","sha":"66b1be165b2a6218091d372c339eeac1c8be0ba1","kind":"tag","published_at":"2018-09-12T08:22:58.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.9.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.9.0/manifests"},{"name":"v11.8.0","sha":"dacff3423958689b82a26ce0e00651d3a1d281cf","kind":"tag","published_at":"2018-09-10T19:36:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.8.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.8.0/manifests"},{"name":"v11.7.0","sha":"f90d144f09591557dff735c20411282b07dd3d7e","kind":"tag","published_at":"2018-09-05T11:42:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.7.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.7.0/manifests"},{"name":"v11.6.0","sha":"8ad22cc156efcb0d91f3cdfbc375835be5bed3fd","kind":"tag","published_at":"2018-08-09T10:35:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.6.0/manifests"},{"name":"v11.5.0","sha":"95d1615b2fb23321140b79dbd7847055dc345b3f","kind":"tag","published_at":"2018-07-26T11:19:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.5.0/manifests"},{"name":"v11.4.0","sha":"d6597d7653751cb3ea79a0f2b98fad4c23603adb","kind":"tag","published_at":"2018-07-21T14:39:18.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.4.0/manifests"},{"name":"v11.3.6","sha":"067012912724b32d482847355b29e7390da7c18e","kind":"tag","published_at":"2018-07-09T17:00:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.6","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.6/manifests"},{"name":"v11.3.5","sha":"1d73ad8e9a7c29587fb47a2d330c590d788b2a3e","kind":"tag","published_at":"2018-07-06T07:53:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.5","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.5/manifests"},{"name":"v11.3.4","sha":"d4d329fd7042f932eedf8bba1d92234707efd04c","kind":"tag","published_at":"2018-07-05T17:44:43.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.4","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.4/manifests"},{"name":"v11.3.3","sha":"dd9cabcebc8a5919abad2c40c7be0bc65a94afca","kind":"tag","published_at":"2018-06-14T12:37:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.3","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.3/manifests"},{"name":"v11.3.2","sha":"9871516aa0fb0e5b12953bd6ba192a4f7cf2c980","kind":"tag","published_at":"2018-05-14T09:55:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.2","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.2/manifests"},{"name":"v11.3.1","sha":"4f6985d7dac98c83e78a7420aa955ce6654aa68f","kind":"tag","published_at":"2018-05-08T07:48:13.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.1/manifests"},{"name":"v11.3.0","sha":"0cb55c0cb3fe16a1b72501292b076bdb23452026","kind":"tag","published_at":"2018-05-08T07:23:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.3.0/manifests"},{"name":"v11.2.3","sha":"b36c0a44bdfaae766944509abe0e290d13dad489","kind":"tag","published_at":"2018-04-19T07:07:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.2.3","html_url":"https://github.com/i18next/i18next/releases/tag/v11.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.3/manifests"},{"name":"v11.2.2","sha":"d10b7d1b9702864ab5c0c6b8441540c01bf1112b","kind":"tag","published_at":"2018-04-13T09:00:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v11.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.2/manifests"},{"name":"v11.2.1","sha":"ca0eead2c61ec3fd0067334aa3ce2af4f083c36b","kind":"tag","published_at":"2018-04-13T08:45:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v11.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.1/manifests"},{"name":"v11.2.0","sha":"515893491a93916d9bc6280b014566689528f5b7","kind":"tag","published_at":"2018-04-13T07:33:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.2.0/manifests"},{"name":"v11.1.1","sha":"a2be0d977c08c223c86f1cf3d37ca818a5e409d4","kind":"tag","published_at":"2018-04-06T06:50:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v11.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.1.1/manifests"},{"name":"v11.0.0","sha":"b66c0e50bc09e5bd93556a9d9c64f1baa3019009","kind":"tag","published_at":"2018-04-05T10:34:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v11.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v11.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v11.0.0/manifests"},{"name":"v10.6.0","sha":"37b63e29e0b6ec49bb6e4fa3440f4675cf0339a1","kind":"tag","published_at":"2018-03-20T10:31:58.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.6.0/manifests"},{"name":"v10.5.1","sha":"b755d3f460919695e5f27b399145c67102972554","kind":"tag","published_at":"2018-03-16T08:27:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v10.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.5.1/manifests"},{"name":"v10.5.0","sha":"d0d131e52222c9526bbfd183bcbcd6b0344ac7ec","kind":"tag","published_at":"2018-02-26T06:54:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.5.0/manifests"},{"name":"v10.4.1","sha":"82e34c52055b6d2b2dc3765bb4f3cdde513642dc","kind":"tag","published_at":"2018-02-16T12:24:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v10.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.4.1/manifests"},{"name":"v10.4.0","sha":"15d7e18e44640fc0a596e11a65f7e675602d2cae","kind":"tag","published_at":"2018-02-16T11:03:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.4.0/manifests"},{"name":"v10.3.0","sha":"3cb51cea60209131152f4835e649561dc0a381ec","kind":"tag","published_at":"2018-01-19T09:26:46.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.3.0/manifests"},{"name":"v10.2.2","sha":"979c99ab3a778fa10b982fb19398ec6824080925","kind":"tag","published_at":"2017-12-29T18:01:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v10.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.2/manifests"},{"name":"v10.2.1","sha":"d87888e8372cc2fe2783ec6c9858dec8bd80a21b","kind":"tag","published_at":"2017-11-24T08:47:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v10.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.1/manifests"},{"name":"v10.2.0","sha":"1e069113606c0424c03b25d268c90b02409061ef","kind":"tag","published_at":"2017-11-24T07:23:26.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.2.0/manifests"},{"name":"v10.1.0","sha":"13422f64c71c5fe63e20b6be57922bdc7f87a5c3","kind":"tag","published_at":"2017-11-21T10:00:39.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.1.0/manifests"},{"name":"v10.0.7","sha":"86411aaf4f7eb697dd4ad3d179322214ce6dff45","kind":"tag","published_at":"2017-10-31T09:41:17.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.7","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.7/manifests"},{"name":"v10.0.6","sha":"f14eb7e80e428230e860a464590b3fd8e1b1ddf6","kind":"tag","published_at":"2017-10-30T07:45:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.6","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.6/manifests"},{"name":"v10.0.4","sha":"00789cb241da0e3970e1c4a443d34ae12f402b50","kind":"tag","published_at":"2017-10-29T19:27:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.4","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.4/manifests"},{"name":"v10.0.3","sha":"1de63bcc3bf54d16dea29a5bfe953513c2e581e1","kind":"tag","published_at":"2017-10-20T08:55:58.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.3/manifests"},{"name":"v10.0.2","sha":"12092f53754f8cd0d5f9390995e21b171821cc2e","kind":"tag","published_at":"2017-10-19T16:59:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.2/manifests"},{"name":"v10.0.1","sha":"4217efecaf6516328ad2f9ea2b3061df33a41cf4","kind":"tag","published_at":"2017-10-10T19:34:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.1/manifests"},{"name":"v10.0.0","sha":"c5113fb62326155e671def12bc7386f44643b0d1","kind":"tag","published_at":"2017-10-09T18:54:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v10.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v10.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v10.0.0/manifests"},{"name":"v9.1.0","sha":"d3b9154624ebc7c9f196dbe269036d0d8bad43ca","kind":"tag","published_at":"2017-10-07T15:13:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v9.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v9.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.1.0/manifests"},{"name":"v9.0.1","sha":"0f2586e1ed3c1e059190ff0ebae3982550a6f756","kind":"tag","published_at":"2017-10-01T13:56:36.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v9.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v9.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.0.1/manifests"},{"name":"v9.0.0","sha":"8e89785691ad1e7180d0160c0c530d83c5c74708","kind":"tag","published_at":"2017-08-25T13:55:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v9.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v9.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v9.0.0/manifests"},{"name":"v8.4.3","sha":"640cfe07505064334e1d13c49f48597e2a71bc10","kind":"tag","published_at":"2017-07-06T14:22:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.4.3","html_url":"https://github.com/i18next/i18next/releases/tag/v8.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.3/manifests"},{"name":"v8.4.2","sha":"ba20c370627604bbf29c0c80f086300b8317be03","kind":"tag","published_at":"2017-06-11T17:15:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v8.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.2/manifests"},{"name":"v8.4.1","sha":"72390c87939ca22bbb369ce344c3bef691653892","kind":"tag","published_at":"2017-06-08T08:59:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v8.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.1/manifests"},{"name":"v8.4.0","sha":"520f5dccf8edecab5fb189eb0631201a08b940c7","kind":"tag","published_at":"2017-05-29T17:07:42.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v8.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.4.0/manifests"},{"name":"v8.3.0","sha":"04c73cc8388a32569ce845fa4bbc1321318f914f","kind":"tag","published_at":"2017-05-19T18:35:28.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v8.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.3.0/manifests"},{"name":"v8.2.1","sha":"13dc29eab90295ab60b17698bb82f2eb7df638eb","kind":"tag","published_at":"2017-05-10T10:02:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v8.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.2.1/manifests"},{"name":"v8.2.0","sha":"47f7b623c7c25953b9b58b1bd616ccbef0bfb4f4","kind":"tag","published_at":"2017-05-09T19:00:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v8.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.2.0/manifests"},{"name":"v8.1.0","sha":"e92f846f2dc02fc890a0068dff59dc9e8e738a10","kind":"tag","published_at":"2017-04-29T15:42:40.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v8.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.1.0/manifests"},{"name":"v8.0.0","sha":"5f6a86d58222b2c209a8e92ef39c7e602b5d3eaa","kind":"tag","published_at":"2017-04-20T09:05:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v8.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v8.0.0/manifests"},{"name":"v7.2.3","sha":"ca1a16f541d6be9cdb77b0b2d393b0ec4e6e38e6","kind":"tag","published_at":"2017-04-14T16:36:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.2.3","html_url":"https://github.com/i18next/i18next/releases/tag/v7.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.3/manifests"},{"name":"v7.2.2","sha":"adefaea804ae8a9cf60042afe1d8cd8acce9a3cd","kind":"tag","published_at":"2017-04-14T07:59:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.2.2","html_url":"https://github.com/i18next/i18next/releases/tag/v7.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.2/manifests"},{"name":"v7.2.1","sha":"1cfcb55e254245c868edff21bfee125d2c3f5005","kind":"tag","published_at":"2017-04-11T11:50:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.2.1","html_url":"https://github.com/i18next/i18next/releases/tag/v7.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.1/manifests"},{"name":"v7.2.0","sha":"92a305aef697374738095964d08fd8493c4e4bee","kind":"tag","published_at":"2017-04-11T11:43:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v7.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.2.0/manifests"},{"name":"v7.1.3","sha":"8fd7fcd59b78f143e87e1dbcfadfab2f7b355c2d","kind":"tag","published_at":"2017-03-23T12:05:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.1.3","html_url":"https://github.com/i18next/i18next/releases/tag/v7.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.3/manifests"},{"name":"v7.1.2","sha":"c2013c8772e4fa5e422f991c18934a7d4dc4ed5b","kind":"tag","published_at":"2017-03-10T12:24:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v7.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.2/manifests"},{"name":"v7.1.1","sha":"96501adb89f4b48dd316d9e4ce93dcee1319b8c2","kind":"tag","published_at":"2017-02-28T19:07:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v7.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.1/manifests"},{"name":"v7.1.0","sha":"0e24b4c4c1deb203008ffd5b3f03b60aba4043b5","kind":"tag","published_at":"2017-02-26T19:31:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v7.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.1.0/manifests"},{"name":"v7.0.1","sha":"7643f7f9762b9e6997ef233a6cd5b4bf64053c54","kind":"tag","published_at":"2017-02-21T08:27:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.0.1/manifests"},{"name":"v7.0.0","sha":"a2fcc66f38dcd67a92434f7d9160ddd34fdf4f41","kind":"tag","published_at":"2017-02-06T19:53:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v7.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v7.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v7.0.0/manifests"},{"name":"v6.1.2","sha":"94ee34b2e32ecea3c9f595569387e736c8b43d55","kind":"tag","published_at":"2017-02-02T06:37:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v6.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.2/manifests"},{"name":"v6.1.1","sha":"5de8fe898c1275fce11405386e4a3cca6e0c7430","kind":"tag","published_at":"2017-02-01T13:46:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v6.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.1/manifests"},{"name":"v6.1.0","sha":"0cfa1767c0def458c6abf60e93722d305012dacf","kind":"tag","published_at":"2017-02-01T11:16:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.1.0/manifests"},{"name":"v6.0.3","sha":"8762519520a133214621c44edadf5a2814017b24","kind":"tag","published_at":"2017-01-28T18:08:06.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.3/manifests"},{"name":"v6.0.2","sha":"3d069d2202e3c38d9c63571c6fbbab54c1f3cb78","kind":"tag","published_at":"2017-01-25T14:54:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.2/manifests"},{"name":"v6.0.1","sha":"5db8e04dc722a5ca5b2a2b7d4b9accabbe8ceb53","kind":"tag","published_at":"2017-01-22T14:37:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.1/manifests"},{"name":"v6.0.0","sha":"01c631f48a4be1b8152da587eb4a7a13d0dd99cd","kind":"tag","published_at":"2017-01-21T18:51:27.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v6.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v6.0.0/manifests"},{"name":"v5.0.0","sha":"6fadf7ade0b1a952c8c74626fe1134ec2d50a702","kind":"tag","published_at":"2017-01-16T19:15:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v5.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v5.0.0/manifests"},{"name":"v4.2.0","sha":"6c57d667a615b6bfe09dac68dbd33e1bc1256eba","kind":"tag","published_at":"2017-01-09T20:10:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.2.0/manifests"},{"name":"v4.1.4","sha":"ef424bd4b643ec5c0c6117afb32f07c57bea3b88","kind":"tag","published_at":"2016-12-23T08:11:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.1.4","html_url":"https://github.com/i18next/i18next/releases/tag/v4.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.4/manifests"},{"name":"v4.1.3","sha":"bb5240da335e991054660733638a577cf3002f79","kind":"tag","published_at":"2016-12-23T08:07:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.1.3","html_url":"https://github.com/i18next/i18next/releases/tag/v4.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.3/manifests"},{"name":"v4.1.2","sha":"ff9e56ce75dfbd784e8f182c62e6eb116aab8383","kind":"tag","published_at":"2016-12-22T12:51:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.1.2","html_url":"https://github.com/i18next/i18next/releases/tag/v4.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.2/manifests"},{"name":"v4.1.1","sha":"85be08f6f188034486e6ef098331c3413eb4c605","kind":"tag","published_at":"2016-12-02T18:49:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.1.1","html_url":"https://github.com/i18next/i18next/releases/tag/v4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.1/manifests"},{"name":"v4.1.0","sha":"562e2203396c6549c5d2d282a0fea488dc1fc4a2","kind":"tag","published_at":"2016-11-20T17:08:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.1.0/manifests"},{"name":"v4.0.0","sha":"d1d6f76e5589e7dda9fa227e4444ea66ad50f223","kind":"tag","published_at":"2016-11-09T20:25:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v4.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v4.0.0/manifests"},{"name":"v3.5.2","sha":"fc51e6861c987e865c606a7a3ebe2f43421f85ce","kind":"tag","published_at":"2016-11-09T20:20:42.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.5.2","html_url":"https://github.com/i18next/i18next/releases/tag/v3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.2/manifests"},{"name":"v3.5.1","sha":"2c36f0cbae20dff4f30204f74281f4fbe513bb93","kind":"tag","published_at":"2016-11-07T18:19:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.1/manifests"},{"name":"v3.5.0","sha":"f15082a4775acc2fd87067c7b5d759cb6929346e","kind":"tag","published_at":"2016-11-07T11:51:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.5.0/manifests"},{"name":"v3.4.4","sha":"62c6917bf873e4425f8dd34bd07439477fda4775","kind":"tag","published_at":"2016-10-17T09:25:53.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.4.4","html_url":"https://github.com/i18next/i18next/releases/tag/v3.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.4/manifests"},{"name":"1.11.5","sha":"6cc8917ed5b7a1a6e5db316644fe57474c150f18","kind":"tag","published_at":"2016-10-11T18:38:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.11.5","html_url":"https://github.com/i18next/i18next/releases/tag/1.11.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.5/manifests"},{"name":"v3.4.3","sha":"dbf369399e7e3519d7996a2818cbeed89ec2f3f8","kind":"tag","published_at":"2016-09-20T13:51:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.4.3","html_url":"https://github.com/i18next/i18next/releases/tag/v3.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.3/manifests"},{"name":"v3.4.2","sha":"66f7a05e1abc8922802071b1563344e3fcff838c","kind":"tag","published_at":"2016-09-15T20:17:45.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.4.2","html_url":"https://github.com/i18next/i18next/releases/tag/v3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.2/manifests"},{"name":"v3.4.1","sha":"978509576717f45492546af207978b85baa7771e","kind":"tag","published_at":"2016-07-14T10:28:10.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.1/manifests"},{"name":"v3.4.0","sha":"edda6dddd990d424ff7062221ab7aec19ecfe7f9","kind":"tag","published_at":"2016-07-13T15:39:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.4.0/manifests"},{"name":"v3.3.1","sha":"753d6fbafa0a7322eb41311e5ba512ce72cf7a3b","kind":"tag","published_at":"2016-06-23T07:43:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"4ff5c542e29e22130f8fc47137e0997e6073ca8d","kind":"tag","published_at":"2016-06-22T06:03:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.3.0/manifests"},{"name":"v3.2.0","sha":"001f04d4737208f2a6aeef0c8bb4c9ec6632497b","kind":"tag","published_at":"2016-06-14T13:30:11.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.2.0/manifests"},{"name":"v3.1.0","sha":"65895129200721f8faed0d06cf4bfede00a99725","kind":"tag","published_at":"2016-05-10T14:00:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.1.0/manifests"},{"name":"v3.0.0","sha":"db3d2b6f77fac8e51b9cea4964206761debc47da","kind":"tag","published_at":"2016-05-09T09:01:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v3.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v3.0.0/manifests"},{"name":"v2.5.1","sha":"e200d8c5a048e24fd114f11a74ef79ef2d9c5296","kind":"tag","published_at":"2016-04-12T13:13:43.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.5.1","html_url":"https://github.com/i18next/i18next/releases/tag/v2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.5.1/manifests"},{"name":"v2.5.0","sha":"0d7ba7f918b264990b7ce1656eeee39c941470d9","kind":"tag","published_at":"2016-04-12T07:38:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.5.0","html_url":"https://github.com/i18next/i18next/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.5.0/manifests"},{"name":"v2.4.1","sha":"9ef8896bae1a1cb0c94b9a06863dd61e078bbc3e","kind":"tag","published_at":"2016-04-01T11:40:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.4.1","html_url":"https://github.com/i18next/i18next/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"85a594cfc7c53f933405e29ad5c1184f84f2d692","kind":"tag","published_at":"2016-03-26T08:53:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.4.0","html_url":"https://github.com/i18next/i18next/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.4.0/manifests"},{"name":"v2.3.5","sha":"8cdb84d2e1327f03e5f080f1667f967e75451bfe","kind":"tag","published_at":"2016-03-17T09:12:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.5","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.5/manifests"},{"name":"v2.3.4","sha":"094c55fd097e47901fd2cf531795a225488c98ff","kind":"tag","published_at":"2016-03-11T09:24:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.4","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.4/manifests"},{"name":"v2.3.3","sha":"1efed3da29ec7aa83180df893663aa94631de75a","kind":"tag","published_at":"2016-03-09T21:55:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.3","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.3/manifests"},{"name":"v2.3.2","sha":"dbb8f28424aff4316fdd9f4ca8b0062d8eda7294","kind":"tag","published_at":"2016-03-09T21:53:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.2","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"0c0742628696e469cb378b3f17020239a86141c1","kind":"tag","published_at":"2016-03-09T20:25:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.1","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"46b0aec1c6bbed7c84d91756cee1b4cd5b5c937a","kind":"tag","published_at":"2016-03-09T14:49:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/v2.3.0","html_url":"https://github.com/i18next/i18next/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/v2.3.0/manifests"},{"name":"2.2.0","sha":"c9680ac04adab73e37ea3c34e32ebb7648be7fd1","kind":"tag","published_at":"2016-02-20T08:18:48.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.2.0","html_url":"https://github.com/i18next/i18next/releases/tag/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.2.0/manifests"},{"name":"2.1.0","sha":"b8c811f71dd93e9d01046aa582ce2af582262383","kind":"tag","published_at":"2016-02-05T09:25:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.1.0","html_url":"https://github.com/i18next/i18next/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.1.0/manifests"},{"name":"2.0.26","sha":"a7bbf6f54c52b917eb308ccf939f945355a35e52","kind":"tag","published_at":"2016-02-03T15:28:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.26","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.26/manifests"},{"name":"2.0.25","sha":"d61228cad44d831969b1de7a99da9f4d326e88fd","kind":"tag","published_at":"2016-02-03T09:37:53.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.25","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.25/manifests"},{"name":"2.0.24","sha":"cf6a1637d16c9310b59587770b01c9733b837d51","kind":"tag","published_at":"2016-02-01T12:13:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.24","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.24/manifests"},{"name":"2.0.23","sha":"404e196d0f0e8c2c65af5750f17a756616d2a410","kind":"tag","published_at":"2016-01-27T07:16:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.23","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.23/manifests"},{"name":"2.0.22","sha":"a796c091cb28a74433f8e8e65de18ed7660a9f13","kind":"tag","published_at":"2016-01-14T14:28:23.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.22","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.22/manifests"},{"name":"2.0.21","sha":"04a95bb5709404dd6a19f20c72cad1f29d7d43a7","kind":"tag","published_at":"2016-01-14T11:42:47.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.21","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.21/manifests"},{"name":"2.0.20","sha":"028cdc78ad599cb7c120862a41d8d989712b396b","kind":"tag","published_at":"2016-01-11T08:41:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.20","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.20/manifests"},{"name":"2.0.19","sha":"2b55bcbc35bebda953956686535e4b5957988d4f","kind":"tag","published_at":"2016-01-09T08:54:54.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.19","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.19/manifests"},{"name":"2.0.18","sha":"04061813a622acb062433badf5c825a5fd616c06","kind":"tag","published_at":"2016-01-08T08:50:16.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.18","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.18/manifests"},{"name":"2.0.17","sha":"6f17fcc43fb050020e3c397846893a462f7af177","kind":"tag","published_at":"2016-01-07T11:41:31.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.17","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.17/manifests"},{"name":"2.0.16","sha":"c86babf8fffb1865911eec061d7cc1749527dbd6","kind":"tag","published_at":"2016-01-06T18:22:01.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.16","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.16/manifests"},{"name":"2.0.15","sha":"0a5ce3b34b180ff598cd5abe1b3c7be8e1737b0f","kind":"tag","published_at":"2016-01-05T15:12:00.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.15","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.15/manifests"},{"name":"2.0.14","sha":"d89e85cf81fb5b4dfdd134736fabdfee8105114e","kind":"tag","published_at":"2016-01-02T19:41:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.14","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.14/manifests"},{"name":"2.0.13","sha":"9c79241ad4cd36994332646966c4320eb00483d8","kind":"tag","published_at":"2016-01-02T18:56:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.13","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.13/manifests"},{"name":"2.0.12","sha":"e87aac909b9ea84138fbfbe821a8f62cf25bf209","kind":"tag","published_at":"2016-01-02T14:13:05.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.12","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.12/manifests"},{"name":"2.0.11","sha":"7df88a8c43a354111e7708487ea8e2cb98096ab1","kind":"tag","published_at":"2016-01-02T13:42:34.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.11","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.11/manifests"},{"name":"2.0.10","sha":"1e6a07ae5fe38834a3f3ff0c2bee2435b9afbcb8","kind":"tag","published_at":"2015-12-26T19:13:24.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.10","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.10/manifests"},{"name":"2.0.9","sha":"22c87c4bc4ac8a66ae59c9f834516ee117647e37","kind":"tag","published_at":"2015-12-24T12:54:52.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.9","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.9/manifests"},{"name":"2.0.8","sha":"c5b5f2384bfc741a8c13a9ca92371829003a3822","kind":"tag","published_at":"2015-12-24T12:52:11.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.8","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.8/manifests"},{"name":"2.0.7","sha":"d1c69e5464c832b6e835c0d94eb88edea4e60f2b","kind":"tag","published_at":"2015-12-24T12:51:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.7","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.7/manifests"},{"name":"2.0.6","sha":"9b07713c5c74ee7bcbc8bfc72994d5a45af907f8","kind":"tag","published_at":"2015-12-24T12:47:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.6","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.6/manifests"},{"name":"2.0.5","sha":"b0c8ae41538d85ef215782e959c66cc592f486a4","kind":"tag","published_at":"2015-12-23T08:14:04.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.5","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.5/manifests"},{"name":"2.0.4","sha":"c4628670c9bbd7c74b9a89c2e6d9c3a797a1d942","kind":"tag","published_at":"2015-12-17T10:35:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.4","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.4/manifests"},{"name":"2.0.3","sha":"e91bf0032099a7a620479e38893df692a522bfb9","kind":"tag","published_at":"2015-12-17T10:34:19.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.3","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.3/manifests"},{"name":"2.0.2","sha":"5ce2fbdacde2070bc656a962ad67bf06394d8ff2","kind":"tag","published_at":"2015-12-17T10:33:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.2","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.2/manifests"},{"name":"2.0.1","sha":"dcc1ba3d27d277f817aaee287283e4b8619116be","kind":"tag","published_at":"2015-12-14T17:58:25.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.1","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.1/manifests"},{"name":"2.0.0","sha":"70d5840ffa1a4f27f94ae19b45909ecf441d73ee","kind":"tag","published_at":"2015-12-12T12:06:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0/manifests"},{"name":"1.11.2","sha":"4a0bd78b5e427b5da20dc1ddc075330cd4467938","kind":"tag","published_at":"2015-12-07T10:48:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.11.2","html_url":"https://github.com/i18next/i18next/releases/tag/1.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.2/manifests"},{"name":"2.0.0-beta.1","sha":"77419bbf71f1c29007fe7cb7a6fb807f7c109d62","kind":"tag","published_at":"2015-12-02T10:40:29.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-beta.1","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-beta.1/manifests"},{"name":"2.0.0-beta.0","sha":"cb98f96bb23c9bc53cc9070409b332f55938c04d","kind":"tag","published_at":"2015-11-29T10:44:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-beta.0","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-beta.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-beta.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-beta.0/manifests"},{"name":"2.0.0-alpha.29","sha":"628e629bd1f7002fa8eab9759a1cf314d1d186e6","kind":"tag","published_at":"2015-11-27T14:03:30.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.29","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.29","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.29/manifests"},{"name":"2.0.0-alpha.28","sha":"529efca3205bce87c2cff2aac4d4dbaaa2f7f5a6","kind":"tag","published_at":"2015-11-27T13:31:08.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.28","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.28","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.28/manifests"},{"name":"2.0.0-alpha.27","sha":"6c633f3d8412f4d52deb2a82a5c9cd5fd9dcd6f2","kind":"tag","published_at":"2015-11-27T13:14:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.27","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.27/manifests"},{"name":"2.0.0-alpha.26","sha":"da7d599f28443c83481ed864a25f3d012a605991","kind":"tag","published_at":"2015-11-27T11:34:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.26","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.26/manifests"},{"name":"2.0.0-alpha.25","sha":"0abf6acc1f0729c36beecefc4cd98ca8ef199f2e","kind":"tag","published_at":"2015-11-27T11:23:33.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.25","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.25/manifests"},{"name":"2.0.0-alpha.24","sha":"fc7a031f9cb70aa612befc7a0062104cfa7541c3","kind":"tag","published_at":"2015-11-25T09:23:50.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/2.0.0-alpha.24","html_url":"https://github.com/i18next/i18next/releases/tag/2.0.0-alpha.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/2.0.0-alpha.24/manifests"},{"name":"1.11.1","sha":"7ea34e60e53aa2c63b9e810c48301fd7a6a0e895","kind":"tag","published_at":"2015-11-12T13:24:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.11.1","html_url":"https://github.com/i18next/i18next/releases/tag/1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.1/manifests"},{"name":"1.11.0","sha":"d44e26f547a8a5dc3ac5af1c578208c003aae42b","kind":"tag","published_at":"2015-10-29T20:39:22.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.11.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.11.0/manifests"},{"name":"1.10.3","sha":"0173aaf3d9a7df332f7554c02bdd20d4a2bfcb55","kind":"tag","published_at":"2015-10-19T13:54:14.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.10.3","html_url":"https://github.com/i18next/i18next/releases/tag/1.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.3/manifests"},{"name":"1.10.2","sha":"557980e1b831117ab1c6f61ef951657d430e2022","kind":"tag","published_at":"2015-06-29T09:51:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.10.2","html_url":"https://github.com/i18next/i18next/releases/tag/1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.2/manifests"},{"name":"1.10.1","sha":"02f339e277924544df153af7c0dcc016de6c0b73","kind":"tag","published_at":"2015-06-23T19:39:55.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.10.1","html_url":"https://github.com/i18next/i18next/releases/tag/1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.1/manifests"},{"name":"1.10.0","sha":"1a92c1984f4ffd492e6cd1095b5d7fd776a6644e","kind":"tag","published_at":"2015-06-23T19:09:51.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.10.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.10.0/manifests"},{"name":"1.9.0","sha":"427496cc062b9427648cf4ba9d84569e33e3bafd","kind":"tag","published_at":"2015-05-18T18:46:59.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.9.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.9.0/manifests"},{"name":"1.8.2","sha":"eeba6227e14e48157355eb14f4ef231d704d4a19","kind":"tag","published_at":"2015-04-26T06:51:49.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.8.2","html_url":"https://github.com/i18next/i18next/releases/tag/1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.8.2/manifests"},{"name":"1.8.0","sha":"323867380c90b01351581c14b116fd89fef607be","kind":"tag","published_at":"2015-03-16T19:05:38.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.8.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.8.0/manifests"},{"name":"1.7.7","sha":"35594d641445ead45f1bea5d4470bb560d59561c","kind":"tag","published_at":"2014-12-10T19:26:15.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.7","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.7/manifests"},{"name":"1.7.5","sha":"a49ea3468ed35a35990225945657533831acfc22","kind":"tag","published_at":"2014-12-01T20:56:02.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.5","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.5/manifests"},{"name":"1.7.4","sha":"99fc118d2231a3883e9e6d07e006b6450b8d812a","kind":"tag","published_at":"2014-08-25T13:58:57.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.4","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.4/manifests"},{"name":"1.7.3","sha":"1a344cdcf3d04acd801f23a7e5e5645e0f2fd3a8","kind":"tag","published_at":"2014-04-19T10:50:12.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.3","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.3/manifests"},{"name":"1.7.2","sha":"46539ee3efa8626fba1533fb91b49c5d24418518","kind":"tag","published_at":"2014-02-17T14:48:18.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.2","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.2/manifests"},{"name":"1.7.1","sha":"021b2f205a018f3eaf2b199839fdd613658ddd73","kind":"tag","published_at":"2013-09-23T07:59:41.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.1","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.1/manifests"},{"name":"1.7.0","sha":"8f567bab637f825360664238f0aff3ba1077138b","kind":"tag","published_at":"2013-09-17T10:56:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.7.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.7.0/manifests"},{"name":"1.6.3","sha":"e618963a81d654c9653f97ef8373f7bbe3ecc3d5","kind":"tag","published_at":"2013-05-28T07:45:20.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.6.3","html_url":"https://github.com/i18next/i18next/releases/tag/1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.3/manifests"},{"name":"1.6.2","sha":"27d94f5fe2443d95b762a3dbfe16b7238aba4c4d","kind":"tag","published_at":"2013-05-03T14:21:09.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.6.2","html_url":"https://github.com/i18next/i18next/releases/tag/1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.2/manifests"},{"name":"1.6.1","sha":"6360a6748baa930df8361112b6f8a7db6fb9e23b","kind":"tag","published_at":"2013-05-02T10:18:56.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.6.1","html_url":"https://github.com/i18next/i18next/releases/tag/1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.1/manifests"},{"name":"1.6.0","sha":"a776db8aa287f4403db71e887e4ca87a53655423","kind":"tag","published_at":"2013-02-12T09:34:37.000Z","download_url":"https://codeload.github.com/i18next/i18next/tar.gz/1.6.0","html_url":"https://github.com/i18next/i18next/releases/tag/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i18next%2Fi18next/tags/1.6.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T20:55:15.865Z","dependent_packages_count":5066,"downloads":32499410,"downloads_period":"last-month","dependent_repos_count":49895,"rankings":{"downloads":0.060949017659249614,"dependent_repos_count":0.13363408237696686,"dependent_packages_count":0.016973853263559407,"stargazers_count":1.1689262583771836,"forks_count":1.4676204505012462,"docker_downloads_count":0.046720110963064505,"average":0.48247062885687836},"purl":"pkg:npm/i18next","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWY4OWctd2hwZi02cTlt","url":"https://github.com/advisories/GHSA-f89g-whpf-6q9m","title":"Cross-Site Scripting in i18next","description":"Affected versions of `i18next` allow untrusted user input to be injected into dictionary key names, resulting in a cross-site scripting vulnerability.\n\n## Proof of Concept\n```js\nvar init = i18n.init({debug: true}, function(){\n  var test = i18n.t('__firstName__ __lastName__', {\n        escapeInterpolation: true,\n        firstName: '__lastNameHTML__',\n        lastName: '\u003cscript\u003e',\n  });\n  console.log(test);\n});\n// equals \"\u003cscript\u003e \u0026lt;script\u0026gt;\"\n```\n\n\n## Recommendation\n\nUpdate to version 1.10.3 or later.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2018-11-09T17:46:56.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.1,"cvss_vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-16008","https://github.com/i18next/i18next/pull/443","https://github.com/advisories/GHSA-f89g-whpf-6q9m","https://www.npmjs.com/advisories/325"],"source_kind":"github","identifiers":["GHSA-f89g-whpf-6q9m","CVE-2017-16008"],"repository_url":"https://github.com/i18next/i18next","blast_radius":28.65814786446763,"packages":[{"versions":[{"first_patched_version":"1.10.3","vulnerable_version_range":"\u003c= 1.10.2"}],"ecosystem":"npm","package_name":"i18next"}],"created_at":"2022-12-21T16:13:33.642Z","updated_at":"2024-12-12T01:10:11.258Z","epss_percentage":0.0007,"epss_percentile":0.32535},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWNtaDUtcWM4dy14dmNx","url":"https://github.com/advisories/GHSA-cmh5-qc8w-xvcq","title":"Cross-Site Scripting in i18next","description":"Affected versions of `i18next` may fail to sanitize user input when certain configuration options are used. When using the `.init` method, passing interpolation options without passing an `escapeValue` will default to `undefined` rather than the assumed `true`. \n\n## Proof of Concept\n\n```js\nvar init = i18n.init({\n  interpolation: {\n    prefix: \"__\",\n    suffix: \"__\",\n    escapeValue: true\n  }\n}, function(){\n  var test = i18n.t('__firstName__ __lastName__', {\n        firstName: 'Bob',\n        lastName: '[\"foo\",\"bar\"]',\n  });\n  console.log(test);\n});\n```\nWhen `escapeValue` is explicitly passed, the result of `test` is: \n\n```html\n\u0026lt;script\u0026gt;alert(1)\u0026lt;\u0026#x2F;script\u0026gt; Johnson\n```\n\nThis is supposed to be the default. However, if `escapeValue` is not included, the result is the unescaped string: \n \n```html\n\u003cscript\u003ealert(1)\u003c/script\u003e Johnson\n```\n\n\n## Recommendation\n\nUpdate to version 3.4.4 or later.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2018-07-24T19:58:33.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":6.1,"cvss_vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-16010","https://github.com/i18next/i18next/pull/826","https://github.com/advisories/GHSA-cmh5-qc8w-xvcq","https://www.npmjs.com/advisories/326"],"source_kind":"github","identifiers":["GHSA-cmh5-qc8w-xvcq","CVE-2017-16010"],"repository_url":"https://github.com/i18next/i18next","blast_radius":28.65814786446763,"packages":[{"versions":[{"first_patched_version":"3.4.4","vulnerable_version_range":"\u003e= 2.0.0, \u003c 3.4.4"}],"ecosystem":"npm","package_name":"i18next"}],"created_at":"2022-12-21T16:13:33.190Z","updated_at":"2023-09-08T23:58:17.000Z","epss_percentage":0.001,"epss_percentile":0.425}],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/i18next","docker_dependents_count":1464,"docker_downloads_count":1479797485,"usage_url":"https://repos.ecosyste.ms/usage/npm/i18next","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/i18next/dependencies","status":null,"funding_links":["https://locize.com","https://locize.com/i18next.html","https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/i18next/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/i18next/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/i18next/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/i18next/related_packages","maintainers":[{"uuid":"adrai","login":"adrai","name":null,"email":"adriano@raiano.ch","url":null,"packages_count":84,"html_url":"https://www.npmjs.com/~adrai","role":null,"created_at":"2022-11-10T11:35:14.045Z","updated_at":"2022-11-10T11:35:14.045Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/adrai/packages"},{"uuid":"jamuhl","login":"jamuhl","name":null,"email":"jan.muehlemann@gmail.com","url":null,"packages_count":74,"html_url":"https://www.npmjs.com/~jamuhl","role":null,"created_at":"2022-11-10T11:35:14.053Z","updated_at":"2022-11-10T11:35:14.053Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/jamuhl/packages"}],"registry":{"name":"npmjs.org","url":"https://registry.npmjs.org","ecosystem":"npm","default":true,"packages_count":5006533,"maintainers_count":1012930,"namespaces_count":295512,"keywords_count":700181,"github":"npm","metadata":{"funded_packages_count":150239},"icon_url":"https://github.com/npm.png","created_at":"2022-04-04T15:19:23.081Z","updated_at":"2025-06-06T05:58:05.971Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/namespaces"}},"unique_repositories_count":2313,"unique_repositories_count_past_30_days":34,"recent_issues":[{"uuid":"5144405388","node_id":"PR_kwDOTW37is7-u5oc","number":14,"state":"open","title":"build(deps): bump the frontend-minor-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-13T18:06:35.000Z","updated_at":"2026-08-13T18:07:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"frontend-minor-patch","update_count":6,"packages":[{"name":"@faker-js/faker","old_version":"10.4.0","new_version":"10.5.0","repository_url":"https://github.com/faker-js/faker"},{"name":"axios","old_version":"1.16.1","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"i18next","old_version":"26.3.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"sonner","old_version":"2.0.7","new_version":"2.0.8","repository_url":"https://github.com/emilkowalski/sonner"},{"name":"globals","old_version":"17.6.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-minor-patch group with 6 updates in the /lightrag_webui directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@faker-js/faker](https://github.com/faker-js/faker) | `10.4.0` | `10.5.0` |\n| [axios](https://github.com/axios/axios) | `1.16.1` | `1.19.0` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.0` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [sonner](https://github.com/emilkowalski/sonner) | `2.0.7` | `2.0.8` |\n| [globals](https://github.com/sindresorhus/globals) | `17.6.0` | `17.9.0` |\n\n\nUpdates `@faker-js/faker` from 10.4.0 to 10.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-js/faker/releases\"\u003e@​faker-js/faker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix contribution git commands by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3770\"\u003efaker-js/faker#3770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: trusted publishing via OIDC token by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3743\"\u003efaker-js/faker#3743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add favicon by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/2853\"\u003efaker-js/faker#2853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update eslint (major) by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3753\"\u003efaker-js/faker#3753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: migrate to tsdown by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3558\"\u003efaker-js/faker#3558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update all non-major dependencies by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3776\"\u003efaker-js/faker#3776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3777\"\u003efaker-js/faker#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency typescript-eslint to v8.57.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3778\"\u003efaker-js/faker#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update vitest by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3779\"\u003efaker-js/faker#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency typescript-eslint to v8.58.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3780\"\u003efaker-js/faker#3780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update devdependencies by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3781\"\u003efaker-js/faker#3781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: instructions to solve v10 compatibility issues with jest by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3616\"\u003efaker-js/faker#3616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: update cypress config by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3782\"\u003efaker-js/faker#3782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): changed farsi phone locales to correct ones by \u003ca href=\"https://github.com/Javid-Izadfar\"\u003e\u003ccode\u003e@​Javid-Izadfar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3775\"\u003efaker-js/faker#3775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(location): add postal address generation by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3760\"\u003efaker-js/faker#3760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add sl_SI locale, location module by \u003ca href=\"https://github.com/ZigaVukcevicDev\"\u003e\u003ccode\u003e@​ZigaVukcevicDev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3652\"\u003efaker-js/faker#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): phone numbers for en_AU by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3788\"\u003efaker-js/faker#3788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(phone): mobile style for phone.number by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3583\"\u003efaker-js/faker#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): typo in de_CH last name by \u003ca href=\"https://github.com/rbuetzer\"\u003e\u003ccode\u003e@​rbuetzer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3799\"\u003efaker-js/faker#3799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): lock file maintenance by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3774\"\u003efaker-js/faker#3774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add Farsi airline module locale by \u003ca href=\"https://github.com/Javid-Izadfar\"\u003e\u003ccode\u003e@​Javid-Izadfar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3789\"\u003efaker-js/faker#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(date): add ability to provide year range for \u003ccode\u003epast\u003c/code\u003e and \u003ccode\u003efuture\u003c/code\u003e by \u003ca href=\"https://github.com/xDivisionByZerox\"\u003e\u003ccode\u003e@​xDivisionByZerox\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3783\"\u003efaker-js/faker#3783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add mn_MN_cyrl (Mongolian) locale by \u003ca href=\"https://github.com/btseee\"\u003e\u003ccode\u003e@​btseee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3796\"\u003efaker-js/faker#3796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: introduce FakerCore by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/2838\"\u003efaker-js/faker#2838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo in internet.mac parameter by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3801\"\u003efaker-js/faker#3801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: reformat person.bio by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3803\"\u003efaker-js/faker#3803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(food): correct fruit and vegetable locale data by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3800\"\u003efaker-js/faker#3800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): improved en_IE postal_address by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3797\"\u003efaker-js/faker#3797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): Add postal_address and improved secondary_address for es by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3798\"\u003efaker-js/faker#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(image): remove deprecated urlLoremFlickr from module overview by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3807\"\u003efaker-js/faker#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: link release checklist in release PR workflow by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3802\"\u003efaker-js/faker#3802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): lock file maintenance by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3806\"\u003efaker-js/faker#3806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sanitize-html to v2.17.3 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3814\"\u003efaker-js/faker#3814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(number): add distributor functions by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3375\"\u003efaker-js/faker#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(location): simplify locale access by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3809\"\u003efaker-js/faker#3809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(person): cleanup tests by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3804\"\u003efaker-js/faker#3804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: import types from the source file directly by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3805\"\u003efaker-js/faker#3805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(image): link to tracking issue by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3815\"\u003efaker-js/faker#3815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: render multiple \u003ca href=\"https://github.com/example\"\u003e\u003ccode\u003e@​example\u003c/code\u003e\u003c/a\u003e blocks as tabbed code groups by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3817\"\u003efaker-js/faker#3817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): Add more realistic Greek address data by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3792\"\u003efaker-js/faker#3792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(finance): routingNumber now uses real FederalReserveRoutingSymbol from lookup table. by \u003ca href=\"https://github.com/woldaker\"\u003e\u003ccode\u003e@​woldaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3429\"\u003efaker-js/faker#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add color to cy by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3816\"\u003efaker-js/faker#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): remove citation brackets from snake names by \u003ca href=\"https://github.com/AustralianRaven\"\u003e\u003ccode\u003e@​AustralianRaven\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3822\"\u003efaker-js/faker#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(helpers): ignore wrapper characters in fromRegExp by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3795\"\u003efaker-js/faker#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(core): expose core.locale as LocaleProxy by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3820\"\u003efaker-js/faker#3820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typos in jsdocs by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3823\"\u003efaker-js/faker#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add Welsh (cy) sex definitions by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3824\"\u003efaker-js/faker#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: change link in GitHub PR template by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3826\"\u003efaker-js/faker#3826\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/faker-js/faker/blob/next/CHANGELOG.md\"\u003e@​faker-js/faker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-js/faker/compare/v10.4.0...v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-06-17)\u003c/h2\u003e\n\u003ch3\u003eNew Locales\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add color to cy (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3816\"\u003e#3816\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5a6379f28080bd57cf059e9a0adcbf16e6f3862f\"\u003e5a6379f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Farsi airline module locale (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3789\"\u003e#3789\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f4a1c3e51a26ec2ae5dc4e0b9218aadf06980eca\"\u003ef4a1c3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add mn_MN_cyrl (Mongolian) locale (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3796\"\u003e#3796\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/d17c0f1fe2ea95666b668c1e87ef4a1505a19538\"\u003ed17c0f1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e Add more realistic Greek address data (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3792\"\u003e#3792\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6153eb7768fa6b7e07e9416c95d115baf3a9a09a\"\u003e6153eb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e Add postal_address and improved secondary_address for es (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3798\"\u003e#3798\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6c2a0abd3092c8afb2bca67544a16e85a13b6b61\"\u003e6c2a0ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add sl_SI locale, location module (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3652\"\u003e#3652\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/28d4f7cc2852abab8df61ec143e6d3e1ddb85ae2\"\u003e28d4f7c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) animal type definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3842\"\u003e#3842\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/50a5ec9477d8784bbac41f3c5bb1c013417cacec\"\u003e50a5ec9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) book format definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3846\"\u003e#3846\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3846\"\u003e#3846\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/2b32d6ef02a9c03e1b85769b7a566cc4f5521480\"\u003e2b32d6e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) building numbers definition (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3892\"\u003e#3892\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/4996a2b477bfe606628142f5c60f421033aa4e73\"\u003e4996a2b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) city name definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3884\"\u003e#3884\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/ac36c222c59552f7bbc1006acc8c7e666f0d861b\"\u003eac36c22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) continents definitions  (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3880\"\u003e#3880\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/03a1682727c873da386b926b81ccd2cf9e73ea2f\"\u003e03a1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) county definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3849\"\u003e#3849\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f51d28a3c68151fdab1113c6fe9e4fbeca1268e2\"\u003ef51d28a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) direction definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3840\"\u003e#3840\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/d862071c60696604ef64eb622a791f5bbee04ec1\"\u003ed862071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) internet domain suffix definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3865\"\u003e#3865\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3865\"\u003e#3865\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/fb2e2cbe3d0eb1939590e0d7736c2189f99fe81b\"\u003efb2e2cb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) phone number definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3878\"\u003e#3878\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/70994dbf77c9aea4edcf2dffbb46c777376a7814\"\u003e70994db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) postal address definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3850\"\u003e#3850\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/e72fd7c0d76b3e2fbd7208a4653f2248608eb524\"\u003ee72fd7c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) postcode definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3851\"\u003e#3851\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/1afbd59cc14b29006dbdbc1c92e310f070c57ac8\"\u003e1afbd59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) sex definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3824\"\u003e#3824\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6f29eb754848344dd5dcfe90600bfe221b6cc054\"\u003e6f29eb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) state definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3891\"\u003e#3891\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3891\"\u003e#3891\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/606d47c1c5a758190b4942339709921699a3b132\"\u003e606d47c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) street name definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3889\"\u003e#3889\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/143789efb3b3d1947d3239de314f660ee24b8f81\"\u003e143789e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) vehicle fuel definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3845\"\u003e#3845\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/29c918a2beb09ac7dd1ed0fa4b0fa8c7ce51bc89\"\u003e29c918a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e extend tr person last names (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3839\"\u003e#3839\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f4337712526cf07f6d601d5128eb36f74fd8a053\"\u003ef433771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e improved en_GB postcodes (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3864\"\u003e#3864\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/a4e503989ac0c26e06b2a7cade324e99343617ce\"\u003ea4e5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e improved en_IE postal_address (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3797\"\u003e#3797\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/fb3ffd373b39998b3742bc092061ec098a4c93ef\"\u003efb3ffd3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd first standalone module functions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3818\"\u003e#3818\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5d4f5ded06d57dc4203e025055ed4143ebfadf0a\"\u003e5d4f5de\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e add ability to provide date range for \u003ccode\u003erecent\u003c/code\u003e and \u003ccode\u003esoon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3844\"\u003e#3844\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/0bc038d5ca3f884da89106a27fe0050def8921c8\"\u003e0bc038d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e add ability to provide year range for \u003ccode\u003epast\u003c/code\u003e and \u003ccode\u003efuture\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3783\"\u003e#3783\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/237e7dc34aafafeef68e667a0140d08a8bfa7fb2\"\u003e237e7dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efood:\u003c/strong\u003e expand plant-based dish and pattern variety (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3887\"\u003e#3887\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5eaf729128b4343a595c36ee804c28325b21b9a4\"\u003e5eaf729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce FakerCore (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/2838\"\u003e#2838\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/68e15d7e33f709afa89a77a435c83e9e6257a704\"\u003e68e15d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocation:\u003c/strong\u003e add postal address generation (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3760\"\u003e#3760\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/753bec682dfc5046a02fde18e2c141777afa2f53\"\u003e753bec6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enumber:\u003c/strong\u003e add distributor functions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3375\"\u003e#3375\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/325e402dfd7c6d62f0e96ce3276ace5e984c975a\"\u003e325e402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ephone:\u003c/strong\u003e mobile style for phone.number (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3583\"\u003e#3583\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/cd5953b5bfd5ea9193f7d58f7544bb261cd31259\"\u003ecd5953b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e incorrect date boundary in past and future (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3827\"\u003e#3827\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/0446411f6dc42973a4e7bf0a8cf2c57039146a25\"\u003e0446411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efinance:\u003c/strong\u003e routingNumber now uses real FederalReserveRoutingSymbol from lookup table. (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3429\"\u003e#3429\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/c53c1fefb63b70ff6c5c417e212c6902dc4fa665\"\u003ec53c1fe\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efood:\u003c/strong\u003e correct fruit and vegetable locale data (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3800\"\u003e#3800\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/30a812a52ec87553dc3c46b8ab465aa7c7aa8b46\"\u003e30a812a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehandle single-character fromRegExp patterns (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3877\"\u003e#3877\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/ec6cc3bbfdb2500cddd49062ee01674083f731f7\"\u003eec6cc3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ehelpers:\u003c/strong\u003e ignore wrapper characters in fromRegExp (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3795\"\u003e#3795\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/9e2c0e391b436f56ff54ad89d02efa9982406389\"\u003e9e2c0e3\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/faker-js/faker/commit/5fb3b2d67c86aabe898d27d5a709b8aed8bead79\"\u003e\u003ccode\u003e5fb3b2d\u003c/code\u003e\u003c/a\u003e chore(release): 10.5.0 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/f89348f34af91a73ae9a9896d590a8fed1c2a0ca\"\u003e\u003ccode\u003ef89348f\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3861\"\u003e#3861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/e157511b6c80f9442c58cec5cbf7dfa445021320\"\u003e\u003ccode\u003ee157511\u003c/code\u003e\u003c/a\u003e chore(deps): pin dependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3896\"\u003e#3896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/77dbfae4e8372072daa696bc25609462ec35514f\"\u003e\u003ccode\u003e77dbfae\u003c/code\u003e\u003c/a\u003e chore(deps): update prettier to v3.8.4 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/123193a602eef19c00a692d767f07f447daf722a\"\u003e\u003ccode\u003e123193a\u003c/code\u003e\u003c/a\u003e chore(deps): update pnpm/action-setup action to v6 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/8244a24affa7e63af32fd597e21bad74e2a03676\"\u003e\u003ccode\u003e8244a24\u003c/code\u003e\u003c/a\u003e chore(deps): update devdependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3871\"\u003e#3871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/68bc79a748eef02d1f69e1e2eb610abb61f49569\"\u003e\u003ccode\u003e68bc79a\u003c/code\u003e\u003c/a\u003e chore(deps): update eslint (major) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3875\"\u003e#3875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/e43b21bfb3c5ad012d9fc25625f1bab8beba996f\"\u003e\u003ccode\u003ee43b21b\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3870\"\u003e#3870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/b6aca312d712adb4db1a2e1d6976594bf4e2a4e6\"\u003e\u003ccode\u003eb6aca31\u003c/code\u003e\u003c/a\u003e chore(deps): update vitest (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/a7e8c4f2c8d419e2830394b60bbf3982e24d660c\"\u003e\u003ccode\u003ea7e8c4f\u003c/code\u003e\u003c/a\u003e chore(deps): update mcr.microsoft.com/devcontainers/typescript-node:24 docker...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/faker-js/faker/compare/v10.4.0...v10.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.1 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 - July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rpaudel379\"\u003e\u003ccode\u003e@​Rpaudel379\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 — July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11008\"\u003e#11008\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\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/axios/axios/commit/311fcc5c8d989b7248f05d390bb83bfbfb009977\"\u003e\u003ccode\u003e311fcc5\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.19.0 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/cb4fd743abd1c595761c8eda25d1323fc62a3b93\"\u003e\u003ccode\u003ecb4fd74\u003c/code\u003e\u003c/a\u003e chore(deps): bump axios from 1.16.1 to 1.18.1 in /docs (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/004c93a9d2acd0561c498eff7bb4431c6bad78af\"\u003e\u003ccode\u003e004c93a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 in the github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/122edde91b1183572f4ba399b5b6bc4e3b989718\"\u003e\u003ccode\u003e122edde\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development_dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c44f8d0a910df99486da9175584b99f56a94a73b\"\u003e\u003ccode\u003ec44f8d0\u003c/code\u003e\u003c/a\u003e ci: use bundled npm for v1 publish (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/878bb29de570765b0d4c0970e30400d9ea9399f7\"\u003e\u003ccode\u003e878bb29\u003c/code\u003e\u003c/a\u003e fix(sandbox): resolve TypeError on constant variable path assignment (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/a092bae50d1884782151b2fcea12974d6da6e376\"\u003e\u003ccode\u003ea092bae\u003c/code\u003e\u003c/a\u003e fix(core): synchronous interceptors swallow errors and proceed with request (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3041b8fd1daf17404d1bad1f9d94026ea5ab400b\"\u003e\u003ccode\u003e3041b8f\u003c/code\u003e\u003c/a\u003e feat(HttpStatusCode): add missing 520 status code (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/58b16c88f0bddf1fadb321aed58ba3f49a90481b\"\u003e\u003ccode\u003e58b16c8\u003c/code\u003e\u003c/a\u003e refactor(helpers): extract duplicated setFormDataHeaders into a shared helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3077e62097726d22ba30f1cb847d7a07050e339a\"\u003e\u003ccode\u003e3077e62\u003c/code\u003e\u003c/a\u003e feat(types): Allow the Params property to be typed, instead of \u003ccode\u003eany\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.1...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.0 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.0...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.8 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay sil...\n\n_Description has been truncated_","html_url":"https://github.com/tranminhphuong2k7-spec/lightrag-phuongtran/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranminhphuong2k7-spec%2Flightrag-phuongtran/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"5105453563","node_id":"PR_kwDOSFUArM78xQwN","number":69,"state":"closed","title":"Bump the npm-minor-and-patch group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-17T00:16:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-10T00:19:17.000Z","updated_at":"2026-08-17T00:16:53.000Z","time_to_close":604654,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":42,"packages":[{"name":"@playwright/test","old_version":"1.60.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"concurrently","old_version":"10.0.3","new_version":"10.0.4","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"eslint","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"fast-check","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/dubzzz/fast-check"},{"name":"msw","old_version":"2.14.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"orval","old_version":"8.17.0","new_version":"8.23.0","repository_url":"https://github.com/orval-labs/orval"},{"name":"prettier","old_version":"3.8.4","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"@nestjs/common","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/platform-express","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/swagger","old_version":"11.4.4","new_version":"11.4.6","repository_url":"https://github.com/nestjs/swagger"},{"name":"@prisma/adapter-pg","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"@prisma/client","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"express-rate-limit","old_version":"8.5.2","new_version":"8.6.2","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"helmet","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/helmetjs/helmet"},{"name":"pg","old_version":"8.21.0","new_version":"8.22.0","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@nestjs/testing","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"prisma","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"ts-jest","old_version":"29.4.11","new_version":"29.4.12","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"tsx","old_version":"4.22.4","new_version":"4.23.9","repository_url":"https://github.com/privatenumber/tsx"},{"name":"@fontsource/gloock","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/jetbrains-mono","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/lora","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/noto-serif-kr","old_version":"5.2.9","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@mantine/core","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/mantinedev/mantine"},{"name":"@mantine/form","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/mantinedev/mantine"},{"name":"@tanstack/react-query","old_version":"5.101.0","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"dexie","old_version":"4.4.3","new_version":"4.4.4","repository_url":"https://github.com/dexie/Dexie.js"},{"name":"i18next","old_version":"26.3.1","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.17.0","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@vitejs/plugin-react-swc","old_version":"4.3.1","new_version":"4.3.3","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"vite","old_version":"8.0.16","new_version":"8.2.1","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"globals","old_version":"17.6.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"typescript-eslint","old_version":"8.61.0","new_version":"8.66.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 41 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.60.0` | `1.62.1` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `10.0.3` | `10.0.4` |\n| [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.8.0` |\n| [fast-check](https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check) | `4.8.0` | `4.9.0` |\n| [msw](https://github.com/mswjs/msw) | `2.14.6` | `2.15.0` |\n| [orval](https://github.com/orval-labs/orval) | `8.17.0` | `8.23.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.4` | `3.9.6` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.26` | `11.1.28` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `11.1.26` | `11.1.28` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `11.1.26` | `11.1.28` |\n| [@nestjs/swagger](https://github.com/nestjs/swagger) | `11.4.4` | `11.4.6` |\n| [@prisma/adapter-pg](https://github.com/prisma/prisma/tree/HEAD/packages/adapter-pg) | `7.8.0` | `7.9.1` |\n| [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) | `7.8.0` | `7.9.1` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.5.2` | `8.6.2` |\n| [helmet](https://github.com/helmetjs/helmet) | `8.2.0` | `8.3.0` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.21.0` | `8.22.0` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `11.1.26` | `11.1.28` |\n| [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) | `7.8.0` | `7.9.1` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.11` | `29.4.12` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.22.4` | `4.23.9` |\n| [@fontsource/gloock](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/gloock) | `5.2.8` | `5.3.0` |\n| [@fontsource/jetbrains-mono](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/jetbrains-mono) | `5.2.8` | `5.3.0` |\n| [@fontsource/lora](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/lora) | `5.2.8` | `5.3.0` |\n| [@fontsource/noto-serif-kr](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/noto-serif-kr) | `5.2.9` | `5.3.0` |\n| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `9.3.1` | `9.5.1` |\n| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `9.3.1` | `9.5.1` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.101.0` | `5.101.4` |\n| [dexie](https://github.com/dexie/Dexie.js) | `4.4.3` | `4.4.4` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.17.0` | `7.18.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) | `4.3.1` | `4.3.3` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.16` | `8.2.1` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.8` | `4.1.10` |\n| [globals](https://github.com/sindresorhus/globals) | `17.6.0` | `17.9.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.61.0` | `8.66.0` |\n\n\nUpdates `@playwright/test` from 1.60.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.60.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `concurrently` from 10.0.3 to 10.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-cli-tools/concurrently/releases\"\u003econcurrently's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: upgrade shell-quote to 1.9.0 by \u003ca href=\"https://github.com/Mayvis\"\u003e\u003ccode\u003e@​Mayvis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/599\"\u003eopen-cli-tools/concurrently#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid kill timeout exit delays by \u003ca href=\"https://github.com/rajanpanth\"\u003e\u003ccode\u003e@​rajanpanth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/601\"\u003eopen-cli-tools/concurrently#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mayvis\"\u003e\u003ccode\u003e@​Mayvis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/599\"\u003eopen-cli-tools/concurrently#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rajanpanth\"\u003e\u003ccode\u003e@​rajanpanth\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/601\"\u003eopen-cli-tools/concurrently#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\"\u003ehttps://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\u003c/a\u003e\u003c/p\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/open-cli-tools/concurrently/commit/2524b659e9419a271a29872e1cbfb8c983326d69\"\u003e\u003ccode\u003e2524b65\u003c/code\u003e\u003c/a\u003e 10.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/10801991448709049736003336e9ee13be1eb880\"\u003e\u003ccode\u003e1080199\u003c/code\u003e\u003c/a\u003e fix: avoid kill timeout exit delays (\u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/e6682112fbe2563a1dc7881a2eb2c77c4f7a1dd3\"\u003e\u003ccode\u003ee668211\u003c/code\u003e\u003c/a\u003e ci: publish to latest only on npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/163b60f8e4b35f4088fb557292cdf8f1275dcb51\"\u003e\u003ccode\u003e163b60f\u003c/code\u003e\u003c/a\u003e chore: sync \u003ccode\u003e@​types/node\u003c/code\u003e with current min version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/bcde2f55180dcaceaa36a241ddd106b75f516fb1\"\u003e\u003ccode\u003ebcde2f5\u003c/code\u003e\u003c/a\u003e chore: remove \u003ccode\u003e@​types/shell-quote\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/49f7eb467a05997b30d3330843a61531d821eaa9\"\u003e\u003ccode\u003e49f7eb4\u003c/code\u003e\u003c/a\u003e deps: upgrade shell-quote to 1.9.0 (\u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 10.5.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.5.0...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fast-check` from 4.8.0 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dubzzz/fast-check/releases\"\u003efast-check's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eShrinkable \u003ccode\u003eentityGraph\u003c/code\u003e and few performance chips\u003c/h2\u003e\n\u003cp\u003e[\u003ca href=\"https://github.com/dubzzz/fast-check/tree/v4.9.0\"\u003eCode\u003c/a\u003e][\u003ca href=\"https://github.com/dubzzz/fast-check/compare/v4.8.0...v4.9.0\"\u003eDiff\u003c/a\u003e]\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7008\"\u003ePR#7008\u003c/a\u003e) Towards shrinkable \u003ccode\u003eentityGraph\u003c/code\u003e thanks to \u003ccode\u003echainUntil\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7010\"\u003ePR#7010\u003c/a\u003e) Bug: Fix latent state-sharing bug in entityGraph\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7063\"\u003ePR#7063\u003c/a\u003e) Bug: Equiprobable alternatives in \u003ccode\u003estringMatching\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6973\"\u003ePR#6973\u003c/a\u003e) CI: Drop caches on push for build package flow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6971\"\u003ePR#6971\u003c/a\u003e) CI: Only mark fast-check's releases as latest\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6974\"\u003ePR#6974\u003c/a\u003e) CI: Drop pull_request_target flows\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6975\"\u003ePR#6975\u003c/a\u003e) CI: Drop discussion creation on release publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6976\"\u003ePR#6976\u003c/a\u003e) CI: Drop caches from publication steps\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6977\"\u003ePR#6977\u003c/a\u003e) CI: Revert \u0026quot;Drop caches from publication steps\u0026quot;\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6978\"\u003ePR#6978\u003c/a\u003e) CI: Make zizmor audit a required status check\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6991\"\u003ePR#6991\u003c/a\u003e) CI: Remove Claude Code workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6994\"\u003ePR#6994\u003c/a\u003e) CI: Replace \u003ccode\u003epnpm dlx\u003c/code\u003e with \u003ccode\u003epnpm exec\u003c/code\u003e for \u003ccode\u003epkg-pr-new\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6995\"\u003ePR#6995\u003c/a\u003e) CI: Inline zizmor ignores in workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6996\"\u003ePR#6996\u003c/a\u003e) CI: Move to \u003ccode\u003edevEngines.packageManager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7005\"\u003ePR#7005\u003c/a\u003e) CI: Update PULL_REQUEST_TEMPLATE.md\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7011\"\u003ePR#7011\u003c/a\u003e) CI: Drop OTP prompt from npm publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7013\"\u003ePR#7013\u003c/a\u003e) CI: Switch release jobs to npm stage publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7027\"\u003ePR#7027\u003c/a\u003e) CI: Run benchmarks against \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7037\"\u003ePR#7037\u003c/a\u003e) CI: Use comparison mode for \u003ccode\u003ebench\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7069\"\u003ePR#7069\u003c/a\u003e) CI: Run pnpm dedupe to deduplicate lockfile\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6959\"\u003ePR#6959\u003c/a\u003e) CI: Announce releases on Bluesky\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7105\"\u003ePR#7105\u003c/a\u003e) CI: Switch to actions/attest for attestations\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7117\"\u003ePR#7117\u003c/a\u003e) CI: Use pnpm version in changelog script\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7120\"\u003ePR#7120\u003c/a\u003e) CI: Allow unclean tree in changelog generation\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7125\"\u003ePR#7125\u003c/a\u003e) CI: Stage publish using \u003ccode\u003epnpm\u003c/code\u003e in publish jobs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7065\"\u003ePR#7065\u003c/a\u003e) Clean: Delete skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6983\"\u003ePR#6983\u003c/a\u003e) Doc: Tweak PR Template to hint AI agents into revealing themselves\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7092\"\u003ePR#7092\u003c/a\u003e) Doc: Add back skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7095\"\u003ePR#7095\u003c/a\u003e) Doc: Add release notes for fast-check 4.8.0\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7104\"\u003ePR#7104\u003c/a\u003e) Doc: Add makeeno as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7103\"\u003ePR#7103\u003c/a\u003e) Doc: Fix info box in docs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7108\"\u003ePR#7108\u003c/a\u003e) Doc: Add jneidel as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7035\"\u003ePR#7035\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.integer\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7046\"\u003ePR#7046\u003c/a\u003e) Performance: Faster fc.record on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7047\"\u003ePR#7047\u003c/a\u003e) Performance: Faster fc.dictionary on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7048\"\u003ePR#7048\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.webPath\u003c/code\u003e/\u003ccode\u003efc.webUrl\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7050\"\u003ePR#7050\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e for \u003ccode\u003e\\W\u003c/code\u003e \u003ccode\u003e\\D\u003c/code\u003e \u003ccode\u003e\\S\u003c/code\u003e \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7054\"\u003ePR#7054\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7049\"\u003ePR#7049\u003c/a\u003e) Performance: Drop nested \u003ccode\u003etuple\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e for \u003ccode\u003efc.record\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7045\"\u003ePR#7045\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.entityGraph\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7071\"\u003ePR#7071\u003c/a\u003e) Performance: Early exit on empty tuple in \u003ccode\u003efc.entityGraph\u003c/code\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/dubzzz/fast-check/blob/main/packages/fast-check/CHANGELOG.md\"\u003efast-check's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.9.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eShrinkable \u003ccode\u003eentityGraph\u003c/code\u003e and few performance chips\u003c/em\u003e\n[\u003ca href=\"https://github.com/dubzzz/fast-check/tree/v4.9.0\"\u003eCode\u003c/a\u003e][\u003ca href=\"https://github.com/dubzzz/fast-check/compare/v4.8.0...v4.9.0\"\u003eDiff\u003c/a\u003e]\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7008\"\u003ePR#7008\u003c/a\u003e) Towards shrinkable \u003ccode\u003eentityGraph\u003c/code\u003e thanks to \u003ccode\u003echainUntil\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7010\"\u003ePR#7010\u003c/a\u003e) Bug: Fix latent state-sharing bug in entityGraph\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7063\"\u003ePR#7063\u003c/a\u003e) Bug: Equiprobable alternatives in \u003ccode\u003estringMatching\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6973\"\u003ePR#6973\u003c/a\u003e) CI: Drop caches on push for build package flow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6971\"\u003ePR#6971\u003c/a\u003e) CI: Only mark fast-check's releases as latest\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6974\"\u003ePR#6974\u003c/a\u003e) CI: Drop pull_request_target flows\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6975\"\u003ePR#6975\u003c/a\u003e) CI: Drop discussion creation on release publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6976\"\u003ePR#6976\u003c/a\u003e) CI: Drop caches from publication steps\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6977\"\u003ePR#6977\u003c/a\u003e) CI: Revert \u0026quot;Drop caches from publication steps\u0026quot;\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6978\"\u003ePR#6978\u003c/a\u003e) CI: Make zizmor audit a required status check\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6991\"\u003ePR#6991\u003c/a\u003e) CI: Remove Claude Code workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6994\"\u003ePR#6994\u003c/a\u003e) CI: Replace \u003ccode\u003epnpm dlx\u003c/code\u003e with \u003ccode\u003epnpm exec\u003c/code\u003e for \u003ccode\u003epkg-pr-new\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6995\"\u003ePR#6995\u003c/a\u003e) CI: Inline zizmor ignores in workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6996\"\u003ePR#6996\u003c/a\u003e) CI: Move to \u003ccode\u003edevEngines.packageManager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7005\"\u003ePR#7005\u003c/a\u003e) CI: Update PULL_REQUEST_TEMPLATE.md\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7011\"\u003ePR#7011\u003c/a\u003e) CI: Drop OTP prompt from npm publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7013\"\u003ePR#7013\u003c/a\u003e) CI: Switch release jobs to npm stage publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7027\"\u003ePR#7027\u003c/a\u003e) CI: Run benchmarks against \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7037\"\u003ePR#7037\u003c/a\u003e) CI: Use comparison mode for \u003ccode\u003ebench\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7069\"\u003ePR#7069\u003c/a\u003e) CI: Run pnpm dedupe to deduplicate lockfile\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6959\"\u003ePR#6959\u003c/a\u003e) CI: Announce releases on Bluesky\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7105\"\u003ePR#7105\u003c/a\u003e) CI: Switch to actions/attest for attestations\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7117\"\u003ePR#7117\u003c/a\u003e) CI: Use pnpm version in changelog script\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7120\"\u003ePR#7120\u003c/a\u003e) CI: Allow unclean tree in changelog generation\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7125\"\u003ePR#7125\u003c/a\u003e) CI: Stage publish using \u003ccode\u003epnpm\u003c/code\u003e in publish jobs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7065\"\u003ePR#7065\u003c/a\u003e) Clean: Delete skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6983\"\u003ePR#6983\u003c/a\u003e) Doc: Tweak PR Template to hint AI agents into revealing themselves\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7092\"\u003ePR#7092\u003c/a\u003e) Doc: Add back skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7095\"\u003ePR#7095\u003c/a\u003e) Doc: Add release notes for fast-check 4.8.0\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7104\"\u003ePR#7104\u003c/a\u003e) Doc: Add makeeno as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7103\"\u003ePR#7103\u003c/a\u003e) Doc: Fix info box in docs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7108\"\u003ePR#7108\u003c/a\u003e) Doc: Add jneidel as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7035\"\u003ePR#7035\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.integer\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7046\"\u003ePR#7046\u003c/a\u003e) Performance: Faster fc.record on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7047\"\u003ePR#7047\u003c/a\u003e) Performance: Faster fc.dictionary on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7048\"\u003ePR#7048\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.webPath\u003c/code\u003e/\u003ccode\u003efc.webUrl\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7050\"\u003ePR#7050\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e for \u003ccode\u003e\\W\u003c/code\u003e \u003ccode\u003e\\D\u003c/code\u003e \u003ccode\u003e\\S\u003c/code\u003e \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7054\"\u003ePR#7054\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7049\"\u003ePR#7049\u003c/a\u003e) Performance: Drop nested \u003ccode\u003etuple\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e for \u003ccode\u003efc.record\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7045\"\u003ePR#7045\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.entityGraph\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\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/dubzzz/fast-check/commit/0d3c2547dce556f72413607849377530d18ea283\"\u003e\u003ccode\u003e0d3c254\u003c/code\u003e\u003c/a\u003e 🔖 Update CHANGELOG.md for fast-check@4.9.0, \u003ccode\u003e@​fast-check/packaged\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.7.1 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/bd85efe4d7ded7b7e1783d259bfa7e8ce604d600\"\u003e\u003ccode\u003ebd85efe\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to ^24.13.3 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7118\"\u003e#7118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/a0596abe2bfeb59d2f80954627fcecc88554247f\"\u003e\u003ccode\u003ea0596ab\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency vitest to ^4.1.10 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7119\"\u003e#7119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/3c085da4881031bbccea4d38676af10c46b2a49a\"\u003e\u003ccode\u003e3c085da\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency prettier to v3.9.4 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7114\"\u003e#7114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/6538ff043922ba953f01327630ca2dbbd160c253\"\u003e\u003ccode\u003e6538ff0\u003c/code\u003e\u003c/a\u003e 👥 Add jneidel as doc contributor (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7108\"\u003e#7108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/8096ab024176d2e48a2c269759f90bcf82fa2914\"\u003e\u003ccode\u003e8096ab0\u003c/code\u003e\u003c/a\u003e 👥 Add makeeno as doc contributor (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7104\"\u003e#7104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/13fd4a64359869665828011c6226142c1f27bd3e\"\u003e\u003ccode\u003e13fd4a6\u003c/code\u003e\u003c/a\u003e ✏️ Typo in type \u003ccode\u003eEntityGraphContraints\u003c/code\u003e (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7088\"\u003e#7088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/36e70d2eb57b7e2ee2c791a87c40d9fc73bd0f8a\"\u003e\u003ccode\u003e36e70d2\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency \u003ccode\u003e@​microsoft/api-extractor\u003c/code\u003e to ^7.58.9 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7080\"\u003e#7080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/451ede0d4b8809a3b1292d28aee05d03c5e8d22d\"\u003e\u003ccode\u003e451ede0\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency vitest to ^4.1.8 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7074\"\u003e#7074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/949564d39744d61e7c0c51ccb226110d84fd8f68\"\u003e\u003ccode\u003e949564d\u003c/code\u003e\u003c/a\u003e ⚡️ Early exit on empty tuple in \u003ccode\u003efc.entityGraph\u003c/code\u003e (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dubzzz/fast-check/commits/v4.9.0/packages/fast-check\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msw` from 2.14.6 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mswjs/msw/releases\"\u003emsw's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0 (2026-07-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esse:\u003c/strong\u003e invoke \u003ccode\u003efinalize\u003c/code\u003e on response stream end (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2741\"\u003e#2741\u003c/a\u003e) (7fae0cc0954b20c739ae8e95a24eefc8a78710e8) \u003ca href=\"https://github.com/kettanaito\"\u003e\u003ccode\u003e@​kettanaito\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.14.7 (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esse:\u003c/strong\u003e proper logging for concurrent requests (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2762\"\u003e#2762\u003c/a\u003e) (5c0ae1c334a0cbe52638bd2949540372be3d46ba) \u003ca href=\"https://github.com/kettanaito\"\u003e\u003ccode\u003e@​kettanaito\u003c/code\u003e\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/mswjs/msw/commit/49d9d47f613b072f8d20e1a025feaee7c5382b2b\"\u003e\u003ccode\u003e49d9d47\u003c/code\u003e\u003c/a\u003e chore(release): v2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/ed885831bf90136044d305e1ae1035fb13491cec\"\u003e\u003ccode\u003eed88583\u003c/code\u003e\u003c/a\u003e test(finalize): use \u003ccode\u003eexpect.poll\u003c/code\u003e vs \u003ccode\u003ewaitFor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/7fae0cc0954b20c739ae8e95a24eefc8a78710e8\"\u003e\u003ccode\u003e7fae0cc\u003c/code\u003e\u003c/a\u003e feat(sse): invoke \u003ccode\u003efinalize\u003c/code\u003e on response stream end (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/db818ee6c943bcfad18f6ecff2bb0dc210c457ca\"\u003e\u003ccode\u003edb818ee\u003c/code\u003e\u003c/a\u003e chore(release): v2.14.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/418854a04a1424eef25a7722e1016feea433a5a9\"\u003e\u003ccode\u003e418854a\u003c/code\u003e\u003c/a\u003e chore: upgrade \u003ccode\u003e@ossjs/release\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/5c0ae1c334a0cbe52638bd2949540372be3d46ba\"\u003e\u003ccode\u003e5c0ae1c\u003c/code\u003e\u003c/a\u003e fix(sse): proper logging for concurrent requests (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/3016bda37757420b1c5adca9a3956f0dc8654456\"\u003e\u003ccode\u003e3016bda\u003c/code\u003e\u003c/a\u003e test: fix flaky \u003ccode\u003ews.clients.browser.test.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/0df6d6a06fd99bb7066ee12457966c69f329fd38\"\u003e\u003ccode\u003e0df6d6a\u003c/code\u003e\u003c/a\u003e test: fix flaky \u003ccode\u003ein-flight-request.test.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/ff6836b19cf250cfe0be721bfdf098a14c23506a\"\u003e\u003ccode\u003eff6836b\u003c/code\u003e\u003c/a\u003e chore: pin github actions to commit sha, update pnpm (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/8a19d5485adad2b8a816e04a937f4c76169cd5b9\"\u003e\u003ccode\u003e8a19d54\u003c/code\u003e\u003c/a\u003e chore: improve github actions security (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mswjs/msw/compare/v2.14.6...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orval` from 8.17.0 to 8.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/orval-labs/orval/releases\"\u003eorval's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v8.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): Add conditional deployment to Cloudflare by \u003ca href=\"https://github.com/melloware\"\u003e\u003ccode\u003e@​melloware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3726\"\u003eorval-labs/orval#3726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3728\"\u003eorval-labs/orval#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(mock): emit msw handlers and faker factories as separate files in split modes by \u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3730\"\u003eorval-labs/orval#3730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(zod): infer type from \u003ccode\u003econst\u003c/code\u003e primitive values by \u003ca href=\"https://github.com/ire4ever1190\"\u003e\u003ccode\u003e@​ire4ever1190\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3733\"\u003eorval-labs/orval#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add exactOptional option for zod and effect generators by \u003ca href=\"https://github.com/MayCXC\"\u003e\u003ccode\u003e@​MayCXC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3739\"\u003eorval-labs/orval#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(zod): enforce integer validation by \u003ca href=\"https://github.com/federicobartoli\"\u003e\u003ccode\u003e@​federicobartoli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3737\"\u003eorval-labs/orval#3737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(orval): resolve tmp symlinks so mutator path test passes on macOS by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3742\"\u003eorval-labs/orval#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): dotted path parameter names generate malformed request by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3741\"\u003eorval-labs/orval#3741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(fetch): infer request options type from mutator by \u003ca href=\"https://github.com/kijk2869\"\u003e\u003ccode\u003e@​kijk2869\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3740\"\u003eorval-labs/orval#3740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(orval): bump js-yaml to 4.3.0 to fix DoS vulnerability by \u003ca href=\"https://github.com/ryosuke-endo-mf\"\u003e\u003ccode\u003e@​ryosuke-endo-mf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3744\"\u003eorval-labs/orval#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): resolve required keys through nested allOf $ref compositions by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3749\"\u003eorval-labs/orval#3749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): safely collect nested allOf properties by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3751\"\u003eorval-labs/orval#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): preserve required parent properties in allOf by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3755\"\u003eorval-labs/orval#3755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): don't delete the entire working directory when schemas has no path by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3753\"\u003eorval-labs/orval#3753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): keep integer enum+const type values as strings by \u003ca href=\"https://github.com/Solaris-star\"\u003e\u003ccode\u003e@​Solaris-star\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3759\"\u003eorval-labs/orval#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): preserve bound-alias name through ref hop (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3746\"\u003e#3746\u003c/a\u003e) by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3760\"\u003eorval-labs/orval#3760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): override path parameters with operation parameters by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3761\"\u003eorval-labs/orval#3761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(orval): keep generated barrels idempotent across formatter runs (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3756\"\u003e#3756\u003c/a\u003e) by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3762\"\u003eorval-labs/orval#3762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(core): add tags-operations and tags-operations-split output modes by \u003ca href=\"https://github.com/jakiestfu\"\u003e\u003ccode\u003e@​jakiestfu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3754\"\u003eorval-labs/orval#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v8.23.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3764\"\u003eorval-labs/orval#3764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3730\"\u003eorval-labs/orval#3730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ire4ever1190\"\u003e\u003ccode\u003e@​ire4ever1190\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3733\"\u003eorval-labs/orval#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MayCXC\"\u003e\u003ccode\u003e@​MayCXC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3739\"\u003eorval-labs/orval#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/federicobartoli\"\u003e\u003ccode\u003e@​federicobartoli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3737\"\u003eorval-labs/orval#3737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kijk2869\"\u003e\u003ccode\u003e@​kijk2869\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3740\"\u003eorval-labs/orval#3740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryosuke-endo-mf\"\u003e\u003ccode\u003e@​ryosuke-endo-mf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3744\"\u003eorval-labs/orval#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Solaris-star\"\u003e\u003ccode\u003e@​Solaris-star\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3759\"\u003eorval-labs/orval#3759\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.22.0...v8.23.0\"\u003ehttps://github.com/orval-labs/orval/compare/v8.22.0...v8.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v8.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003cbr /\u003e\n\u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3723\"\u003eSecurity Fix\u003c/a\u003e is a breaking change that now requires you to configure if you want refs to be external and not traverse directories etc.    Please see the docs for how to use and override: \u003ca href=\"https://orval.dev/docs/reference/configuration/input#externalrefs\"\u003ehttps://orval.dev/docs/reference/configuration/input#externalrefs\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): skip Required\u003c!-- raw HTML omitted --\u003e for required keys missing from properties by \u003ca href=\"https://github.com/Hypenate\"\u003e\u003ccode\u003e@​Hypenate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3721\"\u003eorval-labs/orval#3721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(angular): send required nullable query params as empty string without a paramsSerializer by \u003ca href=\"https://github.com/the-ult\"\u003e\u003ccode\u003e@​the-ult\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3716\"\u003eorval-labs/orval#3716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): gate external $ref resolution behind explicit allow-list by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3723\"\u003eorval-labs/orval#3723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v8.22.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3725\"\u003eorval-labs/orval#3725\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.21.0...v8.22.0\"\u003ehttps://github.com/orval-labs/orval/compare/v8.21.0...v8.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v8.21.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/orval-labs/orval/commit/3a40c8d72a9b542f9e2cf6e3dee767fe942c57aa\"\u003e\u003ccode\u003e3a40c8d\u003c/code\u003e\u003c/a\u003e chore(release): bump version to v8.23.0 (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/28269d5e68ad45e9a0be3bd59d7fc31549151eef\"\u003e\u003ccode\u003e28269d5\u003c/code\u003e\u003c/a\u003e feat(core): add tags-operations and tags-operations-split output modes (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/84e2a58dd99338db84ab727f2d624473bfc9a1c0\"\u003e\u003ccode\u003e84e2a58\u003c/code\u003e\u003c/a\u003e fix(orval): keep generated barrels idempotent across formatter runs (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3756\"\u003e#3756\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/4812eb6d0ef8241d523de235a95d896c4101fcc5\"\u003e\u003ccode\u003e4812eb6\u003c/code\u003e\u003c/a\u003e fix(core): override path parameters with operation parameters (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3761\"\u003e#3761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/5bc1251d2d23956b822e7438bab0428180acc7ad\"\u003e\u003ccode\u003e5bc1251\u003c/code\u003e\u003c/a\u003e fix(core): preserve bound-alias name through ref hop (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3746\"\u003e#3746\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/e453daf6691580e483a4a1acf457fac021f39845\"\u003e\u003ccode\u003ee453daf\u003c/code\u003e\u003c/a\u003e fix(core): keep integer enum+const type values as strings (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3759\"\u003e#3759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/5b543dd2a9d5ce91186f581421363aff8d069153\"\u003e\u003ccode\u003e5b543dd\u003c/code\u003e\u003c/a\u003e fix(core): don't delete the entire working directory when schemas has no path...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/d15cd25fcc82998f7af11eefbc9829d0ed6d65d4\"\u003e\u003ccode\u003ed15cd25\u003c/code\u003e\u003c/a\u003e fix(core): preserve required parent properties in allOf (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/7879bc40665dbc85af00a94553f44916ced47df9\"\u003e\u003ccode\u003e7879bc4\u003c/code\u003e\u003c/a\u003e fix(core): safely collect nested allOf properties (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3751\"\u003e#3751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/b3b3e7915ccb3bdd3bbd37cccdab203074387972\"\u003e\u003ccode\u003eb3b3e79\u003c/code\u003e\u003c/a\u003e fix(core): resolve required keys through nested allOf $ref compositions (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.17.0...v8.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.4 to 3.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003eprettier/prettier#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eimport defer\u003c/code\u003e in \u003ccode\u003etypescript\u003c/code\u003e parser (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003eprettier/prettier#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003eprettier/prettier#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a new official plugin \u003ca href=\"https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku\"\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e 🚀\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003eprettier/prettier#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003eprettier/prettier#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.5\u003c/h2\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.5/CHANGELOG.md#395\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAngular: Format \u003ccode\u003e@content(name)\u003c/code\u003e -\u0026gt; \u003ccode\u003e@content (name)\u003c/code\u003e to align with other block syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19499\"\u003e#19499\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix unexpected removal of characters in liquid syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19489\"\u003eprettier/prettier#19489\u003c/a\u003e by \u003ca href=\"https://github.com/seiyab\"\u003e\u003ccode\u003e@​seiyab\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeScript: Allow decorators to be used with declare on class fields (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19492\"\u003eprettier/prettier#19492\u003c/a\u003e by \u003ca href=\"https://github.com/evoactivity\"\u003e\u003ccode\u003e@​evoactivity\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Fix ignored file has been cached incorrectly (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19483\"\u003e#19483\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.5...3.9.0\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://prettier.io/blog/2026/06/27/3.9.0\"\u003ePrettier 3.9: Major parser upgrades and Formatting improvements\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Flow variance annotation print (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19022\"\u003e#19022\u003c/a\u003e by \u003ca href=\"https://github.com/marcoww6\"\u003e\u003ccode\u003e@​marcoww6\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385\"\u003eChangelog\u003c/a\u003e\u003c/p\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/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.9.6\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.5...3.9.6\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Preserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003e#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\ninterface Container {\n  \u0026quot;new\u0026quot;(id: string): number;\n}\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\nnew(id: string): number;\u003cbr /\u003e\n}\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\n\u0026quot;new\u0026quot;(id: string): number;\u003cbr /\u003e\n}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Support \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003e#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003e#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\nimport defer * as foo from \u0026quot;foo\u0026quot;;\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\nimport * as foo from \u0026quot;foo\u0026quot;;\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\nimport defer * as foo from \u0026quot;foo\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eJavaScript: Added a new official plugin \u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003e#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003e#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e is powered by \u003ca href=\"https://yuku.fyi/\"\u003eYuku\u003c/a\u003e (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).\u003c/p\u003e\n\u003cp\u003eThis plugin includes two new parsers: \u003ccode\u003eyuku\u003c/code\u003e (JavaScript syntax) and \u003ccode\u003eyuku-ts\u003c/code\u003e (TypeScript syntax).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTo use this plugin:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInstall the plugin:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eyarn add --dev prettier @prettier/plugin-yuku\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\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/prettier/prettier/commit/8f0c95057cc91d5836409466cd9d9af3bb901e84\"\u003e\u003ccode\u003e8f0c950\u003c/code\u003e\u003c/a\u003e Release 3.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/e9107647d0497d8ff1cacbb0f970d4543df77c1c\"\u003e\u003ccode\u003ee910764\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ec3f1c7bd74495992bc6954323a1a7fc8368808e\"\u003e\u003ccode\u003eec3f1c7\u003c/code\u003e\u003c/a\u003e Update typescript-eslint to v8.65.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19675\"\u003e#19675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/73d2efc2c6cba6f579585c88ef171132d90834ec\"\u003e\u003ccode\u003e73d2efc\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.7.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19664\"\u003e#19664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dd5e24eabeab1f75ad573c79781e5fd408bcfad3\"\u003e\u003ccode\u003edd5e24e\u003c/code\u003e\u003c/a\u003e Preserve quotes for \u003ccode\u003eTSMethodSignature\u003c/code\u003e nodes named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19621\"\u003e#19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/c03ab4e71c23154d6b11537eee3c938f0d0f67d3\"\u003e\u003ccode\u003ec03ab4e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-unicorn to v72 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19633\"\u003e#19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b74dd53076c7208291a6b2e585c310844b41d35f\"\u003e\u003ccode\u003eb74dd53\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.5 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19654\"\u003e#19654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/f1b594ea1db1520c383d0e281d623551f671f824\"\u003e\u003ccode\u003ef1b594e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-simple-import-sort to v14 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19655\"\u003e#19655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/0d9dfb61530986373000dd107ea58ceebb79e233\"\u003e\u003ccode\u003e0d9dfb6\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.4 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19650\"\u003e#19650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre...\n\n_Description has been truncated_","html_url":"https://github.com/djgfif/WorkArchive/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgfif%2FWorkArchive/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"},{"uuid":"5100926627","node_id":"PR_kwDOTy5Isc78jnQi","number":17,"state":"open","title":"Bump i18next from 24.2.2 to 26.3.6 in /js","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-09T04:51:10.000Z","updated_at":"2026-08-09T04:51:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"24.2.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/js","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 24.2.2 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.2...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=24.2.2\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dd-benchmarking/keycloak__keycloak__deputydev-findings-v3__PR37038__20260809/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dd-benchmarking%2Fkeycloak__keycloak__deputydev-findings-v3__PR37038__20260809/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5093803656","node_id":"PR_kwDOTMQXVM78N3-I","number":12,"state":"open","title":"chore(deps): bump the frontend-deps group across 1 directory with 57 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T20:39:50.000Z","updated_at":"2026-08-07T20:39:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":57,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.7.1","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@lobehub/icons-static-svg","old_version":"1.73.0","new_version":"1.94.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.4","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-store","old_version":"2.4.0","new_version":"2.4.4","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 57 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.7.1` |\n| [@lobehub/icons-static-svg](https://github.com/lobehub/lobe-icons) | `1.73.0` | `1.94.0` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.4` | `1.2.11` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-store](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.4.4` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.7.0...v5.7.1\"\u003e5.7.1\u003c/a\u003e (2026-08-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e827f20b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.6.0...v5.7.0\"\u003e5.7.0\u003c/a\u003e (2026-08-02)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e4cfba18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.8...v5.6.0\"\u003e5.6.0\u003c/a\u003e (2026-08-01)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove all resovlers drops validation errors for special root field names (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003eb011a5f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.7...v5.5.8\"\u003e5.5.8\u003c/a\u003e (2026-08-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e2f28787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\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/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e\u003ccode\u003e827f20b\u003c/code\u003e\u003c/a\u003e fix: ata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e\u003ccode\u003e4cfba18\u003c/code\u003e\u003c/a\u003e feat: support vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/58d2e2da61395bfc6d44bddc2a1e4411bb521806\"\u003e\u003ccode\u003e58d2e2d\u003c/code\u003e\u003c/a\u003e remove dead image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003e\u003ccode\u003eb011a5f\u003c/code\u003e\u003c/a\u003e feat: improve all resovlers drops validation errors for special root field names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/5483a0335edcb61c9d4cc5b669d30314d366987e\"\u003e\u003ccode\u003e5483a03\u003c/code\u003e\u003c/a\u003e improve all resolvers (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e\u003ccode\u003e2f28787\u003c/code\u003e\u003c/a\u003e fix: Zod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons-static-svg` from 1.73.0 to 1.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lobehub/lobe-icons/releases\"\u003e@​lobehub/icons-static-svg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.93.0...@lobehub/icons-static-svg@1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-17\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb\"\u003ee7714cb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.92.0...@lobehub/icons-static-svg@1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-14\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/blob/master/CHANGELOG.md\"\u003e@​lobehub/icons-static-svg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.93.0...v1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-25\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/eeff5aa\"\u003eeeff5aa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/3ac1eea\"\u003e3ac1eea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.92.0...v1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-23\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9de6a04\"\u003e9de6a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/c22e36f\"\u003ec22e36f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/commit/fbd2d56e3f734e889f1373e71c8368cc4e60e0d7\"\u003e\u003ccode\u003efbd2d56\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9d041035dd2c5a149c60b87615a2fc86c66b5ef8\"\u003e\u003ccode\u003e9d04103\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb2d8fc6f7b379f6d1b28896c3b9d62f8b7\"\u003e\u003ccode\u003ee7714cb\u003c/code\u003e\u003c/a\u003e ✨ feat(auto): Auto build static icons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/d570ec828f532d036b8a1446bd695419ec3d0862\"\u003e\u003ccode\u003ed570ec8\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.14.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/debf214577941242844caae7e6498c32054408f6\"\u003e\u003ccode\u003edebf214\u003c/code\u003e\u003c/a\u003e ✨ feat(docs): migrate to lobedocs (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/918a629a17684ed8765993d346def1fbd457c514\"\u003e\u003ccode\u003e918a629\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-webp\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/49ea6caba8ca1fadd56e7bc918cddcdc1f05aae1\"\u003e\u003ccode\u003e49ea6ca\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/656685e1e7136a1e641c31f2f1f12b4573cf1890\"\u003e\u003ccode\u003e656685e\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/4e11561f81fd68808437618ce7b04aeb362258ee\"\u003e\u003ccode\u003e4e11561\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-avatar\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.13.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/32397804ed34cedc636c1fe3f3e2db7a1c3d4fb7\"\u003e\u003ccode\u003e3239780\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-rn\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.11.0 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.73.0...@lobehub/icons-static-svg@1.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~lobehubbot\"\u003elobehubbot\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;sel...\n\n_Description has been truncated_","html_url":"https://github.com/Simonaxi24/cc-switch-finbox/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simonaxi24%2Fcc-switch-finbox/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"5093438340","node_id":"PR_kwDOTvLP0s78MtBV","number":31,"state":"open","title":"chore: bump i18next from 25.10.10 to 26.3.6","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T19:43:23.000Z","updated_at":"2026-08-07T19:47:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore","packages":[{"name":"i18next","old_version":"25.10.10","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v25.10.10...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=25.10.10\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/stormchaserog/blockwire/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormchaserog%2Fblockwire/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"},{"uuid":"5092603270","node_id":"PR_kwDOTZYCu878KCGp","number":40,"state":"open","title":"chore(deps): bump the version-all group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T17:40:33.000Z","updated_at":"2026-08-07T17:40:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":36,"packages":[{"name":"@fontsource-variable/geist","old_version":"5.2.9","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource-variable/geist-mono","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource-variable/inter","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@heroui/react","old_version":"3.2.2","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.31.22","new_version":"1.31.25","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.101.2","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"axios","old_version":"1.18.1","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"framer-motion","old_version":"12.42.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"26.3.5","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-http-backend","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lightningcss-linux-x64-gnu","old_version":"1.32.0","new_version":"1.33.0","repository_url":"https://github.com/parcel-bundler/lightningcss"},{"name":"lucide-react","old_version":"1.23.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.398.6","new_version":"1.409.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"vite","old_version":"8.1.3","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"@playwright/test","old_version":"1.61.1","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/express","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"26.1.1","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jsdom","old_version":"29.1.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"17.0.8","new_version":"17.3.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"prettier","old_version":"3.9.4","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 36 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@fontsource-variable/geist](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/geist) | `5.2.9` | `5.3.0` |\n| [@fontsource-variable/geist-mono](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/geist-mono) | `5.2.8` | `5.3.0` |\n| [@fontsource-variable/inter](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/inter) | `5.2.8` | `5.3.0` |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.2.2` | `3.2.3` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.31.22` | `1.31.25` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `8.2.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `8.2.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.2` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.101.2` | `5.101.4` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [axios](https://github.com/axios/axios) | `1.18.1` | `1.19.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.5` | `26.3.6` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `4.0.0` | `4.0.1` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.2.0` | `5.2.1` |\n| [lightningcss-linux-x64-gnu](https://github.com/parcel-bundler/lightningcss) | `1.32.0` | `1.33.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.23.0` | `1.28.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.398.6` | `1.409.5` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `8.2.0` | `8.3.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | `8.2.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `8.2.0` | `8.3.0` |\n| [@react-router/express](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-express) | `8.2.0` | `8.3.0` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` |\n| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.8` | `17.3.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.4` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.2` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n\n\nUpdates `@fontsource-variable/geist` from 5.2.9 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/geist\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@fontsource-variable/geist-mono` from 5.2.8 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/geist-mono\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@fontsource-variable/inter` from 5.2.8 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/inter\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@heroui/react` from 3.2.2 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.31.22 to 1.31.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.1.1 to 30.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/192\"\u003emicrolinkhq/react-json-view#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.101.7 to 1.102.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/193\"\u003emicrolinkhq/react-json-view#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.108.4 to 5.109.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/191\"\u003emicrolinkhq/react-json-view#191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.25 (2026-07-27)\u003c/h2\u003e\n\u003ch2\u003e1.31.24 (2026-07-24)\u003c/h2\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\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/microlinkhq/react-json-view/commit/ca343dc1158051f64556b713a63caac2f2ac2290\"\u003e\u003ccode\u003eca343dc\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/06435066ca789cd79d8a809804a5933dc3b7783a\"\u003e\u003ccode\u003e0643506\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.101.7 to 1.102.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0c1c80f0e6b7c38e1b6f438bd4ad8358b63a0e61\"\u003e\u003ccode\u003e0c1c80f\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump jsdom from 29.1.1 to 30.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/78b335c496e5364a8cf56bf683b60427f7385a70\"\u003e\u003ccode\u003e78b335c\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/1907a5076e247bacd9f4d1f1fc73b6a445117019\"\u003e\u003ccode\u003e1907a50\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.108.4 to 5.109.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 8.2.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 8.2.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.101.2 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\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/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/commit/86bb8a6fb2c7f15c74ff50afba053d778e6edc23\"\u003e\u003ccode\u003e86bb8a6\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11094\"\u003e#11094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/181ea826cb5b5f722a774525046d8f4e105dd6bb\"\u003e\u003ccode\u003e181ea82\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/6d55b0759b4722b888fa516b1bb86c0a56ea47a2\"\u003e\u003ccode\u003e6d55b07\u003c/code\u003e\u003c/a\u003e test({react,preact}-query): use the '.then()' convention consistently (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11085\"\u003e#11085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/44f38df5deaf72d8d74bc62b620dffed43fdbc05\"\u003e\u003ccode\u003e44f38df\u003c/code\u003e\u003c/a\u003e test({react,preact,solid}-query/useInfiniteQuery): inline the shared 'fetchIt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/d1558c1491629b36661e0a166e1091bb4a256daa\"\u003e\u003ccode\u003ed1558c1\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): inline the 'generateQueryFn' fac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/99690d18b7937f217d3744b1c2ac78cc47caeaa7\"\u003e\u003ccode\u003e99690d1\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchInfiniteQuery): inline single-use helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/10770f0720dacae3a26701a747e33abd6bafbf8a\"\u003e\u003ccode\u003e10770f0\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchInfiniteQuery): inline the shared 'Suspe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/dbd5a86e95284387bc3f172208bc52c0053a1bb2\"\u003e\u003ccode\u003edbd5a86\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): inline the shared 'Suspended' co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b955f60d7965cc521df6ee8b1ce91b3d0e8c046d\"\u003e\u003ccode\u003eb955f60\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/useSuspenseQuery): assert the 'loading' fallback is...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b9c657e20b1ac1078ab265de8fc691aec192e143\"\u003e\u003ccode\u003eb9c657e\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): assert the 'Loading...' fallback...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.4/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitejs/plugin-react` from 4.7.0 to 6.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vitejs/vite-plugin-react/releases\"\u003e@​vitejs/plugin-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eplugin-react@6.0.5\u003c/h2\u003e\n\u003ch3\u003eFixed the react compiler preset filter to be linear (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1353\"\u003e#1353\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe improved filter in v6.0.3 was non-linear and caused a performance regression (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/issues/1349\"\u003e#1349\u003c/a\u003e). The filter was changed to be linear to avoid that.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.4\u003c/h2\u003e\n\u003ch3\u003eFixed \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e error when running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eWhen running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e, the app errored with \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e.\nThis error is now fixed.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.2\u003c/h2\u003e\n\u003ch3\u003eAllow all options in reactCompilerPreset (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1189\"\u003e#1189\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThis is a type only change. Only \u003ccode\u003ecompilationMode\u003c/code\u003e and \u003ccode\u003etarget\u003c/code\u003e options were available for \u003ccode\u003ereactCompilerPreset\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.1\u003c/h2\u003e\n\u003ch3\u003eExpand \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eExpanded \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range to include \u003ccode\u003e^0.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.0\u003c/h2\u003e\n\u003ch3\u003eRemove Babel Related Features (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1123\"\u003e#1123\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eVite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.\u003c/p\u003e\n\u003cp\u003eIf you are using Babel, you can use \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e together with this plugin:\u003c/p\u003e\n\u003cpre lang=\"diff\"\u003e\u003ccode\u003e import { defineConfig } from 'vite'\r\n import react from '@vitejs/plugin-react'\r\n+import babel from '@rolldown/plugin-babel'\r\n\u003cp\u003eexport default defineConfig({\nplugins: [\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  babel: {\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e    plugins: ['@babel/plugin-proposal-throw-expressions'],\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  },\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e}),\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact(),\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ebabel({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  plugins: ['@babel/plugin-proposal-throw-expressions'],\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e}),\n\u003c/code\u003e\u003c/pre\u003e\n]\n})\n\u003c/code\u003e\u003c/pre\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/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md\"\u003e@​vitejs/plugin-react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.5 (2026-07-30)\u003c/h2\u003e\n\u003ch3\u003eFixed the react compiler preset filter to be linear (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1353\"\u003e#1353\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe improved filter in v6.0.3 was non-linear and caused a performance regression (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/issues/1349\"\u003e#1349\u003c/a\u003e). The filter was changed to be linear to avoid that.\u003c/p\u003e\n\u003ch2\u003e6.0.4 (2026-07-22)\u003c/h2\u003e\n\u003ch3\u003eFixed \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e error when running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eWhen running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e, the app errored with \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e.\nThis error is now fixed.\u003c/p\u003e\n\u003ch2\u003e6.0.3 (2026-06-23)\u003c/h2\u003e\n\u003ch3\u003eImprove the react compiler preset filter to reduce false-positives (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1138\"\u003e#1138\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eImproved the filter in the react compiler babel preset to reduce the false-positives so that less modules are processed by the react compiler.\u003c/p\u003e\n\u003ch2\u003e6.0.2 (2026-05-14)\u003c/h2\u003e\n\u003ch3\u003eAllow all options in reactCompilerPreset (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1189\"\u003e#1189\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThis is a type only change. Only \u003ccode\u003ecompilationMode\u003c/code\u003e and \u003ccode\u003etarget\u003c/code\u003e options were available for \u003ccode\u003ereactCompilerPreset\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003e6.0.1 (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eExpand \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eExpanded \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range to include \u003ccode\u003e^0.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003e6.0.0 (2026-03-12)\u003c/h2\u003e\n\u003ch2\u003e6.0.0-beta.0 (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eRemove Babel Related Features (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1123\"\u003e#1123\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eVite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.\u003c/p\u003e\n\u003cp\u003eIf you are using Babel, you can use \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e together with this plugin:\u003c/p\u003e\n\u003cpre lang=\"diff\"\u003e\u003ccode\u003e import { defineConfig } from 'vite'\n import react from '@vitejs/plugin-react'\n+import babel from '@rolldown/plugin-babel'\n\u003cp\u003eexport default defineConfig({\nplugins: [\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  babel: {\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/vitejs/vite-plugin-react/commit/68c0cb8796ce18bd049c3d05c5210eaf0617eac0\"\u003e\u003ccode\u003e68c0cb8\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.5 (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1362\"\u003e#1362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/555cdbc126506317b05404481374406771a41e70\"\u003e\u003ccode\u003e555cdbc\u003c/code\u003e\u003c/a\u003e fix(react): make the react compiler preset filter linear (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1353\"\u003e#1353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/a00a9f8240d5a7bb4062ee2a5bac68ea4f0defa6\"\u003e\u003ccode\u003ea00a9f8\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/f4b549822ec239799d746c030abb0b9a7d8f0a04\"\u003e\u003ccode\u003ef4b5498\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/7a4065906e07e616aee23c4fcc76a76b74a7d694\"\u003e\u003ccode\u003e7a40659\u003c/code\u003e\u003c/a\u003e fix(react): \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e  with NODE_ENV=production vite dev ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/98b32d47a3f2517d52e8a51d8e28ff2ed13678a2\"\u003e\u003ccode\u003e98b32d4\u003c/code\u003e\u003c/a\u003e fix(deps): update react 19.2.8 (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/8ae5449be23079dd17fdefc64064a3d94be6fc39\"\u003e\u003ccode\u003e8ae5449\u003c/code\u003e\u003c/a\u003e fix: babel-plugin-react-compiler cannot be imported when used in a framework ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/f09ea01b0b66a4900c3e42cef2aa0147e78b097c\"\u003e\u003ccode\u003ef09ea01\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/640fd358a0e82393acfce4e92e19a6ac6e1641a7\"\u003e\u003ccode\u003e640fd35\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/889efb02cdc4ec978a5e177a37e0213cfded38a4\"\u003e\u003ccode\u003e889efb0\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1249\"\u003e#1249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.18.1 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 - July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rpaudel379\"\u003e\u003ccode\u003e@​Rpaudel379\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 — July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11008\"\u003e#11008\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\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/axios/axios/commit/311fcc5c8d989b7248f05d390bb83bfbfb009977\"\u003e\u003ccode\u003e311fcc5\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.19.0 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/cb4fd743abd1c595761c8eda25d1323fc62a3b93\"\u003e\u003ccode\u003ecb4fd74\u003c/code\u003e\u003c/a\u003e chore(deps): bump axios from 1.16.1 to 1.18.1 in /docs (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/004c93a9d2acd0561c498eff7bb4431c6bad78af\"\u003e\u003ccode\u003e004c93a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 in the github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/122edde91b1183572f4ba399b5b6bc4e3b989718\"\u003e\u003ccode\u003e122edde\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development_dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c44f8d0a910df99486da9175584b99f56a94a73b\"\u003e\u003ccode\u003ec44f8d0\u003c/code\u003e\u003c/a\u003e ci: use bundled npm for v1 publish (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/878bb29de570765b0d4c0970e30400d9ea9399f7\"\u003e\u003ccode\u003e878bb29\u003c/code\u003e\u003c/a\u003e fix(sandbox): resolve TypeError on constant variable path assignment (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/a092bae50d1884782151b2fcea12974d6da6e376\"\u003e\u003ccode\u003ea092bae\u003c/code\u003e\u003c/a\u003e fix(core): synchronous interceptors swallow errors and proceed with request (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3041b8fd1daf17404d1bad1f9d94026ea5ab400b\"\u003e\u003ccode\u003e3041b8f\u003c/code\u003e\u003c/a\u003e feat(HttpStatusCode): add missing 520 status code (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/58b16c88f0bddf1fadb321aed58ba3f49a90481b\"\u003e\u003ccode\u003e58b16c8\u003c/code\u003e\u003c/a\u003e refactor(helpers): extract duplicated setFormDataHeaders into a shared helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3077e62097726d22ba30f1cb847d7a07050e339a\"\u003e\u003ccode\u003e3077e62\u003c/code\u003e\u003c/a\u003e feat(types): Allow the Params property to be typed, instead of \u003ccode\u003eany\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.18.1...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `framer-motion` from 12.42.2 to 12.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motiondivision/motion/blob/main/CHANGELOG.md\"\u003eframer-motion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[12.43.0] 2026-07-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHardware acceleration for \u003ccode\u003ebackgroundColor\u003c/code\u003e in supported browsers.\u003c/li\u003e\n\u003cli\u003eHardware acceleration for SVG elements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAnimatePresence\u003c/code\u003e: Exiting children no longer interleave with entering children, which could reorder and remount children present in both renders.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emotion\u003c/code\u003e: Throw error when passing a custom \u003ccode\u003emotion\u003c/code\u003e component an incorrect \u003ccode\u003eref\u003c/code\u003e type.\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/motiondivision/motion/commit/a4ef40a5dd378205a41dbb19e7fad04e3280607f\"\u003e\u003ccode\u003ea4ef40a\u003c/code\u003e\u003c/a\u003e v12.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/14f2d286d1b0805ca8a34b41f9c4122a36e215eb\"\u003e\u003ccode\u003e14f2d28\u003c/code\u003e\u003c/a\u003e adding svg acceleration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/1f5a27b828d42574ff3dfffa29f77da613d84eb2\"\u003e\u003ccode\u003e1f5a27b\u003c/code\u003e\u003c/a\u003e Fixing merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/79f03532429c6abee2de5161e3ca1594aa2d61f0\"\u003e\u003ccode\u003e79f0353\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/57f179b1beaec64da990ca914c18697f87265b4f\"\u003e\u003ccode\u003e57f179b\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/695cb3954d4df55ca0794bc95f084b377e4f5f4f\"\u003e\u003ccode\u003e695cb39\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3755\"\u003e#3755\u003c/a\u003e from motiondivision/fix-issue-2777\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/33a1820f6c35e9b206eca277e059415b07ddafde\"\u003e\u003ccode\u003e33a1820\u003c/code\u003e\u003c/a\u003e Drop the production fallback for non-DOM refs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/ebe35f223ddda0806af8d8335e7f053115d67d4b\"\u003e\u003ccode\u003eebe35f2\u003c/code\u003e\u003c/a\u003e Throw an actionable invariant for non-DOM custom component refs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/a6ed0946a338256f660560500861b09c2b8a20d2\"\u003e\u003ccode\u003ea6ed094\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3754\"\u003e#3754\u003c/a\u003e from motiondivision/fix-3745-popchild-ref-warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9f251f3377766a6bf97a93c1634c4e51a7408ccf\"\u003e\u003ccode\u003e9f251f3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3763\"\u003e#3763\u003c/a\u003e from motiondivision/advisor/003-color-waapi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motiondivision/motion/compare/v12.42.2...v12.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.5 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.5...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next-http-backend` from 4.0.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md\"\u003ei18next-http-backend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e4.0.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow \u003ccode\u003e@\u003c/code\u003e in \u003ccode\u003ens\u003c/code\u003e values so scoped-package-style namespace names such as \u003ccode\u003e@organization/package-name\u003c/code\u003e fetch correctly again (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/191\"\u003e#191\u003c/a\u003e). 3.0.6 relaxed the \u003ccode\u003ens\u003c/code\u003e check for \u003ccode\u003e/\u003c/code\u003e but left \u003ccode\u003e@\u003c/code\u003e in the shared denylist. In the URL path position \u003ccode\u003e@\u003c/code\u003e is a plain RFC 3986 pchar with no structural meaning; it stays blocked for \u003ccode\u003elng\u003c/code\u003e, where it marks the userinfo/authority boundary. Every other pattern from the 3.0.5 advisory (\u003ccode\u003e..\u003c/code\u003e, \u003ccode\u003e\\\u003c/code\u003e, \u003ccode\u003e%\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e, \u003ccode\u003e#\u003c/code\u003e, whitespace, control chars, prototype keys, oversized inputs) remains blocked for both keys.\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/i18next/i18next-http-backend/commit/565821712282376d56f82e0d15a8a89f3ae23f6d\"\u003e\u003ccode\u003e5658217\u003c/code\u003e\u003c/a\u003e 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/2b2e771b0103fb7e90c9beba9ac285cec7839bd3\"\u003e\u003ccode\u003e2b2e771\u003c/code\u003e\u003c/a\u003e fix: allow @ in ns values for scoped-package-style namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/64c110597cfe008d50c9e744e4718124eef3b11e\"\u003e\u003ccode\u003e64c1105\u003c/code\u003e\u003c/a\u003e Bump next from 16.2.6 to 16.2.11 in /example/next (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/7be00f7f550f4f29fa24620f1f74e28dc0f4d229\"\u003e\u003ccode\u003e7be00f7\u003c/code\u003e\u003c/a\u003e Remove deprecated baseUrl from tsconfig to fix Deno CI type check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/8eeafa2759e8732ea0b929b66c807cada6e9b633\"\u003e\u003ccode\u003e8eeafa2\u003c/code\u003e\u003c/a\u003e README: mention npx i18next-cli localize as the zero-to-localized path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/37df2ff22c3629ef9e5747c2c35887a89445b851\"\u003e\u003ccode\u003e37df2ff\u003c/code\u003e\u003c/a\u003e Bump i18next-http-backend from 3.0.1 to 3.0.5 in /example/node (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/187\"\u003e#187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/175e32705a3d60a6c5405cff36cc4b414c7abc0b\"\u003e\u003ccode\u003e175e327\u003c/code\u003e\u003c/a\u003e Bump next from 16.2.3 to 16.2.6 in /example/next (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/b74344c58dfd8b74d34657425302e4749145448b\"\u003e\u003ccode\u003eb74344c\u003c/code\u003e\u003c/a\u003e Fix typo in L...\n\n_Description has been truncated_","html_url":"https://github.com/Daniel-debug-boop/Wren/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-debug-boop%2FWren/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"},{"uuid":"5092515820","node_id":"PR_kwDOTxgIVc78JwUQ","number":4,"state":"closed","title":"chore(deps): bump i18next from 26.2.0 to 26.3.6","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:09:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-07T17:28:03.000Z","updated_at":"2026-08-07T18:09:26.000Z","time_to_close":2477,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"i18next","old_version":"26.2.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 26.2.0 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.2.0...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=26.2.0\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xenstar/SpeakFlow/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenstar%2FSpeakFlow/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"5091985223","node_id":"PR_kwDOSyBoPc78IC4Y","number":17,"state":"open","title":"chore(deps): bump the frontend-deps group across 1 directory with 57 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T16:16:37.000Z","updated_at":"2026-08-07T16:16:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":57,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.7.1","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@lobehub/icons-static-svg","old_version":"1.73.0","new_version":"1.94.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.4","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-store","old_version":"2.4.0","new_version":"2.4.4","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 57 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.7.1` |\n| [@lobehub/icons-static-svg](https://github.com/lobehub/lobe-icons) | `1.73.0` | `1.94.0` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.4` | `1.2.11` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-store](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.4.4` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.7.0...v5.7.1\"\u003e5.7.1\u003c/a\u003e (2026-08-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e827f20b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.6.0...v5.7.0\"\u003e5.7.0\u003c/a\u003e (2026-08-02)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e4cfba18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.8...v5.6.0\"\u003e5.6.0\u003c/a\u003e (2026-08-01)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove all resovlers drops validation errors for special root field names (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003eb011a5f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.7...v5.5.8\"\u003e5.5.8\u003c/a\u003e (2026-08-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e2f28787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\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/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e\u003ccode\u003e827f20b\u003c/code\u003e\u003c/a\u003e fix: ata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e\u003ccode\u003e4cfba18\u003c/code\u003e\u003c/a\u003e feat: support vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/58d2e2da61395bfc6d44bddc2a1e4411bb521806\"\u003e\u003ccode\u003e58d2e2d\u003c/code\u003e\u003c/a\u003e remove dead image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003e\u003ccode\u003eb011a5f\u003c/code\u003e\u003c/a\u003e feat: improve all resovlers drops validation errors for special root field names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/5483a0335edcb61c9d4cc5b669d30314d366987e\"\u003e\u003ccode\u003e5483a03\u003c/code\u003e\u003c/a\u003e improve all resolvers (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e\u003ccode\u003e2f28787\u003c/code\u003e\u003c/a\u003e fix: Zod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons-static-svg` from 1.73.0 to 1.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lobehub/lobe-icons/releases\"\u003e@​lobehub/icons-static-svg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.93.0...@lobehub/icons-static-svg@1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-17\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb\"\u003ee7714cb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.92.0...@lobehub/icons-static-svg@1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-14\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/blob/master/CHANGELOG.md\"\u003e@​lobehub/icons-static-svg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.93.0...v1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-25\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/eeff5aa\"\u003eeeff5aa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/3ac1eea\"\u003e3ac1eea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.92.0...v1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-23\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9de6a04\"\u003e9de6a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/c22e36f\"\u003ec22e36f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/commit/fbd2d56e3f734e889f1373e71c8368cc4e60e0d7\"\u003e\u003ccode\u003efbd2d56\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9d041035dd2c5a149c60b87615a2fc86c66b5ef8\"\u003e\u003ccode\u003e9d04103\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb2d8fc6f7b379f6d1b28896c3b9d62f8b7\"\u003e\u003ccode\u003ee7714cb\u003c/code\u003e\u003c/a\u003e ✨ feat(auto): Auto build static icons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/d570ec828f532d036b8a1446bd695419ec3d0862\"\u003e\u003ccode\u003ed570ec8\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.14.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/debf214577941242844caae7e6498c32054408f6\"\u003e\u003ccode\u003edebf214\u003c/code\u003e\u003c/a\u003e ✨ feat(docs): migrate to lobedocs (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/918a629a17684ed8765993d346def1fbd457c514\"\u003e\u003ccode\u003e918a629\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-webp\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/49ea6caba8ca1fadd56e7bc918cddcdc1f05aae1\"\u003e\u003ccode\u003e49ea6ca\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/656685e1e7136a1e641c31f2f1f12b4573cf1890\"\u003e\u003ccode\u003e656685e\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/4e11561f81fd68808437618ce7b04aeb362258ee\"\u003e\u003ccode\u003e4e11561\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-avatar\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.13.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/32397804ed34cedc636c1fe3f3e2db7a1c3d4fb7\"\u003e\u003ccode\u003e3239780\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-rn\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.11.0 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.73.0...@lobehub/icons-static-svg@1.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~lobehubbot\"\u003elobehubbot\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;sel...\n\n_Description has been truncated_","html_url":"https://github.com/knife-ayao/ccswitch/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/knife-ayao%2Fccswitch/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5089261108","node_id":"PR_kwDOTjr2Fs77_N_L","number":61,"state":"closed","title":"build(deps): bump the web-dependencies group in /packages/web with 20 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:05:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-07T10:32:20.000Z","updated_at":"2026-08-07T18:05:49.000Z","time_to_close":27208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"web-dependencies","update_count":20,"packages":[{"name":"i18next","old_version":"24.2.3","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"15.7.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"@eslint/js","old_version":"9.39.5","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.62.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"22.20.1","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"axe-core","old_version":"4.10.3","new_version":"4.12.1","repository_url":"https://github.com/dequelabs/axe-core"},{"name":"eslint","old_version":"9.39.5","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"globals","old_version":"15.15.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"stylelint","old_version":"16.26.1","new_version":"17.14.1","repository_url":"https://github.com/stylelint/stylelint"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.65.0","new_version":"8.66.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"6.4.3","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":"/packages/web","ecosystem":"npm"},"body":"Bumps the web-dependencies group in /packages/web with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [i18next](https://github.com/i18next/i18next) | `24.2.3` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `15.7.4` | `17.0.11` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.5` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.62.0` | `1.62.1` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.20.1` | `26.1.2` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [axe-core](https://github.com/dequelabs/axe-core) | `4.10.3` | `4.12.1` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.5` | `10.8.0` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [globals](https://github.com/sindresorhus/globals) | `15.15.0` | `17.9.0` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [stylelint](https://github.com/stylelint/stylelint) | `16.26.1` | `17.14.1` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.65.0` | `8.66.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `6.4.3` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\nUpdates `i18next` from 24.2.3 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.3...v26.3.6\"\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 `react-i18next` from 15.7.4 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans i18nKey={$ =\u0026gt; ...}\u0026gt;\u003c/code\u003e now typechecks under \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e. The \u003ccode\u003eTrans\u003c/code\u003e component's conditional type was gated on \u003ccode\u003e_EnableSelector extends true | 'optimize'\u003c/code\u003e, excluding \u003ccode\u003e'strict'\u003c/code\u003e and falling back to the legacy string-key signature. Runtime was already correct (it calls \u003ccode\u003ekeyFromSelector(i18nKey)\u003c/code\u003e whenever \u003ccode\u003etypeof i18nKey === 'function'\u003c/code\u003e); this is a type-only fix that widens the conditional to include \u003ccode\u003e'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/pull/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003euseTranslation([nsA, nsB, ...])\u003c/code\u003e now passes its full namespace list to \u003ccode\u003egetFixedT\u003c/code\u003e via the new \u003ccode\u003escopeNs\u003c/code\u003e opt (requires \u003ccode\u003ei18next\u003c/code\u003e ≥ v26.0.10). This makes selector calls with a secondary-namespace prefix resolve correctly under default \u003ccode\u003ensMode\u003c/code\u003e: \u003ccode\u003et($ =\u0026gt; $.nsB.foo)\u003c/code\u003e previously missed silently because the bound \u003ccode\u003ens\u003c/code\u003e was the primary string only and i18next's selector rewrite needed an array. Resolution semantics are unchanged — plain \u003ccode\u003et('key')\u003c/code\u003e lookups still stay isolated to the primary namespace by default; use \u003ccode\u003ensMode: 'fallback'\u003c/code\u003e to opt into multi-ns fallback resolution as before. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003ei18next#2429\u003c/a\u003e for \u003ccode\u003euseTranslation\u003c/code\u003e-based callers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore the v17 \u003ccode\u003enodesToString\u003c/code\u003e output format consumed by \u003ccode\u003ei18next-cli\u003c/code\u003e's extractor while still rendering \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e correctly\n\u003cul\u003e\n\u003cli\u003e17.0.5 fixed \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e by changing what \u003ccode\u003enodesToString\u003c/code\u003e produced, which inadvertently changed the extracted translation strings for keep-tags wrapping non-keep React elements\u003c/li\u003e\n\u003cli\u003eThe fix now lives in the renderer: indexed \u003ccode\u003e\u0026lt;N\u0026gt;\u003c/code\u003e placeholders nested inside a keep-tag are scoped to that tag's own original React children (matching kept tags by name and positional occurrence at each level), so the translation string format produced by \u003ccode\u003enodesToString\u003c/code\u003e is unchanged\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e no longer breaks child rendering when a kept HTML node (\u003ccode\u003etransKeepBasicHtmlNodesFor\u003c/code\u003e) wraps a non-keep React element \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e — superseded by 17.0.6, which keeps the same runtime fix without changing the \u003ccode\u003enodesToString\u003c/code\u003e output\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid \u003ccode\u003eReact does not recognize the 'i18nIsDynamicList' prop on a DOM element\u003c/code\u003e warning \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1915\"\u003e1915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid invalid prop on \u003ccode\u003eReact.Fragment\u003c/code\u003e inside \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1914\"\u003e1914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003evalues\u003c/code\u003e prop on \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e now only requires interpolation variables for the specific \u003ccode\u003ei18nKey\u003c/code\u003e, not all variables in the namespace \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1913\"\u003e1913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump minimum i18next peer dependency to \u003ccode\u003e\u0026gt;= 26.0.1\u003c/code\u003e \u003cem\u003e(forgot to do it in last version)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003efix: migrate test setup from removed legacy \u003ccode\u003einterpolation.format\u003c/code\u003e to \u003ccode\u003ei18n.services.formatter.add()\u003c/code\u003e (i18next v26)\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v15.7.4...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.5 to 10.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c87d5bded54c5cf491eb04c24c9d09bbbd42c23e\"\u003e\u003ccode\u003ec87d5bd\u003c/code\u003e\u003c/a\u003e fix: update eslint (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20531\"\u003e#20531\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d84100115c14691691058f00779c94e74fca946a\"\u003e\u003ccode\u003ed841001\u003c/code\u003e\u003c/a\u003e fix: update \u003ccode\u003eminimatch\u003c/code\u003e to \u003ccode\u003e10.2.1\u003c/code\u003e to address security vulnerabilities (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20519\"\u003e#20519\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/04c21475b3004904948f02049f2888b401d82c78\"\u003e\u003ccode\u003e04c2147\u003c/code\u003e\u003c/a\u003e fix: update error message for unused suppressions (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20496\"\u003e#20496\u003c/a\u003e) (fnx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/38b089c1726feac0e31a31d47941bd99e29ce003\"\u003e\u003ccode\u003e38b089c\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​eslint/config-array\u003c/code\u003e to ^0.23.1 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20484\"\u003e#20484\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5b3dbce50a1404a9f118afe810cefeee79388a2a\"\u003e\u003ccode\u003e5b3dbce\u003c/code\u003e\u003c/a\u003e docs: add AI acknowledgement section to templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20431\"\u003e#20431\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6f23076037d5879f20fb3be2ef094293b1e8d38c\"\u003e\u003ccode\u003e6f23076\u003c/code\u003e\u003c/a\u003e docs: toggle nav in no-JS mode (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20476\"\u003e#20476\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b69cfb32a16c5d5e9986390d484fae1d21e406f9\"\u003e\u003ccode\u003eb69cfb3\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e5c281ffd038a3a7a3e5364db0b9378e0ad83020\"\u003e\u003ccode\u003ee5c281f\u003c/code\u003e\u003c/a\u003e chore: updates for v9.39.3 release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8c3832adb77cd993b4a24891900d5eeaaf093cdc\"\u003e\u003ccode\u003e8c3832a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e to ^8.56.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20514\"\u003e#20514\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8330d238ae6adb68bb6a1c9381e38cfedd990d94\"\u003e\u003ccode\u003e8330d23\u003c/code\u003e\u003c/a\u003e test: add tests for config-api (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20493\"\u003e#20493\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/37d6e91e88fa6a2ca6d8726679096acff21ba6cc\"\u003e\u003ccode\u003e37d6e91\u003c/code\u003e\u003c/a\u003e chore: remove eslint v10 prereleases from eslint-config-eslint deps (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20494\"\u003e#20494\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/da7cd0e79197ad16e17052eef99df141de6dbfb1\"\u003e\u003ccode\u003eda7cd0e\u003c/code\u003e\u003c/a\u003e refactor: cleanup error message templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20479\"\u003e#20479\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f9e54f43a5e497cdfa179338b431093245cb787b\"\u003e\u003ccode\u003ef9e54f4\u003c/code\u003e\u003c/a\u003e feat!: estimate rule-tester failure location (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20420\"\u003e#20420\u003c/a\u003e) (ST-DDT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a176319d8ade1a7d9b2d7fb8f038f55a2662325f\"\u003e\u003ccode\u003ea176319\u003c/code\u003e\u003c/a\u003e feat!: replace \u003ccode\u003echalk\u003c/code\u003e with \u003ccode\u003estyleText\u003c/code\u003e and add \u003ccode\u003ecolor\u003c/code\u003e to \u003ccode\u003eResultsMeta\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20227\"\u003e#20227\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c7046e6c1e03c4ca0eee4888a1f2eba4c6454f84\"\u003e\u003ccode\u003ec7046e6\u003c/code\u003e\u003c/a\u003e feat!: enable JSX reference tracking (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20152\"\u003e#20152\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e) (Kirk Waiblinger)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3383e7ec9028166cafc8ea7986c2f7498d0049f0\"\u003e\u003ccode\u003e3383e7e\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eSourceCode\u003c/code\u003e methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20137\"\u003e#20137\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/501abd0e916a35554c58b7c0365537f1fa3880ce\"\u003e\u003ccode\u003e501abd0\u003c/code\u003e\u003c/a\u003e feat!: update dependency minimatch to v10 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20246\"\u003e#20246\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ca4d3b40085de47561f89656a2207d09946ed45e\"\u003e\u003ccode\u003eca4d3b4\u003c/code\u003e\u003c/a\u003e fix!: stricter rule tester assertions for valid test cases (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20125\"\u003e#20125\u003c/a\u003e) (唯然)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/96512a66c86402fb0538cdcb6cd30b9073f6bf3b\"\u003e\u003ccode\u003e96512a6\u003c/code\u003e\u003c/a\u003e fix!: Remove deprecated rule context methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20086\"\u003e#20086\u003c/a\u003e) (Nicholas C. Zakas)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c69fdacdb2e886b9d965568a397aa8220db3fe90\"\u003e\u003ccode\u003ec69fdac\u003c/code\u003e\u003c/a\u003e feat!: remove eslintrc support (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20037\"\u003e#20037\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/208b5cc34a8374ff81412b5bec2e0800eebfbd04\"\u003e\u003ccode\u003e208b5cc\u003c/code\u003e\u003c/a\u003e feat!: Use \u003ccode\u003eScopeManager#addGlobals()\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20132\"\u003e#20132\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a2ee188ea7a38a0c6155f3d39e2b00e1d0f36e14\"\u003e\u003ccode\u003ea2ee188\u003c/code\u003e\u003c/a\u003e fix!: add \u003ccode\u003euniqueItems: true\u003c/code\u003e in \u003ccode\u003eno-invalid-regexp\u003c/code\u003e option (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20155\"\u003e#20155\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a89059dbf2832d417dd493ee81483227ec44e4ab\"\u003e\u003ccode\u003ea89059d\u003c/code\u003e\u003c/a\u003e feat!: Program range span entire source text (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20133\"\u003e#20133\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39a6424373d915fa9de0d7b0caba9a4dc3da9b53\"\u003e\u003ccode\u003e39a6424\u003c/code\u003e\u003c/a\u003e fix!: assert 'text' is a string across all RuleFixer methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20082\"\u003e#20082\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f28fbf846244e043c92b355b224d121b06140b44\"\u003e\u003ccode\u003ef28fbf8\u003c/code\u003e\u003c/a\u003e fix!: Deprecate \u003ccode\u003e\u0026quot;always\u0026quot;\u003c/code\u003e and \u003ccode\u003e\u0026quot;as-needed\u0026quot;\u003c/code\u003e options of the \u003ccode\u003eradix\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20223\"\u003e#20223\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/aa3fb2b233e929b37220be940575f42c280e0b98\"\u003e\u003ccode\u003eaa3fb2b\u003c/code\u003e\u003c/a\u003e fix!: tighten \u003ccode\u003efunc-names\u003c/code\u003e schema (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20119\"\u003e#20119\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f6c0ed0311dcfee853367d5068c765d066e6b756\"\u003e\u003ccode\u003ef6c0ed0\u003c/code\u003e\u003c/a\u003e feat!: report \u003ccode\u003eeslint-env\u003c/code\u003e comments as errors (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20128\"\u003e#20128\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bf739fb533e59f7f0a66b65f7bc80be0f37d8db\"\u003e\u003ccode\u003e4bf739f\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eLintMessage#nodeType\u003c/code\u003e and \u003ccode\u003eTestCaseError#type\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20096\"\u003e#20096\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/523c076866400670fb2192a3f55dbf7ad3469247\"\u003e\u003ccode\u003e523c076\u003c/code\u003e\u003c/a\u003e feat!: drop support for jiti \u0026lt; 2.2.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20016\"\u003e#20016\u003c/a\u003e) (michael faith)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4f880ee02992e1bf0e96ebaba679985e2d1295f1\"\u003e\u003ccode\u003e4f880ee\u003c/code\u003e\u003c/a\u003e feat!: remove \u003ccode\u003ev10_*\u003c/code\u003e and inactive \u003ccode\u003eunstable_*\u003c/code\u003e flags (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20225\"\u003e#20225\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f18115c363a4ac7671a4c7f30ee13d57ebba330f\"\u003e\u003ccode\u003ef18115c\u003c/code\u003e\u003c/a\u003e feat!: \u003ccode\u003eno-shadow-restricted-names\u003c/code\u003e report \u003ccode\u003eglobalThis\u003c/code\u003e by default (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20027\"\u003e#20027\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bff9091927811497dbf066b0e3b85ecb37d43822\"\u003e\u003ccode\u003ebff9091\u003c/code\u003e\u003c/a\u003e feat: handle \u003ccode\u003eArray.fromAsync\u003c/code\u003e in \u003ccode\u003earray-callback-return\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20457\"\u003e#20457\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/290c594bb50c439fb71bc75521ee5360daa8c222\"\u003e\u003ccode\u003e290c594\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eself\u003c/code\u003e to \u003ccode\u003eno-implied-eval\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20468\"\u003e#20468\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/43677de07ebd6e14bfac40a46ad749ba783c45f2\"\u003e\u003ccode\u003e43677de\u003c/code\u003e\u003c/a\u003e feat: fix handling of function and class expression names in \u003ccode\u003eno-shadow\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20432\"\u003e#20432\u003c/a\u003e) (Milos Djermanovic)\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/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f3fbc2f60cbe2c718364feb8c3fc0452c0df3c56\"\u003e\u003ccode\u003ef3fbc2f\u003c/code\u003e\u003c/a\u003e chore: set \u003ccode\u003e@eslint/js\u003c/code\u003e version to 10.0.0 to skip releasing it (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20466\"\u003e#20466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b4b3127f8542c599ce2dea804b6582ebc40c993d\"\u003e\u003ccode\u003eb4b3127\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0b14059491d830a49b3577931f4f68fbcfce6be5\"\u003e\u003ccode\u003e0b14059\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1e2cad5f6fa47ed6ed89d2a29798dda926d50990\"\u003e\u003ccode\u003e1e2cad5\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v10.0.1/packages/js\"\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.62.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\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/playwright/commit/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.62.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@testing-library/jest-dom` from 6.9.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/testing-library/jest-dom/releases\"\u003e@​testing-library/jest-dom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/compare/v6.10.0...v7.0.0\"\u003e7.0.0\u003c/a\u003e (2026-07-20)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"https://github.com/testing-library/jest-dom/commit/1e39089d850408a583c83495d00d8aa27078933f\"\u003e1e39089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​testing-library/dom\u003c/code\u003e is now a required peer dependency. The minimum supported\nNode.js version is now 22.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRepaired release for \u003ca href=\"https://redirect.github.com/testing-library/jest-dom/pull/731\"\u003etesting-library/jest-dom#731\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.10.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/compare/v6.9.1...v6.10.0\"\u003e6.10.0\u003c/a\u003e (2026-07-20)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"https://redirect.github.com/testing-library/jest-dom/issues/731\"\u003e#731\u003c/a\u003e) (\u003ca href=\"https://github.com/testing-library/jest-dom/commit/cae44df901cf8e92e3febc0af6fa667b10be6d6a\"\u003ecae44df\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/testing-library/jest-dom/commit/1e39089d850408a583c83495d00d8aa27078933f\"\u003e\u003ccode\u003e1e39089\u003c/code\u003e\u003c/a\u003e feat: add toContainAnyBy* and toContainOneBy* query matchers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/commit/cae44df901cf8e92e3febc0af6fa667b10be6d6a\"\u003e\u003ccode\u003ecae44df\u003c/code\u003e\u003c/a\u003e feat: add toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/GuyFlenner/monopoly/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuyFlenner%2Fmonopoly/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"},{"uuid":"5079192395","node_id":"PR_kwDORTx6Rs77e8qE","number":166,"state":"closed","title":"chore(deps): Bump the react-frontend group across 1 directory with 59 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T17:37:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-06T08:22:26.000Z","updated_at":"2026-08-07T17:37:42.000Z","time_to_close":119714,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"react-frontend","update_count":59,"packages":[{"name":"@heroui/react","old_version":"3.1.0","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@lexical/html","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/link","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/list","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/react","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/rich-text","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/selection","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/utils","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@react-aria/focus","old_version":"3.22.0","new_version":"3.22.1","repository_url":"https://github.com/adobe/react-spectrum"},{"name":"@react-aria/interactions","old_version":"3.28.0","new_version":"3.28.1","repository_url":"https://github.com/adobe/react-spectrum"},{"name":"@sentry/react","old_version":"10.52.0","new_version":"10.69.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"@stripe/react-stripe-js","old_version":"6.3.0","new_version":"6.8.0","repository_url":"https://github.com/stripe/react-stripe-js"},{"name":"@types/leaflet","old_version":"1.9.21","new_version":"1.9.22","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@uiw/react-codemirror","old_version":"4.25.10","new_version":"4.25.11","repository_url":"https://github.com/uiwjs/react-codemirror"},{"name":"@vis.gl/react-google-maps","old_version":"1.8.3","new_version":"1.9.0","repository_url":"https://github.com/visgl/react-google-maps"},{"name":"dompurify","old_version":"3.4.11","new_version":"3.4.12","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"grapesjs","old_version":"0.21.13","new_version":"0.23.4","repository_url":"https://github.com/GrapesJS/grapesjs"},{"name":"i18next","old_version":"25.8.13","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-chained-backend","old_version":"5.0.4","new_version":"5.0.6","repository_url":"https://github.com/i18next/i18next-chained-backend"},{"name":"i18next-http-backend","old_version":"3.0.6","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"i18next-localstorage-backend","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/i18next/i18next-localStorage-backend"},{"name":"jspdf-autotable","old_version":"5.0.7","new_version":"5.0.8","repository_url":"https://github.com/simonbengtsson/jsPDF-AutoTable"},{"name":"lexical","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"lucide-react","old_version":"0.453.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"marked","old_version":"17.0.5","new_version":"18.0.7","repository_url":"https://github.com/markedjs/marked"},{"name":"papaparse","old_version":"5.5.3","new_version":"5.5.4","repository_url":"https://github.com/mholt/PapaParse"},{"name":"pusher-js","old_version":"8.5.0","new_version":"8.6.0","repository_url":"https://github.com/pusher/pusher-js"},{"name":"react","old_version":"19.2.6","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.15","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.6","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"16.5.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"6.30.4","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"recharts","old_version":"3.8.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@tailwindcss/vite","old_version":"4.3.0","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/qrcode","old_version":"1.5.5","new_version":"1.5.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/slice-ansi","old_version":"5.0.2","new_version":"7.1.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"5.1.4","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"@vitest/coverage-v8","old_version":"3.2.6","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"eslint","old_version":"9.39.4","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-i18next","old_version":"6.1.4","new_version":"6.1.5","repository_url":"https://github.com/edvardchen/eslint-plugin-i18next"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"heroui-cli","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/heroui-inc/heroui-cli"},{"name":"i18next-cli","old_version":"1.58.1","new_version":"1.67.3","repository_url":"https://github.com/i18next/i18next-cli"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"sharp","old_version":"0.34.5","new_version":"0.35.3","repository_url":"https://github.com/lovell/sharp"},{"name":"svgo","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/svg/svgo"},{"name":"typescript","old_version":"5.7.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"7.3.6","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vite-plugin-image-optimizer","old_version":"1.1.9","new_version":"2.0.3","repository_url":"https://github.com/FatehAK/vite-plugin-image-optimizer"},{"name":"vitest","old_version":"3.2.6","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@esbuild/win32-x64","old_version":"0.27.7","new_version":"0.28.1","repository_url":"https://github.com/evanw/esbuild"}],"path":null,"ecosystem":"npm"},"body":"Bumps the react-frontend group with 56 updates in the /react-frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.1.0` | `3.2.3` |\n| [@lexical/html](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html) | `0.44.0` | `0.49.0` |\n| [@lexical/link](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link) | `0.44.0` | `0.49.0` |\n| [@lexical/list](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-list) | `0.44.0` | `0.49.0` |\n| [@lexical/react](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-react) | `0.44.0` | `0.49.0` |\n| [@lexical/rich-text](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-rich-text) | `0.44.0` | `0.49.0` |\n| [@lexical/selection](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-selection) | `0.44.0` | `0.49.0` |\n| [@lexical/utils](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-utils) | `0.44.0` | `0.49.0` |\n| [@react-aria/focus](https://github.com/adobe/react-spectrum) | `3.22.0` | `3.22.1` |\n| [@react-aria/interactions](https://github.com/adobe/react-spectrum) | `3.28.0` | `3.28.1` |\n| [@sentry/react](https://github.com/getsentry/sentry-javascript) | `10.52.0` | `10.69.0` |\n| [@stripe/react-stripe-js](https://github.com/stripe/react-stripe-js) | `6.3.0` | `6.8.0` |\n| [@types/leaflet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/leaflet) | `1.9.21` | `1.9.22` |\n| [@uiw/react-codemirror](https://github.com/uiwjs/react-codemirror) | `4.25.10` | `4.25.11` |\n| [@vis.gl/react-google-maps](https://github.com/visgl/react-google-maps) | `1.8.3` | `1.9.0` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.11` | `3.4.12` |\n| [grapesjs](https://github.com/GrapesJS/grapesjs) | `0.21.13` | `0.23.4` |\n| [i18next](https://github.com/i18next/i18next) | `25.8.13` | `26.3.6` |\n| [i18next-chained-backend](https://github.com/i18next/i18next-chained-backend) | `5.0.4` | `5.0.6` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.6` | `4.0.1` |\n| [i18next-localstorage-backend](https://github.com/i18next/i18next-localStorage-backend) | `4.3.1` | `4.3.2` |\n| [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable) | `5.0.7` | `5.0.8` |\n| [lexical](https://github.com/facebook/lexical/tree/HEAD/packages/lexical) | `0.44.0` | `0.49.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.453.0` | `1.28.0` |\n| [marked](https://github.com/markedjs/marked) | `17.0.5` | `18.0.7` |\n| [papaparse](https://github.com/mholt/PapaParse) | `5.5.3` | `5.5.4` |\n| [pusher-js](https://github.com/pusher/pusher-js) | `8.5.0` | `8.6.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.6` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.15` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.6` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.5.4` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `6.30.4` | `7.18.2` |\n| [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.10.1` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.62.1` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.0` | `4.3.3` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/qrcode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qrcode) | `1.5.5` | `1.5.6` |\n| [@types/slice-ansi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/slice-ansi) | `5.0.2` | `7.1.0` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `5.1.4` | `6.0.5` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `3.2.6` | `4.1.10` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.8.0` |\n| [eslint-plugin-i18next](https://github.com/edvardchen/eslint-plugin-i18next) | `6.1.4` | `6.1.5` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [heroui-cli](https://github.com/heroui-inc/heroui-cli) | `3.0.2` | `3.0.4` |\n| [i18next-cli](https://github.com/i18next/i18next-cli) | `1.58.1` | `1.67.3` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [sharp](https://github.com/lovell/sharp) | `0.34.5` | `0.35.3` |\n| [svgo](https://github.com/svg/svgo) | `4.0.1` | `4.0.2` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.7.2` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.65.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.6` | `8.2.0` |\n| [vite-plugin-image-optimizer](https://github.com/FatehAK/vite-plugin-image-optimizer) | `1.1.9` | `2.0.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `3.2.6` | `4.1.10` |\n| [@esbuild/win32-x64](https://github.com/evanw/esbuild) | `0.27.7` | `0.28.1` |\n\n\nUpdates `@heroui/react` from 3.1.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@heroui/styles` from 3.1.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/styles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Inside\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔽 ComboBox → multiple selection\u003c/li\u003e\n\u003cli\u003e🌐 RTL → logical CSS properties across all styles\u003c/li\u003e\n\u003cli\u003e📦 react-aria → moved to peerDependencies, single shared copy\u003c/li\u003e\n\u003cli\u003e🎨 tailwind-variants 3.3.0\u003c/li\u003e\n\u003cli\u003e🔧 ScrollShadow, Spinner, InputOTP, Table \u0026amp; Button fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): frameworks tabs by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6703\"\u003eheroui-inc/heroui#6703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(combo-box): remove unsupported props from API reference by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6712\"\u003eheroui-inc/heroui#6712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(spinner): correct default color to \u0026quot;accent\u0026quot; in API reference by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6717\"\u003eheroui-inc/heroui#6717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): use theme tokens in styling examples by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6720\"\u003eheroui-inc/heroui#6720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): correct typos in accordion demo/docs and \u003ccode\u003ebgsurface\u003c/code\u003e class name by \u003ca href=\"https://github.com/daveycodez\"\u003e\u003ccode\u003e@​daveycodez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6722\"\u003eheroui-inc/heroui#6722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(avatar): document custom image composition with asChild by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6725\"\u003eheroui-inc/heroui#6725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(combo-box): custom indicator demo by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6728\"\u003eheroui-inc/heroui#6728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.6 release notes by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6726\"\u003eheroui-inc/heroui#6726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): refresh agent guidance files by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6731\"\u003eheroui-inc/heroui#6731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(docs): add cursor to theme toggle by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6734\"\u003eheroui-inc/heroui#6734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): copy prompt by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6736\"\u003eheroui-inc/heroui#6736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.7 release notes and background layer API docs by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6737\"\u003eheroui-inc/heroui#6737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): repair canonical URLs, sitemap coverage and robots.txt by \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6735\"\u003eheroui-inc/heroui#6735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eV3.2.3 by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6708\"\u003eheroui-inc/heroui#6708\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull Release Note\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://heroui.com/docs/react/releases/v3-2-3\"\u003ehttps://heroui.com/docs/react/releases/v3-2-3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/v3.2.2...v3.2.3\"\u003ehttps://github.com/heroui-inc/heroui/compare/v3.2.2...v3.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Inside\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📦 React Aria 1.19.0\u003c/li\u003e\n\u003cli\u003e📑 Tabs → overflow scrolling with chevrons + edge fade\u003c/li\u003e\n\u003cli\u003e✏️ Input fields → clear/close buttons no longer submit forms\u003c/li\u003e\n\u003cli\u003e✅ Checkbox, Radio, Switch → overflow scroll fix\u003c/li\u003e\n\u003cli\u003e🎨 Chip, DatePicker, Autocomplete, Toast → polish fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): switch custom-styles and with-icons examples by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6662\"\u003eheroui-inc/heroui#6662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(docs): configure android asset links for herouinative app by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6668\"\u003eheroui-inc/heroui#6668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): render native-showcase fallback page outside the [lang] tree by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6671\"\u003eheroui-inc/heroui#6671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.5 release notes and update component docs by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6685\"\u003eheroui-inc/heroui#6685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): enable Android Play Store download link by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6675\"\u003eheroui-inc/heroui#6675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): order release badges by date, newest first by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6686\"\u003eheroui-inc/heroui#6686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix typos in native release note \u0026amp; add cn version by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6687\"\u003eheroui-inc/heroui#6687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): add react router in CLI page by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6695\"\u003eheroui-inc/heroui#6695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(tabs): add tabs scroller to handle overflow by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6633\"\u003eheroui-inc/heroui#6633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eV3.2.2 by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6660\"\u003eheroui-inc/heroui#6660\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/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/88c581f1641a3e3d76e155f7a76340b6df696dd5\"\u003e\u003ccode\u003e88c581f\u003c/code\u003e\u003c/a\u003e chore: release v3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/003b26d09dcc55c9708eb3a624ba56a7fd23f197\"\u003e\u003ccode\u003e003b26d\u003c/code\u003e\u003c/a\u003e fix(styles): prevent flex-shrink from collapsing virtualized ListBox scroll h...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/01a2db420e61b370d5f59c579d458a67735df059\"\u003e\u003ccode\u003e01a2db4\u003c/code\u003e\u003c/a\u003e fix(styles): browser autofill highlight on grouped input fields (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6625\"\u003e#6625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/styles\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/html` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/html's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8863\"\u003e#8863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFirefox now creates a selection and shows the block cursor when clicking in the gap between block decorators (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8862\"\u003e#8862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePressing ArrowUp before a leading non-inline decorator no longer moves the selection out of the editor (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8887\"\u003e#8887\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMarkdown, HTML \u0026amp; code\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping a list marker at the start of a heading no longer converts the heading into a list (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTML import now evaluates unrestricted CSS selector groups (e.g. \u003ccode\u003ep, .foo\u003c/code\u003e) against all elements instead of only tag-matched ones (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConcurrent async language/theme loads in the Shiki highlighter are deduplicated and merged into a single history entry, avoiding spurious undo states (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8854\"\u003e#8854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuoteNode.updateDOM\u003c/code\u003e now accepts the \u003ccode\u003eEditorConfig\u003c/code\u003e argument the reconciler passes to every other node, for API consistency (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8882\"\u003e#8882\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlayground \u0026amp; website\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePlayground scroll padding now accounts for the sticky toolbar so selections scrolled into view from above aren't hidden behind it (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8849\"\u003e#8849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a homepage crash caused by a minified dev build, and isolated each embedded example in its own error boundary so one failure no longer takes down the page (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8861\"\u003e#8861\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/facebook/lexical/blob/main/CHANGELOG.md\"\u003e@​lexical/html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.49.0 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-markdown Bug Fix Preserve headings when typing list shortcuts (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8879\"\u003e#8879\u003c/a\u003e) Steven Dang\u003c/li\u003e\n\u003cli\u003elexical-rich-text Bug Fix Forward editorConfig to QuoteNode.updateDOM (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8882\"\u003e#8882\u003c/a\u003e) Sha Halimi\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Table alignment fails when selecting in non-TL-BR direction (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8883\"\u003e#8883\u003c/a\u003e) sahir\u003c/li\u003e\n\u003cli\u003eBreaking Changelexical Chore Remove redundant registerCommandregisterNodeTransform generics (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8877\"\u003e#8877\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-html Bug Fix Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8873\"\u003e#8873\u003c/a\u003e) Madan kumar\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix Deterministic history coalescing for flaky webkit undo tests (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8874\"\u003e#8874\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Performance Skip redundant selection restoration in removeTextFromCaretRange (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8872\"\u003e#8872\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Refactor Simplify RangeSelection.insertText via removeText decomposition (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8870\"\u003e#8870\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Remove redundant decorator-adjacent backspace handler (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8871\"\u003e#8871\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Skip colgroup element in table DOM with undefined col widths (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8850\"\u003e#8850\u003c/a\u003e) Zachary Gallafent\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Create selection when clicking between block decorators on Firefox (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8862\"\u003e#8862\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() recurses infinitely when inherited as own static (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8867\"\u003e#8867\u003c/a\u003e follow-up) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8869\"\u003e#8869\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexicallexical-website Bug Fix Homepage crash from optimized dev build (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8861\"\u003e#8861\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Bug Fix run editor updates dispatched from a read-only context in a fresh writable update (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8863\"\u003e#8863\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical Feature Editor operation benchmarks (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8856\"\u003e#8856\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Chore Migrate LexicalSelection tests to buildEditorFromExtensions (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8865\"\u003e#8865\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() inherited by subclasses causes node-type collision (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8867\"\u003e#8867\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003efix config() auto-synthesized clone() loses properties when called directly (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8864\"\u003e#8864\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-tablelexical Feature Sticky scrollbar for overflowing tables (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8790\"\u003e#8790\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix Deduplicate async loads and merge into history (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8854\"\u003e#8854\u003c/a\u003e) Alexis\u003c/li\u003e\n\u003cli\u003elexical-table Chore Remove dead code in table command handlers (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8857\"\u003e#8857\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Chore Deprecate getShape() and migrate playground (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8853\"\u003e#8853\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Rename isNestedListNode to isNestedListNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8843\"\u003e#8843\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix account for sticky toolbar in scroll padding (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8849\"\u003e#8849\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eBreaking Changeslexical Refactor Port node classes to the config() protocol (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-table Chore Deprecate createTableSelection in favor of createTableSelectionFrom (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8855\"\u003e#8855\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Enable DELETELINECOMMAND in table cells (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8851\"\u003e#8851\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Scope bench vitest projects to exclude regular test files (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8852\"\u003e#8852\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003ev0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8847\"\u003e#8847\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003ev0.48.0 Lexical GitHub Actions Bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.48.0 (2026-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-reactlexical-table Bug Fix Enable table copy in read-only mode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8845\"\u003e#8845\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-extensionlexical-mdastdev-mdast-editor-example Feature Add MdastHtmlExtension and Markdown custom-construct examples (collapsible, kbd, alerts, footnotes) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8826\"\u003e#8826\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eFix fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8846\"\u003e#8846\u003c/a\u003e) xiezhenjia-meta\u003c/li\u003e\n\u003cli\u003elexical Chore Fix serialize-javascript package dependency vulnerability (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8803\"\u003e#8803\u003c/a\u003e) vijay ojha\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Count block separators in character limit overflow wrapping (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8840\"\u003e#8840\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-yjslexical-react Feature Customizable Yjs shared-type root name (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8841\"\u003e#8841\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Bug Fix Backspace at start of list item outdents or converts to paragraph (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8829\"\u003e#8829\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Add moveTableRow function  Add missing export for unmergeCellNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8833\"\u003e#8833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elexical-link Bug Fix disable link opening for disabled autolink in (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8839\"\u003e#8839\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-rich-textlexical-plain-text Bug Fix dont cancel dragover for text drags so native drops work again (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8842\"\u003e#8842\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eOpen playground links in a new tab (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8837\"\u003e#8837\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Merge adjacent OverflowNodes in useCharacterLimit (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8831\"\u003e#8831\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix force re-tokenize after async language load (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8830\"\u003e#8830\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Bug Fix Auto-scroll while drag-selecting cells past the visible edge (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8822\"\u003e#8822\u003c/a\u003e) Oleksandr Trukhnii\u003c/li\u003e\n\u003cli\u003elexical-mdastlexical-markdown Bug Fix Roundtrip overlapping inline formats (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8825\"\u003e#8825\u003c/a\u003e) Bob Ippolito\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/facebook/lexical/commit/ffe90924bd55b5d450c88de0f9f1c8b228c4a221\"\u003e\u003ccode\u003effe9092\u003c/code\u003e\u003c/a\u003e v0.49.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e3e9d4178a3142c01c0a06b510f49ff2b504fbc9\"\u003e\u003ccode\u003ee3e9d41\u003c/code\u003e\u003c/a\u003e [lexical-html] Bug Fix: Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/ba4d6d0f9b99268c58df853542e309bf4f2021ac\"\u003e\u003ccode\u003eba4d6d0\u003c/code\u003e\u003c/a\u003e v0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8847\"\u003e#8847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/fa1b101bab5c7b9b2c9a713392d52275043d8cb2\"\u003e\u003ccode\u003efa1b101\u003c/code\u003e\u003c/a\u003e [lexical-extension][lexical-mdast][dev-mdast-editor-example] Feature: Add Mda...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e4b7cc3f420226059c8aa30df6e89bd5fadbea90\"\u003e\u003ccode\u003ee4b7cc3\u003c/code\u003e\u003c/a\u003e v0.47.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8821\"\u003e#8821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/a7666ab11f5e8c674a3f5ca8a83d2e92f1b171d0\"\u003e\u003ccode\u003ea7666ab\u003c/code\u003e\u003c/a\u003e [*][lexical-devtools][lexical-playground] Chore: Update flow, hermes, and bab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e649ab28b7e2dd58c1b4798c446e611f54356518\"\u003e\u003ccode\u003ee649ab2\u003c/code\u003e\u003c/a\u003e [lexical][lexical-eslint-plugin] Feature: Add $getDocument() API and Shadow D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e03b0fe5d4ea9f2d7880fa0cf8f2d81a0203a833\"\u003e\u003ccode\u003ee03b0fe\u003c/code\u003e\u003c/a\u003e docs: fix duplicated words in comments and docs (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8761\"\u003e#8761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/041c8642c0c0f4d0b7e791f3c499dfeac50a4a9e\"\u003e\u003ccode\u003e041c864\u003c/code\u003e\u003c/a\u003e v0.46.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8748\"\u003e#8748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/abe40dabe347289681dab8ad4ae4257a4e20de45\"\u003e\u003ccode\u003eabe40da\u003c/code\u003e\u003c/a\u003e [lexical] Bug Fix: Refactor class inheritance loops to use an inheritsLoose-s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/lexical/commits/v0.49.0/packages/lexical-html\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lexical/html\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/link` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/link's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8863\"\u003e#8863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFirefox now creates a selection and shows the block cursor when clicking in the gap between block decorators (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8862\"\u003e#8862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePressing ArrowUp before a leading non-inline decorator no longer moves the selection out of the editor (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8887\"\u003e#8887\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMarkdown, HTML \u0026amp; code\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping a list marker at the start of a heading no longer converts the heading into a list (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTML import now evaluates unrestricted CSS selector groups (e.g. \u003ccode\u003ep, .foo\u003c/code\u003e) against all elements instead of only tag-matched ones (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConcurrent async language/theme loads in the Shiki highlighter are deduplicated and merged into a single history entry, avoiding spurious undo states (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8854\"\u003e#8854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuoteNode.updateDOM\u003c/code\u003e now accepts the \u003ccode\u003eEditorConfig\u003c/code\u003e argument the reconciler passes to every other node, for API consistency (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8882\"\u003e#8882\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlayground \u0026amp; website\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePlayground scroll padding now accounts for the sticky toolbar so selections scrolled into view from above aren't hidden behind it (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8849\"\u003e#8849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a homepage crash caused by a minified dev build, and isolated each embedded example in its own error boundary so one failure no longer takes down the page (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8861\"\u003e#8861\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/facebook/lexical/blob/main/CHANGELOG.md\"\u003e@​lexical/link's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.49.0 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-markdown Bug Fix Preserve headings when typing list shortcuts (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8879\"\u003e#8879\u003c/a\u003e) Steven Dang\u003c/li\u003e\n\u003cli\u003elexical-rich-text Bug Fix Forward editorConfig to QuoteNode.updateDOM (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8882\"\u003e#8882\u003c/a\u003e) Sha Halimi\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Table alignment fails when selecting in non-TL-BR direction (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8883\"\u003e#8883\u003c/a\u003e) sahir\u003c/li\u003e\n\u003cli\u003eBreaking Changelexical Chore Remove redundant registerCommandregisterNodeTransform generics (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8877\"\u003e#8877\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-html Bug Fix Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8873\"\u003e#8873\u003c/a\u003e) Madan kumar\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix Deterministic history coalescing for flaky webkit undo tests (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8874\"\u003e#8874\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Performance Skip redundant selection restoration in removeTextFromCaretRange (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8872\"\u003e#8872\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Refactor Simplify RangeSelection.insertText via removeText decomposition (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8870\"\u003e#8870\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Remove redundant decorator-adjacent backspace handler (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8871\"\u003e#8871\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Skip colgroup element in table DOM with undefined col widths (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8850\"\u003e#8850\u003c/a\u003e) Zachary Gallafent\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Create selection when clicking between block decorators on Firefox (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8862\"\u003e#8862\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() recurses infinitely when inherited as own static (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8867\"\u003e#8867\u003c/a\u003e follow-up) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8869\"\u003e#8869\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexicallexical-website Bug Fix Homepage crash from optimized dev build (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8861\"\u003e#8861\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Bug Fix run editor updates dispatched from a read-only context in a fresh writable update (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8863\"\u003e#8863\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical Feature Editor operation benchmarks (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8856\"\u003e#8856\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Chore Migrate LexicalSelection tests to buildEditorFromExtensions (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8865\"\u003e#8865\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() inherited by subclasses causes node-type collision (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8867\"\u003e#8867\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003efix config() auto-synthesized clone() loses properties when called directly (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8864\"\u003e#8864\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-tablelexical Feature Sticky scrollbar for overflowing tables (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8790\"\u003e#8790\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix Deduplicate async loads and merge into history (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8854\"\u003e#8854\u003c/a\u003e) Alexis\u003c/li\u003e\n\u003cli\u003elexical-table Chore Remove dead code in table command handlers (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8857\"\u003e#8857\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Chore Deprecate getShape() and migrate playground (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8853\"\u003e#8853\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Rename isNestedListNode to isNestedListNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8843\"\u003e#8843\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix account for sticky toolbar in scroll padding (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8849\"\u003e#8849\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eBreaking Changeslexical Refactor Port node classes to the config() protocol (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-table Chore Deprecate createTableSelection in favor of createTableSelectionFrom (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8855\"\u003e#8855\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Enable DELETELINECOMMAND in table cells (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8851\"\u003e#8851\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Scope bench vitest projects to exclude regular test files (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8852\"\u003e#8852\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003ev0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8847\"\u003e#8847\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003ev0.48.0 Lexical GitHub Actions Bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.48.0 (2026-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-reactlexical-table Bug Fix Enable table copy in read-only mode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8845\"\u003e#8845\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-extensionlexical-mdastdev-mdast-editor-example Feature Add MdastHtmlExtension and Markdown custom-construct examples (collapsible, kbd, alerts, footnotes) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8826\"\u003e#8826\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eFix fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8846\"\u003e#8846\u003c/a\u003e) xiezhenjia-meta\u003c/li\u003e\n\u003cli\u003elexical Chore Fix serialize-javascript package dependency vulnerability (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8803\"\u003e#8803\u003c/a\u003e) vijay ojha\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Count block separators in character limit overflow wrapping (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8840\"\u003e#8840\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-yjslexical-react Feature Customizable Yjs shared-type root name (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8841\"\u003e#8841\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Bug Fix Backspace at start of list item outdents or converts to paragraph (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8829\"\u003e#8829\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Add moveTableRow function  Add missing export for unmergeCellNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8833\"\u003e#8833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elexical-link Bug Fix disable link opening for disabled autolink in (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8839\"\u003e#8839\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-rich-textlexical-plain-text Bug Fix dont cancel dragover for text drags so native drops work again (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8842\"\u003e#8842\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eOpen playground links in a new tab (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8837\"\u003e#8837\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Merge adjacent OverflowNodes in useCharacterLimit (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8831\"\u003e#8831\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix force re-tokenize after async language load (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8830\"\u003e#8830\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Bug Fix Auto-scroll while drag-selecting cells past the visible edge (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8822\"\u003e#8822\u003c/a\u003e) Oleksandr Trukhnii\u003c/li\u003e\n\u003cli\u003elexical-mdastlexical-markdown Bug Fix Roundtrip overlapping inline formats (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8825\"\u003e#8825\u003c/a\u003e) Bob Ippolito\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/facebook/lexical/commit/ffe90924bd55b5d450c88de0f9f1c8b228c4a221\"\u003e\u003ccode\u003effe9092\u003c/code\u003e\u003c/a\u003e v0.49.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/5fc8eae3cdbd934ec3d0422ecaef7037771e38c2\"\u003e\u003ccode\u003e5fc8eae\u003c/code\u003e\u003c/a\u003e [Breaking Changes][lexical] Refactor: Port node classes to the $config() prot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/ba4d6d0f9b99268c58df853542e309bf4f2021ac\"\u003e\u003ccode\u003eba4d6d0\u003c/code\u003e\u003c/a\u003e v0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8847\"\u003e#8847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/365516c5fcdcc141561dcbb2eb43b707b48dd5b8\"\u003e\u003ccode\u003e365516c\u003c/code\u003e\u003c/a\u003e Fix: fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8846\"\u003e#8846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/71562324c7d2154f64d79f6d20803f67b9bd9c11\"\u003e\u003ccode\u003e7156232\u003c/code\u003e\u003c/a\u003e [lexical-link] Bug Fix: disable link opening for disabled autolink in… (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8839\"\u003e#8839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e4b7cc3f420226059c8aa30df6e89bd5fadbea90\"\u003e\u003ccode\u003ee4b7cc3\u003c/code\u003e\u003c/a\u003e v0.47.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8821\"\u003e#8821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/a7666ab11f5e8c674a3f5ca8a83d2e92f1b171d0\"\u003e\u003ccode\u003ea7666ab\u003c/code\u003e\u003c/a\u003e [*][lexical-devtools][lexical-playground] Chore: Update flow, hermes, and bab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e649ab28b7e2dd58c1b4798c446e611f54356518\"\u003e\u003ccode\u003ee649ab2\u003c/code\u003e\u003c/a\u003e [lexical][lexical-eslint-plugin] Feature: Add $getDocument() API and Shadow D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/7b76175cc96d99489c2f3c792db193cf2d9bc127\"\u003e\u003ccode\u003e7b76175\u003c/code\u003e\u003c/a\u003e [lexical-playground] Bug Fix: Support Unicode URLs in autolink matcher (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8787\"\u003e#8787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/62a4b30f382b4dc60cacd1a9d753a2d1f44d9f5e\"\u003e\u003ccode\u003e62a4b30\u003c/code\u003e\u003c/a\u003e [lexical][*] Feature: registerEventListener / registerEventListeners DOM help...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/lexical/commits/v0.49.0/packages/lexical-link\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lexical/link\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/list` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/list's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-list/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/jasperfordesq-ai/nexus-v1/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperfordesq-ai%2Fnexus-v1/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"},{"uuid":"5073370753","node_id":"PR_kwDOTKMvPM77MRIW","number":74,"state":"closed","title":"build(deps-dev): bump the dev-dependencies group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T17:08:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-05T17:07:22.000Z","updated_at":"2026-08-07T17:08:54.000Z","time_to_close":172888,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): bump","group_name":"dev-dependencies","update_count":28,"packages":[{"name":"@playwright/test","old_version":"1.61.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/node","old_version":"26.0.0","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/semver","old_version":"7.7.1","new_version":"7.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/supertest","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"eslint","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"set-cookie-parser","old_version":"3.1.0","new_version":"3.1.2","repository_url":"https://github.com/nfriedly/set-cookie-parser"},{"name":"sinon","old_version":"22.0.0","new_version":"22.1.0","repository_url":"https://github.com/sinonjs/sinon"},{"name":"@types/sinon","old_version":"21.0.1","new_version":"22.0.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"typescript","old_version":"6.0.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vitest","old_version":"4.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@radix-ui/react-dialog","old_version":"1.1.17","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-toast","old_version":"1.2.17","new_version":"1.2.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.6","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.61.1","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.61.1","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitejs/plugin-react","old_version":"6.0.2","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"i18next","old_version":"26.3.1","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"1.21.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.80.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.18.0","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"vite","old_version":"8.0.16","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"oxc-minify","old_version":"0.137.0","new_version":"0.142.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"vitepress","old_version":"2.0.0-alpha.17","new_version":"2.0.0-alpha.19","repository_url":"https://github.com/vuejs/vitepress"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dev-dependencies group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.0` | `1.62.1` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.0.0` | `26.1.2` |\n| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.7.1` | `7.8.0` |\n| [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) | `7.2.0` | `7.2.1` |\n| [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.8.0` |\n| [set-cookie-parser](https://github.com/nfriedly/set-cookie-parser) | `3.1.0` | `3.1.2` |\n| [sinon](https://github.com/sinonjs/sinon) | `22.0.0` | `22.1.0` |\n| [@types/sinon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sinon) | `21.0.1` | `22.0.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.9` | `4.1.10` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.17` | `1.1.23` |\n| [@radix-ui/react-toast](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toast) | `1.2.17` | `1.2.23` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.6` | `1.2.11` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.61.1` | `8.65.0` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.61.1` | `8.65.0` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.2` | `6.0.5` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.80.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.0` | `7.18.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.16` | `8.2.0` |\n| [oxc-minify](https://github.com/oxc-project/oxc/tree/HEAD/napi/minify) | `0.137.0` | `0.142.0` |\n| [vitepress](https://github.com/vuejs/vitepress) | `2.0.0-alpha.17` | `2.0.0-alpha.19` |\n\n\nUpdates `@playwright/test` from 1.61.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.61.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 26.0.0 to 26.1.2\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/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/semver` from 7.7.1 to 7.8.0\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/semver\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/supertest` from 7.2.0 to 7.2.1\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/supertest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 10.5.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.5.0...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `set-cookie-parser` from 3.1.0 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nfriedly/set-cookie-parser/blob/master/CHANGELOG.md\"\u003eset-cookie-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/tree/v3.1.1\"\u003ev3.1.2\u003c/a\u003e - 2026-07-09\u003c/h2\u003e\n\u003cp\u003eFixed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer throws when attempting to parse a set-cookie string with no name-value pair, e.g parseSetCookie(\u0026quot;;\u0026quot;)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/tree/v3.1.1\"\u003ev3.1.1\u003c/a\u003e - 2026-06-23\u003c/h2\u003e\n\u003cp\u003eFixed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWhitespace is now correctly trimmed around attribute names and values\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/nfriedly/set-cookie-parser/commit/60b9d7f2b2a029238676bb0c34cd1a324198c766\"\u003e\u003ccode\u003e60b9d7f\u003c/code\u003e\u003c/a\u003e 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/89298a1cf7ea8517a308ba9ac4e8970cc8fdf0e0\"\u003e\u003ccode\u003e89298a1\u003c/code\u003e\u003c/a\u003e v3.1.2 change log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/d79cc2c43820f241145e91bd7bb3cc77cb3aa8f6\"\u003e\u003ccode\u003ed79cc2c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/82\"\u003e#82\u003c/a\u003e from spokodev/fix/hunt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/971fe3f0ec0b529808826a32ccc3698e34421d96\"\u003e\u003ccode\u003e971fe3f\u003c/code\u003e\u003c/a\u003e fix: don't throw when a set-cookie string has no name-value-pair\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/39b7c1c5056e2b3ae25ed1e377283f2d8b318514\"\u003e\u003ccode\u003e39b7c1c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/81\"\u003e#81\u003c/a\u003e from nfriedly/dependabot/npm_and_yarn/js-yaml-4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/c3c98a490952825b633009faa617c3fe21438b85\"\u003e\u003ccode\u003ec3c98a4\u003c/code\u003e\u003c/a\u003e Bump js-yaml from 4.1.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/25a7021390b33859ebc91dc821176d7db8972661\"\u003e\u003ccode\u003e25a7021\u003c/code\u003e\u003c/a\u003e typo fix and clarity improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/185793e394bc682b49f884042eb0514a2ba7c9fc\"\u003e\u003ccode\u003e185793e\u003c/code\u003e\u003c/a\u003e 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/2f9edf18a433c7e218aef1654deb99388491b28c\"\u003e\u003ccode\u003e2f9edf1\u003c/code\u003e\u003c/a\u003e v3.1.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/0dc9480e6da4f9554109e54ed215428cc82577fc\"\u003e\u003ccode\u003e0dc9480\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/80\"\u003e#80\u003c/a\u003e from spokodev/fix/trim-attribute-whitespace\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nfriedly/set-cookie-parser/compare/v3.1.0...v3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sinon` from 22.0.0 to 22.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sinonjs/sinon/blob/main/CHANGES.md\"\u003esinon's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e22.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5\"\u003e\u003ccode\u003ed36e921b\u003c/code\u003e\u003c/a\u003e\nfix: let returns override returnsArg (王胜)\n\u003cblockquote\u003e\n\u003cp\u003eSigned-off-by: 王胜 \u003ca href=\"mailto:2318857637@qq.com\"\u003e2318857637@qq.com\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871\"\u003e\u003ccode\u003e40c4caa0\u003c/code\u003e\u003c/a\u003e\nfix: align restoreObject docs test with idempotent behavior (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2745\"\u003e#2745\u003c/a\u003e) (Julia Miller)\n\u003cblockquote\u003e\n\u003cp\u003erestoreObject was made idempotent in \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e — it no longer throws\nfor objects with no restorable methods. Updates the docs page\nand its corresponding test to reflect this.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab\"\u003e\u003ccode\u003ea68dac19\u003c/code\u003e\u003c/a\u003e\nfix: throw a clear error when throwArg index equals the argument count (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2743\"\u003e#2743\u003c/a\u003e) (spokodev)\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003efix: throw a clear error when throwArg index equals the argument count\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003espyCall.throwArg(pos) guarded with pos \u0026gt; this.args.length, so calling it\nwith pos equal to the number of recorded arguments slipped past the guard\nand reached throw this.args[pos], throwing undefined instead of the\nintended TypeError. A thrown undefined cannot be inspected as an Error and\nis reported by test frameworks as no exception thrown.\u003c/p\u003e\n\u003cp\u003eUse \u0026gt;= to match ensureArgs in behavior.js and the sibling callArg helpers,\nwhich already reject an out-of-range index with a clear error.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30\"\u003e\u003ccode\u003e9ea504e3\u003c/code\u003e\u003c/a\u003e\nfeat: make sinon.restoreObject idempotent (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e) (Ilia Choly)\n\u003cblockquote\u003e\n\u003cp\u003ePassing an object with no live fakes to restoreObject now restores\nnothing instead of throwing, giving it symmetry with sinon.restore()\nand sandbox.restore(). The strict \u0026quot;found no methods\u0026quot; check is retained\nfor spy(object) and stub(object), which now use a dedicated\nwalkObjectStrict export, while restoreObject uses the loose walkObject.\nPassing a falsy value still throws.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2736\"\u003e#2736\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/4db4feffe19d3f117d46b9015b4890187a282cf0\"\u003e\u003ccode\u003e4db4feff\u003c/code\u003e\u003c/a\u003e\nfix: preserve fake undefined argument validation (Vishal Kumar Singh)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/755a40d772b02a7ba7e9a1d465a5f26d486ebbdb\"\u003e\u003ccode\u003e755a40d7\u003c/code\u003e\u003c/a\u003e\nfix: isolate callId counter per sandbox for parallel test support (Vishal Kumar Singh)\n\u003cblockquote\u003e\n\u003cp\u003eThe global callId counter in proxy-invoke.js caused calledImmediatelyBefore\nand calledImmediatelyAfter to fail when tests run in parallel with separate\nsandboxes. Each sandbox now maintains its own callId counter, passed through\nthe spy/stub/fake creation chain via a context object.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eReleased by Morgan Roderick on 2026-07-20.\u003c/em\u003e\u003c/p\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/sinonjs/sinon/commit/ab289e92cdd76caf8cec2b0a8c9a391283e6c9df\"\u003e\u003ccode\u003eab289e9\u003c/code\u003e\u003c/a\u003e 22.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/bb3b75ad7422f0e2e74b10d71378598b6ea475c3\"\u003e\u003ccode\u003ebb3b75a\u003c/code\u003e\u003c/a\u003e chore: remove Jekyll steps from version hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/bb38f25179598e9306c3b8cbd76a74887e6d5836\"\u003e\u003ccode\u003ebb38f25\u003c/code\u003e\u003c/a\u003e chore: run docs tests in preversion hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5\"\u003e\u003ccode\u003ed36e921\u003c/code\u003e\u003c/a\u003e fix: let returns override returnsArg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/11db21399208b1ece7834031bbe9f86559cef79d\"\u003e\u003ccode\u003e11db213\u003c/code\u003e\u003c/a\u003e ci: run docs tests on every PR (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871\"\u003e\u003ccode\u003e40c4caa\u003c/code\u003e\u003c/a\u003e fix: align restoreObject docs test with idempotent behavior (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2745\"\u003e#2745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/5ccb7fd4ee1556ca528b7f7168a8a5bd4cadab15\"\u003e\u003ccode\u003e5ccb7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump the action-deps group with 4 updates (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2744\"\u003e#2744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab\"\u003e\u003ccode\u003ea68dac1\u003c/code\u003e\u003c/a\u003e fix: throw a clear error when throwArg index equals the argument count (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2743\"\u003e#2743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30\"\u003e\u003ccode\u003e9ea504e\u003c/code\u003e\u003c/a\u003e feat: make sinon.restoreObject idempotent (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/cf5d9e8de1a5307ed7b329b6306ee86982453db7\"\u003e\u003ccode\u003ecf5d9e8\u003c/code\u003e\u003c/a\u003e fix: remove dead link and exclude code example URLs from link check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sinonjs/sinon/compare/v22.0.0...v22.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/sinon` from 21.0.1 to 22.0.0\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/sinon\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 6.0.3 to 7.0.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/TypeScript/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~microsoft1es\"\u003emicrosoft1es\u003c/a\u003e, a new releaser for typescript since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 4.1.9 to 4.1.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vitest-dev/vitest/releases\"\u003evitest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.10\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e: Check fs access in builtin commands [backport to v4]  -  by \u003ca href=\"https://github.com/hi-ogawa\"\u003e\u003ccode\u003e@​hi-ogawa\u003c/code\u003e\u003c/a\u003e, \u003cstrong\u003eHiroshi Ogawa\u003c/strong\u003e and \u003cstrong\u003eOpenCode (claude-opus-4-8)\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10680\"\u003evitest-dev/vitest#10680\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c18dd267\"\u003e\u003c!-- raw HTML omitted --\u003e(5c18d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evm\u003c/strong\u003e: Fix external module resolve error with deps optimizer query for encoded URI [backport to v4]  -  by \u003ca href=\"https://github.com/SveLil\"\u003e\u003ccode\u003e@​SveLil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hi-ogawa\"\u003e\u003ccode\u003e@​hi-ogawa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10661\"\u003evitest-dev/vitest#10661\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bae52b511\"\u003e\u003c!-- raw HTML omitted --\u003e(bae52)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/vitest-dev/vitest/commit/db616d227b6e0cb07a94f5d1bba262ee95db7e46\"\u003e\u003ccode\u003edb616d2\u003c/code\u003e\u003c/a\u003e chore: release v4.1.10 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10718\"\u003e#10718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/bae52b5112a6fd8200101b88bf8af9685d077295\"\u003e\u003ccode\u003ebae52b5\u003c/code\u003e\u003c/a\u003e fix(vm): fix external module resolve error with deps optimizer query for enco...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.17 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-toast` from 1.2.17 to 1.2.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/toast/CHANGELOG.md\"\u003e@​radix-ui/react-toast's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eToast\u003c/code\u003e removing non-focused toasts when pressing \u003ccode\u003eEscape\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003cli\u003eCleared the close timer on unmount to prevent memory leaks and errors in test environments\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toast\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-visually-hidden` from 1.2.6 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/visually-hidden/CHANGELOG.md\"\u003e@​radix-ui/react-visually-hidden's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/visually-hidden\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.61.1 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e@​typescript-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12552\"\u003e#12552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.64.0\u003c/h2\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport parsing \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12513\"\u003e#12513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\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/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e@​typescript-eslint/eslint-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.63.0 (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\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/typescript-eslint/typescript-eslint/commit/63ba81b6acfa0d663c29aa0013d4672bf3b0426c\"\u003e\u003ccode\u003e63ba81b\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.65.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/aa602bdf3f2dd460069da4f82d8acf41a7f938b8\"\u003e\u003ccode\u003eaa602bd\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-unnecessary-parameter-property-assignment] don't flag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/1e90d6733210f550697a062b1e79cb49ce2880e6\"\u003e\u003ccode\u003e1e90d67\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-shadow] specialized error on enum declaration and me...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/b32fb34305f685254059b8ceaf8bec15b1f1f77e\"\u003e\u003ccode\u003eb32fb34\u003c/code\u003e\u003c/a\u003e docs: fix broken code samples in no-extraneous-class and prefer-function-type...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/eaf457631ac381aadfee747c2d098c8ac4df9d63\"\u003e\u003ccode\u003eeaf4576\u003c/code\u003e\u003c/a\u003e feat: add warning when TS 7 is detected (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/18c01c7049e55aa346d84c06bd03d8e9daf48343\"\u003e\u003ccode\u003e18c01c7\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12527\"\u003e#12527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/96e8fe25587a6e83a7a1cd957132a2e02b451b4b\"\u003e\u003ccode\u003e96e8fe2\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [unbound-method] report unbound methods accessed via memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/0d06406f3181f063041dbd1621d71984127ddae1\"\u003e\u003ccode\u003e0d06406\u003c/code\u003e\u003c/a\u003e chore: add attw validation to repo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12437\"\u003e#12437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/9d9973bb181a413187468a95f84f86d9998b0658\"\u003e\u003ccode\u003e9d9973b\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-string-starts-ends-with] handle escaped $ ending ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c2386e49ec6347aa92d53a1f32143ca45984cc13\"\u003e\u003ccode\u003ec2386e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency prettier to v3.9.5 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12486\"\u003e#12486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/parser` from 8.61.1 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e@​typescript-eslint/parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12552\"\u003e#12552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.64.0\u003c/h2\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport parsing \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12513\"\u003e#12513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\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/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md\"\u003e@​typescript-eslint/parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.63.0 (2026-07-06)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.62.1 (2026-06-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.62.0 (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove redundant package.json \u0026quot;files\u0026quot; (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444\"\u003e#12444\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\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/typescript-eslint/typescript-eslint/commit/63ba81b6acfa0d663c29aa0013d4672bf3b0426c\"\u003e\u003ccode\u003e63ba81b\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.65.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/eaf457631ac381aadfee747c2d098c8ac4df9d63\"\u003e\u003ccode\u003eeaf4576\u003c/code\u003e\u003c/a\u003e feat: add warning when TS 7 is detected (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/d8f1044702e3257ee92c0af6681c1455563009db\"\u003e\u003ccode\u003ed8f1044\u003c/code\u003e\u003c/a\u003e feat(parser): add onUnsupportedTypeScriptVersion option to error on unsupport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/0d06406f3181f063041dbd1621d71984127ddae1\"\u003e\u003ccode\u003e0d06406\u003c/code\u003e\u003c/a\u003e chore: add attw validation to repo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12437\"\u003e#12437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c2386e49ec6347aa92d53a1f32143ca45984cc13\"\u003e\u003ccode\u003ec2386e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency prettier to v3.9.5 (\u003ca href=\"https://github.com/typescript-esli...\n\n_Description has been truncated_","html_url":"https://github.com/RawshanSinde/Alikhan-S4.6/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawshanSinde%2FAlikhan-S4.6/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"},{"uuid":"5053823031","node_id":"PR_kwDOMrheo876NC5f","number":1986,"state":"closed","title":"Bump i18next from 23.7.6 to 26.3.6 in /enatega-multivendor-restaurant","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T19:12:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T20:13:27.000Z","updated_at":"2026-08-07T19:12:14.000Z","time_to_close":341917,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"23.7.6","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/enatega-multivendor-restaurant","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 23.7.6 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v23.7.6...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=23.7.6\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/patriciaperez90/flutter-food-delivery-app-clone/pull/1986","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patriciaperez90%2Fflutter-food-delivery-app-clone/issues/1986","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1986/packages"},{"uuid":"5051872350","node_id":"PR_kwDOS9XEDs76GtVB","number":18,"state":"closed","title":"chore(deps): bump the version-all group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T16:09:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T16:14:07.000Z","updated_at":"2026-08-07T16:09:24.000Z","time_to_close":345312,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":42,"packages":[{"name":"@heroui/react","old_version":"2.8.7","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.27.1","new_version":"1.31.25","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.90.20","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.15.2","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"downshift","old_version":"9.0.13","new_version":"9.4.0","repository_url":"https://github.com/downshift-js/downshift"},{"name":"framer-motion","old_version":"12.29.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.8.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-browser-languagedetector","old_version":"8.2.0","new_version":"8.2.1","repository_url":"https://github.com/i18next/i18next-browser-languageDetector"},{"name":"i18next-http-backend","old_version":"3.0.2","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.1.34","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lucide-react","old_version":"0.562.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.335.3","new_version":"1.409.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.10","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"16.5.3","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-icons","old_version":"5.5.0","new_version":"5.7.0","repository_url":"https://github.com/react-icons/react-icons"},{"name":"react-router","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"react-syntax-highlighter","old_version":"16.1.0","new_version":"16.1.1","repository_url":"https://github.com/react-syntax-highlighter/react-syntax-highlighter"},{"name":"tailwind-merge","old_version":"3.4.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"vite","old_version":"7.3.2","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"zustand","old_version":"5.0.10","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@playwright/test","old_version":"1.58.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/typography","old_version":"0.5.19","new_version":"0.5.20","repository_url":"https://github.com/tailwindlabs/tailwindcss-typography"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"25.0.10","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"4.0.18","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"jsdom","old_version":"27.4.0","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"16.2.7","new_version":"17.3.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"msw","old_version":"2.12.7","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite-plugin-svgr","old_version":"4.5.0","new_version":"5.2.0","repository_url":"https://github.com/pd4d10/vite-plugin-svgr"},{"name":"vite-tsconfig-paths","old_version":"6.0.5","new_version":"6.1.1","repository_url":"https://github.com/aleclarson/vite-tsconfig-paths"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 39 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `2.8.7` | `3.2.3` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.27.1` | `1.31.25` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `7.13.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `7.13.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.1.18` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.20` | `5.101.4` |\n| [axios](https://github.com/axios/axios) | `1.15.2` | `1.19.0` |\n| [downshift](https://github.com/downshift-js/downshift) | `9.0.13` | `9.4.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.29.2` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.8.0` | `26.3.6` |\n| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.2.0` | `8.2.1` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.2` | `4.0.1` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.1.34` | `5.2.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.562.0` | `1.28.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.335.3` | `1.409.5` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.10` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.5.3` | `17.0.11` |\n| [react-icons](https://github.com/react-icons/react-icons) | `5.5.0` | `5.7.0` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.13.0` | `8.3.0` |\n| [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) | `16.1.0` | `16.1.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.4.0` | `3.6.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.2` | `8.2.0` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.10` | `5.0.14` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.0` | `1.62.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `7.13.0` | `8.3.0` |\n| [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) | `0.5.19` | `0.5.20` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.10` | `26.1.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.18` | `4.1.10` |\n| [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `17.3.0` |\n| [msw](https://github.com/mswjs/msw) | `2.12.7` | `2.15.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) | `4.5.0` | `5.2.0` |\n| [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) | `6.0.5` | `6.1.1` |\n\n\nUpdates `@heroui/react` from 2.8.7 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/h2\u003e\n\u003ch2\u003eIntroducing HeroUI v3\u003c/h2\u003e\n\u003cp\u003eA complete rewrite for React. A brand-new library for React Native.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOne design system. Beautiful everywhere.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e🌐 \u003cstrong\u003eWeb\u003c/strong\u003e → 75+ components, 21 new\n📱 \u003cstrong\u003eNative\u003c/strong\u003e → 37+ components, built from scratch\n🎨 \u003cstrong\u003eStyling\u003c/strong\u003e → Tailwind CSS v4, CSS variables, OKLCH, BEM\n⚡ \u003cstrong\u003ePerformance\u003c/strong\u003e → CSS animations, no JS runtime\n♿ \u003cstrong\u003eAccessibility\u003c/strong\u003e → React Aria Components\n✨ \u003cstrong\u003eArchitecture\u003c/strong\u003e → Compound components, fully customizable, headless-ready\n🤖 \u003cstrong\u003eAI\u003c/strong\u003e → MCP Server, Agent Skills, LLMs.txt\n📎 \u003cstrong\u003eFigma Kit v3\u003c/strong\u003e with 1:1 component parity\u003c/p\u003e\n\u003cp\u003eEvery component rewritten. Every animation moved to CSS. Styles decoupled from implementation. And tooling that treats AI assistants as a first-class dev interface.\u003c/p\u003e\n\u003cp\u003e🔗 Post/Tweet → \u003ca href=\"https://x.com/hero_ui/status/2035353807735976374\"\u003ehttps://x.com/hero_ui/status/2035353807735976374\u003c/a\u003e\n📋 Release Notes → \u003ca href=\"https://heroui.com/docs/react/releases/v3-0-0\"\u003ehttps://heroui.com/docs/react/releases/v3-0-0\u003c/a\u003e\n🌐 Docs → \u003ca href=\"https://heroui.com/docs/react/getting-started/quick-start\"\u003ehttps://heroui.com/docs/react/getting-started/quick-start\u003c/a\u003e\n📱 Native Docs → \u003ca href=\"https://heroui.com/docs/native/getting-started/quick-start\"\u003ehttps://heroui.com/docs/native/getting-started/quick-start\u003c/a\u003e\n🖼️ Figma Kit → \u003ca href=\"https://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\"\u003ehttps://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA huge thank you to everyone who used the alpha and beta versions — your bug reports, feedback, and patience helped us find and fix issues that made v3 stable. This release wouldn't be the same without you ❤️\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(use-draggable): persist transform position across renders by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6287\"\u003eheroui-inc/heroui#6287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(select): scroll to selected item when reopening dropdown by \u003ca href=\"https://github.com/deepansh946\"\u003e\u003ccode\u003e@​deepansh946\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6269\"\u003eheroui-inc/heroui#6269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump react-aria versions (release v1.16.0) by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6281\"\u003eheroui-inc/heroui#6281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): typo in AutocompleteItem by \u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): broken example in autocomplete by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6292\"\u003eheroui-inc/heroui#6292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6288\"\u003eheroui-inc/heroui#6288\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/@heroui/react@2.8.9...@heroui/react@2.8.10\"\u003ehttps://github.com/heroui-inc/heroui/compare/@​heroui/react@2.8.9...@​heroui/react@2.8.10\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(system-rsc): extendVariants rendering behavior with as by \u003ca href=\"https://github.com/ITBoomBKStudio\"\u003e\u003ccode\u003e@​ITBoomBKStudio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6215\"\u003eheroui-inc/heroui#6215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump RA dependencies by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6221\"\u003eheroui-inc/heroui#6221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(button): correct disableRipple prop precedence by \u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6227\"\u003eheroui-inc/heroui#6227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\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/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md\"\u003e@​heroui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003c/h1\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eREADME updated\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ev3.0.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b2b19129ec5ae7bcd432bcd89f78c4c25c7ee9ae\"\u003e\u003ccode\u003eb2b1912\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e! - Types fixed and removed needless folders from dist\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTypes fixed and removed needless folders from dist\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet up alpha prerelease configuration to ensure v3 remains in alpha status and prevent accidental release of v3.0.0 stable version\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/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​heroui/react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.27.1 to 1.31.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.1.1 to 30.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/192\"\u003emicrolinkhq/react-json-view#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.101.7 to 1.102.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/193\"\u003emicrolinkhq/react-json-view#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.108.4 to 5.109.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/191\"\u003emicrolinkhq/react-json-view#191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/188\"\u003emicrolinkhq/react-json-view#188\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.1.2 to 22.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/166\"\u003emicrolinkhq/react-json-view#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass-loader from 16.0.8 to 17.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/167\"\u003emicrolinkhq/react-json-view#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.106.2 to 5.107.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/168\"\u003emicrolinkhq/react-json-view#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.99.0 to 1.100.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/169\"\u003emicrolinkhq/react-json-view#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/plugin-syntax-jsx\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/170\"\u003emicrolinkhq/react-json-view#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/eslint-parser\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/171\"\u003emicrolinkhq/react-json-view#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.29.3 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/172\"\u003emicrolinkhq/react-json-view#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.100.0 to 1.101.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/173\"\u003emicrolinkhq/react-json-view#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/183\"\u003emicrolinkhq/react-json-view#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.107.2 to 5.108.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/187\"\u003emicrolinkhq/react-json-view#187\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.28.6 to 7.29.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/165\"\u003emicrolinkhq/react-json-view#165\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.25 (2026-07-27)\u003c/h2\u003e\n\u003ch2\u003e1.31.24 (2026-07-24)\u003c/h2\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\u003e\n\u003ch2\u003e1.31.22 (2026-07-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.21 (2026-07-01)\u003c/h2\u003e\n\u003ch2\u003e1.31.20 (2026-05-02)\u003c/h2\u003e\n\u003ch2\u003e1.31.19 (2026-04-28)\u003c/h2\u003e\n\u003ch2\u003e1.31.18 (2026-04-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.17 (2026-04-09)\u003c/h2\u003e\n\u003ch2\u003e1.31.16 (2026-04-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.15 (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003e1.31.14 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.13 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.12 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.11 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.10 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.9 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.8 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.7 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.6 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.5 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.4 (2026-03-08)\u003c/h2\u003e\n\u003ch2\u003e1.31.3 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.2 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.1 (2026-03-05)\u003c/h2\u003e\n\u003ch2\u003e1.31.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types field to package.json (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2e6320af1cb709536355218c79357842dd64d900\"\u003e2e6320a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edev server:\u003c/strong\u003e add example of name as jsx element (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84ada17617ad1df0e748e5cf6383f9cdcefa6e02\"\u003e84ada17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance VariableEditor to support BigNumber type handling (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/98d2d1e508f7121f46c2513435949a69454a75bf\"\u003e98d2d1e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add handling namespace when is an react object (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e11b60af87fa1755554cb5c846d1d49ea12d131e\"\u003ee11b60a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eshow comma option (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/bdb39074635ee84cb2b2d18e7e5f746ae9b0883f\"\u003ebdb3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger onSelect when clicking keys (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6db9f85e3dc4a7d2ad6a04414f498d49201de284\"\u003e6db9f85\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e add JSX.Element as name prop type (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/ebd8aed8246742ebc41776a8a0bb489b8e711138\"\u003eebd8aed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e优化 rjvId 生成方式，添加随机字符串增加唯一性 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6d85757b6e51ddb9c7cbf4f99c9688cf965bd90f\"\u003e6d85757\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaction config (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e150a8a91dc655e583bc43939b0a64affa0c3bdd\"\u003ee150a8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd back build step (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0ddc2293be9edb60067065e4a1a0603dbcfcf05a\"\u003e0ddc229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd legacy ssl flag (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/4005834bb4234ddfdef66f2173a53a686641cb21\"\u003e4005834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd missed devDeps in new create-react-app (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/5275cd446f7d4202b06f4a0d048092066a6b5f5b\"\u003e5275cd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutosizeTextarea \u003ccode\u003eref\u003c/code\u003e prop (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84b8110b3ee2872ce937439f02275645fb7d17a9\"\u003e84b8110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix toggleCollapsed handling sparse arrays (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/656e2d0dda5c77cd89b3b86c8487b0fb1000d7d5\"\u003e656e2d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efunction call (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/86bbd60caef8d80b812a45c8ea9326df62fcb02f\"\u003e86bbd60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add support for functional components (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/f478f55aa2b9dbe730f9638485d9c584ccbbcc45\"\u003ef478f55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emissing quotesOnKeys props in TS typings (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/25f5205f78663a37610295268bf3f7c669592681\"\u003e25f5205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unnecessary CSS (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/990cf94da62202912baca7d1c5584daf9521a092\"\u003e990cf94\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/microlinkhq/react-json-view/commit/ca343dc1158051f64556b713a63caac2f2ac2290\"\u003e\u003ccode\u003eca343dc\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/06435066ca789cd79d8a809804a5933dc3b7783a\"\u003e\u003ccode\u003e0643506\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.101.7 to 1.102.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0c1c80f0e6b7c38e1b6f438bd4ad8358b63a0e61\"\u003e\u003ccode\u003e0c1c80f\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump jsdom from 29.1.1 to 30.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/78b335c496e5364a8cf56bf683b60427f7385a70\"\u003e\u003ccode\u003e78b335c\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/1907a5076e247bacd9f4d1f1fc73b6a445117019\"\u003e\u003ccode\u003e1907a50\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.108.4 to 5.109.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2580eedd49b56e86406941709ee48394c976cc00\"\u003e\u003ccode\u003e2580eed\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/53771e8b975f8731be9453fac2281bf6fb23a6ff\"\u003e\u003ccode\u003e53771e8\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.27.1...v1.31.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 7.13.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.16.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump dependencies (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15106\"\u003e#15106\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eBumped \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e from \u003ccode\u003e^0.13.0\u003c/code\u003e to \u003ccode\u003e^0.13.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.0\"\u003e\u003ccode\u003ereact-router@8.0.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@7.18.0\"\u003e\u003ccode\u003ereact-router@7.18.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/fdd896aadb1c470db358b4d9fe76fb53c9325f21\"\u003e\u003ccode\u003efdd896a\u003c/code\u003e\u003c/a\u003e Add tsconfigs for test files (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 7.13.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.16.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.2.0\"\u003e\u003ccode\u003e@react-router/express@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.2.0\"\u003e\u003ccode\u003e@react-router/node@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse Node's built-in networking APIs to find an available port and remove the \u003ccode\u003eget-port\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.1.0\"\u003e\u003ccode\u003e@react-router/express@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.1.0\"\u003e\u003ccode\u003e@react-router/node@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.0.1\"\u003e\u003ccode\u003e@react-router/express@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.0.1\"\u003e\u003ccode\u003e@react-router/node@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003eexpress\u003c/code\u003e from \u003ccode\u003e4.21.2\u003c/code\u003e to \u003ccode\u003e5.2.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/aa35115b85345df2bc640475a57e1b1125a8dae6\"\u003e\u003ccode\u003eaa35115\u003c/code\u003e\u003c/a\u003e Prep 8.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/6db7409d287763b625a15ba31418416c4dc25035\"\u003e\u003ccode\u003e6db7409\u003c/code\u003e\u003c/a\u003e Remove small runtime CLI dependencies (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/c89079321dc0740d7ac690f8b024824a150f90c5\"\u003e\u003ccode\u003ec890793\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.1.18 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edrop-shadow-*\u003c/code\u003e color utilities work with custom shadow values containing \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080\"\u003e#20080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 'Sourcemap is likely to be incorrect' warnings when using \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103\"\u003e#20103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/webpack\u003c/code\u003e can be installed in Rspack projects without requiring \u003ccode\u003ewebpack\u003c/code\u003e as a peer dependency (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027\"\u003e#20027\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.2] - 2026-06-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.1] - 2026-06-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f\"\u003e\u003ccode\u003e056a155\u003c/code\u003e\u003c/a\u003e 4.3.2 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20281\"\u003e#20281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bb6a10937c7e1434db39919fbb4df4a8982dba7f\"\u003e\u003ccode\u003ebb6a109\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003e.ts\u003c/code\u003e instead of \u003ccode\u003e.css\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9\"\u003e\u003ccode\u003e8a14a71\u003c/code\u003e\u003c/a\u003e 4.3.1 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20226\"\u003e#20226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/73983e1cf5bc0ae721f4568cc24a5b5067b6b90b\"\u003e\u003ccode\u003e73983e1\u003c/code\u003e\u003c/a\u003e Fix 'Sourcemap is likely to be incorrect' warnings when using `@tailwindcss/v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9\"\u003e\u003ccode\u003e588bd73\u003c/code\u003e\u003c/a\u003e 4.3.0 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20023\"\u003e#20023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd\"\u003e\u003ccode\u003ed194d4c\u003c/code\u003e\u003c/a\u003e docs: fix various typos in comments and documentation (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19878\"\u003e#19878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/db27049caaae08978995f25b61f8336f543a4640\"\u003e\u003ccode\u003edb27049\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e): include \u003ca href=\"https://github.com/variant\"\u003e\u003ccode\u003e@​variant\u003c/code\u003e\u003c/a\u003e in feature detection (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19966\"\u003e#19966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5a799900d4b43ca4902398a38c6f0a5b37a98ed9\"\u003e\u003ccode\u003e5a79990\u003c/code\u003e\u003c/a\u003e Always resolve relative files, relative to the current .css file (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19965\"\u003e#19965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.90.20 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/mohith266/openhands/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohith266%2Fopenhands/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"5050355903","node_id":"PR_kwDOTskPQc76ByGo","number":6,"state":"open","title":"chore(deps): bump the frontend-deps group with 54 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-03T13:32:04.000Z","updated_at":"2026-08-03T13:32:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":54,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.5.7","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-log","old_version":"2.8.0","new_version":"2.9.0","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.83.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 54 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.5.7` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-log](https://github.com/tauri-apps/plugins-workspace) | `2.8.0` | `2.9.0` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.83.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.5.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eyup resolver overrides ref property in errors object with validation metadata when using checkbox input (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/863\"\u003e#863\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0f70063beb28496ffac0b5345d75826a077934ee\"\u003e0f70063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.3...v5.5.4\"\u003e5.5.4\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAJV Resolver - When ajv schema contains default for certain properties, getValues() returns the form data with properties overwritten (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/862\"\u003e#862\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/c4b6aab69c64b7a3ea95223552a7996e741aea39\"\u003ec4b6aab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.2...v5.5.3\"\u003e5.5.3\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConditional/dynamic schema resolution no longer working (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/861\"\u003e#861\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/f8d653319cedece2063140378b6d61e77bcf57b0\"\u003ef8d6533\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.1...v5.5.2\"\u003e5.5.2\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod v4 locale and global error customization not picked up (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/860\"\u003e#860\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2126efc6e8d9325c18413534a651f7fee22ce8c8\"\u003e2126efc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.0...v5.5.1\"\u003e5.5.1\u003c/a\u003e (2026-07-25)\u003c/h2\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/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0f70063beb28496ffac0b5345d75826a077934ee\"\u003e\u003ccode\u003e0f70063\u003c/code\u003e\u003c/a\u003e fix: yup resolver overrides ref property in errors object with validation met...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/c4b6aab69c64b7a3ea95223552a7996e741aea39\"\u003e\u003ccode\u003ec4b6aab\u003c/code\u003e\u003c/a\u003e fix: AJV Resolver - When ajv schema contains default for certain properties, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/e2a8d16b92df8545025dc63472ed69f930b60c37\"\u003e\u003ccode\u003ee2a8d16\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/760\"\u003e#760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/f8d653319cedece2063140378b6d61e77bcf57b0\"\u003e\u003ccode\u003ef8d6533\u003c/code\u003e\u003c/a\u003e fix: Conditional/dynamic schema resolution no longer working (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2126efc6e8d9325c18413534a651f7fee22ce8c8\"\u003e\u003ccode\u003e2126efc\u003c/code\u003e\u003c/a\u003e fix: Zod v4 locale and global error customization not picked up (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/860\"\u003e#860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0721f880667aba432fb84187fec0f5f1960109bd\"\u003e\u003ccode\u003e0721f88\u003c/code\u003e\u003c/a\u003e add unit test (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.5.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;select\u0026gt;\u003c/code\u003e behavior for optional selects.\u003c/li\u003e\n\u003cli\u003eFixed a bug where typeahead search resulted in focusing an element that no longer exists.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded unstable \u003ccode\u003eProvider\u003c/code\u003e and \u003ccode\u003eBubbleInput\u003c/code\u003e parts to Select. \u003ccode\u003eSelect.unstable_Provider\u003c/code\u003e sets up Select's context and state without implicitly rendering the hidden native \u003ccode\u003eselect\u003c/code\u003e, and \u003ccode\u003eSelect.unstable_BubbleInput\u003c/code\u003e exposes that previously internal native \u003ccode\u003eselect\u003c/code\u003e so consumers can recompose it explicitly. \u003ccode\u003eSelect\u003c/code\u003e continues to render both by default.\u003c/li\u003e\n\u003cli\u003eAdded support for presence-based exit animations in Select\u003c/li\u003e\n\u003cli\u003eFixed Select hidden input so it submits empty string when no value is selected\u003c/li\u003e\n\u003cli\u003eFixed placeholder rendering when a controlled Select is reset to an empty value\u003c/li\u003e\n\u003cli\u003eAdded missing \u003ccode\u003e__selectScope\u003c/code\u003e prop to \u003ccode\u003ePopperContent\u003c/code\u003e component\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSelect\u003c/code\u003e closing unexpectedly after touch-scrolling its content when rendered inside an open shadow DOM\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSelectValue\u003c/code\u003e logging invalid prop errors when used with both \u003ccode\u003easChild\u003c/code\u003e and a placeholder\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-select\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-slot` from 1.2.4 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md\"\u003e@​radix-ui/react-slot's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.2, 1.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded generic type arguments for \u003ccode\u003eSlotProps\u003c/code\u003e and \u003ccode\u003ecreateSlot\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eSlotProps\u003c/code\u003e and \u003ccode\u003ecreateSlot\u003c/code\u003e now accept generic type arguments to specify the type of element a slot should render, as well as its props.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003econst Slot = createSlot\u0026lt;HTMLButtonElement, MyCustomButtonProps\u0026gt;('Slot');\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e1.2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by \u003ccode\u003eSlot\u003c/code\u003e creating a new ref callback on every render\u003c/li\u003e\n\u003cli\u003eAdded support for nested \u003ccode\u003eSlottable\u003c/code\u003e via a render prop, so a slotted element can be wrapped while still merging Slot props and refs onto it\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eImproved error messages for invalid slot children\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-slot\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-switch` from 1.2.6 to 1.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md\"\u003e@​radix-ui/react-switch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value progra...\n\n_Description has been truncated_","html_url":"https://github.com/1351468279/aiengine-switch/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1351468279%2Faiengine-switch/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"5047643976","node_id":"PR_kwDOM5p3xs7549f6","number":1890,"state":"closed","title":"Bump i18next from 24.2.3 to 26.3.6 in /enatega-multivendor-app","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:20:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T08:05:52.000Z","updated_at":"2026-08-07T18:20:54.000Z","time_to_close":382492,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"24.2.3","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/enatega-multivendor-app","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 24.2.3 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.3...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=24.2.3\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/patriciaperez90/online-food-ordering-app-in-react-native/pull/1890","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patriciaperez90%2Fonline-food-ordering-app-in-react-native/issues/1890","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1890/packages"},{"uuid":"5043613192","node_id":"PR_kwDOSHjhUc75siDn","number":38,"state":"closed","title":"build(deps): Bump the minor-and-patch group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-09T17:15:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-02T17:16:14.000Z","updated_at":"2026-08-09T17:15:54.000Z","time_to_close":604779,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"minor-and-patch","update_count":29,"packages":[{"name":"@anthropic-ai/sdk","old_version":"0.80.0","new_version":"0.115.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@codemirror/autocomplete","old_version":"6.20.2","new_version":"6.20.3","repository_url":"https://github.com/codemirror/autocomplete"},{"name":"@codemirror/commands","old_version":"6.10.3","new_version":"6.10.4","repository_url":"https://github.com/codemirror/commands"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/language","old_version":"6.12.3","new_version":"6.12.4","repository_url":"https://github.com/codemirror/language"},{"name":"@codemirror/search","old_version":"6.7.0","new_version":"6.7.1","repository_url":"https://github.com/codemirror/search"},{"name":"@codemirror/view","old_version":"6.43.0","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@lezer/markdown","old_version":"1.6.3","new_version":"1.7.2","repository_url":"https://github.com/lezer-parser/markdown"},{"name":"dompurify","old_version":"3.4.5","new_version":"3.4.12","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"i18next","old_version":"26.0.6","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"katex","old_version":"0.16.45","new_version":"0.18.1","repository_url":"https://github.com/KaTeX/KaTeX"},{"name":"lucide-react","old_version":"1.7.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.15.0","new_version":"11.16.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"react-i18next","old_version":"17.0.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.13.2","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"semver","old_version":"7.8.1","new_version":"7.8.5","repository_url":"https://github.com/npm/node-semver"},{"name":"tailwindcss","old_version":"4.2.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"zod","old_version":"4.3.6","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"zustand","old_version":"5.0.12","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@tailwindcss/vite","old_version":"4.2.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"electron-builder","old_version":"26.8.1","new_version":"26.15.3","repository_url":"https://github.com/electron-userland/electron-builder"},{"name":"eslint-plugin-react-hooks","old_version":"7.0.1","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"eslint-plugin-react-refresh","old_version":"0.4.26","new_version":"0.5.3","repository_url":"https://github.com/ArnaudBarre/eslint-plugin-react-refresh"},{"name":"prettier","old_version":"3.8.1","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"vitest","old_version":"4.1.2","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.80.0` | `0.115.0` |\n| [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) | `6.20.2` | `6.20.3` |\n| [@codemirror/commands](https://github.com/codemirror/commands) | `6.10.3` | `6.10.4` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/language](https://github.com/codemirror/language) | `6.12.3` | `6.12.4` |\n| [@codemirror/search](https://github.com/codemirror/search) | `6.7.0` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.43.0` | `6.43.7` |\n| [@lezer/markdown](https://github.com/lezer-parser/markdown) | `1.6.3` | `1.7.2` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.5` | `3.4.12` |\n| [i18next](https://github.com/i18next/i18next) | `26.0.6` | `26.3.6` |\n| [katex](https://github.com/KaTeX/KaTeX) | `0.16.45` | `0.18.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.7.0` | `1.28.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.15.0` | `11.16.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.4` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.13.2` | `7.18.2` |\n| [semver](https://github.com/npm/node-semver) | `7.8.1` | `7.8.5` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.2` | `4.3.3` |\n| [zod](https://github.com/colinhacks/zod) | `4.3.6` | `4.4.3` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.12` | `5.0.14` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.2` | `4.3.3` |\n| [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) | `26.8.1` | `26.15.3` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `7.0.1` | `7.1.1` |\n| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.26` | `0.5.3` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.9.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.2` | `4.1.10` |\n\n\nUpdates `@anthropic-ai/sdk` from 0.80.0 to 0.115.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/releases\"\u003e@​anthropic-ai/sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003esdk: v0.115.0\u003c/h2\u003e\n\u003ch2\u003e0.115.0 (2026-07-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.114.0...sdk-v0.115.0\"\u003esdk-v0.114.0...sdk-v0.115.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-5 model (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add tool addition/removal blocks and tool_change events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e expand client-side fallback credit token types and add server-side fallbacks default option (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b85e902669c78a8293b5390e93e57dd2e3f6c545\"\u003eb85e902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.114.0\u003c/h2\u003e\n\u003ch2\u003e0.114.0 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.113.0...sdk-v0.114.0\"\u003esdk-v0.113.0...sdk-v0.114.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add new stop reason 'model_context_window_exceeded' (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec71c165d9737cb317e3f8fed818f7a1b8169ad\"\u003e1ec71c1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.113.0\u003c/h2\u003e\n\u003ch2\u003e0.113.0 (2026-07-22)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.5...sdk-v0.113.0\"\u003esdk-v0.112.5...sdk-v0.113.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Managed Agents model effort, initial session events, and threads delta streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/83fef1e5a65f020750b1f90c46d748a415b6f075\"\u003e83fef1e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.112.5\u003c/h2\u003e\n\u003ch2\u003e0.112.5 (2026-07-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.4...sdk-v0.112.5\"\u003esdk-v0.112.4...sdk-v0.112.5\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for new refusal category (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/479efe8ade0078966e28d754fa3085c75b6d2a58\"\u003e479efe8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/830fb7467c3cc947e31b5d83a2a31d34fc8ebac2\"\u003e830fb74\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.112.4\u003c/h2\u003e\n\u003ch2\u003e0.112.4 (2026-07-20)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.3...sdk-v0.112.4\"\u003esdk-v0.112.3...sdk-v0.112.4\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\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/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md\"\u003e@​anthropic-ai/sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.115.0 (2026-07-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.114.0...sdk-v0.115.0\"\u003esdk-v0.114.0...sdk-v0.115.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-5 model (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add tool addition/removal blocks and tool_change events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e expand client-side fallback credit token types and add server-side fallbacks default option (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b85e902669c78a8293b5390e93e57dd2e3f6c545\"\u003eb85e902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.114.0 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.113.0...sdk-v0.114.0\"\u003esdk-v0.113.0...sdk-v0.114.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add new stop reason 'model_context_window_exceeded' (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec71c165d9737cb317e3f8fed818f7a1b8169ad\"\u003e1ec71c1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.113.0 (2026-07-22)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.5...sdk-v0.113.0\"\u003esdk-v0.112.5...sdk-v0.113.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Managed Agents model effort, initial session events, and threads delta streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/83fef1e5a65f020750b1f90c46d748a415b6f075\"\u003e83fef1e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.112.5 (2026-07-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.4...sdk-v0.112.5\"\u003esdk-v0.112.4...sdk-v0.112.5\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for new refusal category (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/479efe8ade0078966e28d754fa3085c75b6d2a58\"\u003e479efe8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/830fb7467c3cc947e31b5d83a2a31d34fc8ebac2\"\u003e830fb74\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.112.4 (2026-07-20)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.3...sdk-v0.112.4\"\u003esdk-v0.112.3...sdk-v0.112.4\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaws:\u003c/strong\u003e preserve AWS options and auth mode across withOptions() (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/214\"\u003e#214\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/3f7665c5419eb80c489546a70da799648e7d5ff2\"\u003e3f7665c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\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/anthropics/anthropic-sdk-typescript/commit/3b45cd3b69c956ac63384fdb09ce1d8109f3fa80\"\u003e\u003ccode\u003e3b45cd3\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f298e9ad78cea4c047940a33d944f20e3f3b60f2\"\u003e\u003ccode\u003ef298e9a\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-5 model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/ce8e54bc70e4e26e80bc2a8e7d9de2db9a8b5ef5\"\u003e\u003ccode\u003ece8e54b\u003c/code\u003e\u003c/a\u003e fix(client): release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2d314b412701f01c2a2b1cee8974f9f9cfdec13d\"\u003e\u003ccode\u003e2d314b4\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/3d051dfe492ba4d66c25d55d5dfe86cbc8037bda\"\u003e\u003ccode\u003e3d051df\u003c/code\u003e\u003c/a\u003e feat(api): add new stop reason 'model_context_window_exceeded'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/4414d474207178886e39377d5dc166739fd1f15e\"\u003e\u003ccode\u003e4414d47\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec55666c8412de68836a54383d2a4b0f2df55a2\"\u003e\u003ccode\u003e1ec5566\u003c/code\u003e\u003c/a\u003e feat(api): add support for Managed Agents model effort, initial session event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c58a55b01e62a308e2ffbed01b4d5c19a97868fc\"\u003e\u003ccode\u003ec58a55b\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2fb7da58a5545533d0917de19d17ab6ee2a69af0\"\u003e\u003ccode\u003e2fb7da5\u003c/code\u003e\u003c/a\u003e chore(api): add support for new refusal category\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d6ffc3c2e87a573aa1bee53895fa86f3f405f8ca\"\u003e\u003ccode\u003ed6ffc3c\u003c/code\u003e\u003c/a\u003e chore(internal): codegen related update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.80.0...sdk-v0.115.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​anthropic-ai/sdk\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/autocomplete` from 6.20.2 to 6.20.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/autocomplete/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/commands` from 6.10.3 to 6.10.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/commands/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/language` from 6.12.3 to 6.12.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/language/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/search` from 6.7.0 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/search/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.6.0 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.43.0 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lezer/markdown` from 1.6.3 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lezer-parser/markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dompurify` from 3.4.5 to 3.4.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cure53/DOMPurify/releases\"\u003edompurify's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eDOMPurify 3.4.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where a hook would not get called for custom elements, thanks \u003ca href=\"https://github.com/Rikuxx0\"\u003e\u003ccode\u003e@​Rikuxx0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the handling of hooks removing elements, \u003ca href=\"https://github.com/mkrause-bee360\"\u003e\u003ccode\u003e@​mkrause-bee360\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for a few new SVG attributes, thanks \u003ca href=\"https://github.com/cbn-falias\"\u003e\u003ccode\u003e@​cbn-falias\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Develop-KIM\"\u003e\u003ccode\u003e@​Develop-KIM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the handling of declarative partial updates\u003c/li\u003e\n\u003cli\u003eUpdated the documentation is several spots, README, wiki, etc.\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with a leaky config for hooks via \u003ccode\u003esetConfig\u003c/code\u003e, thanks \u003ca href=\"https://github.com/trace37labs\"\u003e\u003ccode\u003e@​trace37labs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumped vulnerable development dependencies to arrive at plain 0 with \u003ccode\u003enpm audit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eosv-scanner\u003c/code\u003e suppression list as no vulnerable dependencies are left for now\u003c/li\u003e\n\u003cli\u003eUpdated up the linting tool-chain and removed now-redundant lint directives\u003c/li\u003e\n\u003cli\u003eUpdated the documentation is several spots, README, wiki, etc.\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactored codebase for clarity: extracted the public type declarations into \u003ccode\u003etypes.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDecomposed the three largest sanitizer functions into focused helpers\u003c/li\u003e\n\u003cli\u003eRemoved duplicated defaults and dead branches, consolidated \u003ccode\u003eSAFE_FOR_TEMPLATES\u003c/code\u003e scrubbing into single shared path\u003c/li\u003e\n\u003cli\u003eImproved per-node performance by hoisting the mXSS probe regexes and testing \u003ccode\u003etextContent\u003c/code\u003e before \u003ccode\u003einnerHTML\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded a deterministic micro-benchmark harness (\u003ccode\u003enpm run bench\u003c/code\u003e) with a \u003ccode\u003e--compare\u003c/code\u003e mode\u003c/li\u003e\n\u003cli\u003eReduced CI cost by running the full three-engine browser suite once per PR\u003c/li\u003e\n\u003cli\u003eRefreshed the \u003ccode\u003edemos/\u003c/code\u003e folder so every demo runs again, and added a SVG-via-\u003ccode\u003e\u0026lt;img\u0026gt;\u003c/code\u003e demo\u003c/li\u003e\n\u003cli\u003eDocumented the bench and \u003ccode\u003etest:happydom\u003c/code\u003e scripts in the README\u003c/li\u003e\n\u003cli\u003eCompleted the Attack Classes \u0026amp; Bypass History wiki page\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFurther improved the handling of Trusted Types config options, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFurther improved the handling of \u003ccode\u003eIN_PLACE\u003c/code\u003e sanitization, thanks \u003ca href=\"https://github.com/mozfreddyb\"\u003e\u003ccode\u003e@​mozfreddyb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded more test coverage for \u003ccode\u003eIN_PLACE\u003c/code\u003e and Trusted Types related usage\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003cli\u003eUpdated README and wiki with more accurate documentation \u0026amp; attack samples\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleaned up the repository root, renamed some and removed unneeded files\u003c/li\u003e\n\u003cli\u003eFixed an issue with handling of Trusted Types policies, thanks \u003ca href=\"https://github.com/fulstadev\"\u003e\u003ccode\u003e@​fulstadev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the node iterator for better template scrubbing, thanks \u003ca href=\"https://github.com/IamLeandrooooo\"\u003e\u003ccode\u003e@​IamLeandrooooo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded formerly missing LICENSE-MPL in published npm package, thanks \u003ca href=\"https://github.com/asamuzaK\"\u003e\u003ccode\u003e@​asamuzaK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened the handling of Shadow Roots when using \u003ccode\u003eIN_PLACE\u003c/code\u003e, thanks \u003ca href=\"https://github.com/GameZoneHacker\"\u003e\u003ccode\u003e@​GameZoneHacker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved a problem leading to permanent hook pollution, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactored the test suite and expanded test coverage significantly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed several issues with DOM Clobbering in \u003ccode\u003eIN_PLACE\u003c/code\u003e mode, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Bankde\"\u003e\u003ccode\u003e@​Bankde\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the checks for cross-realm \u003ccode\u003eIN_PLACE\u003c/code\u003e and Shadow DOM sanitization, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Bankde\"\u003e\u003ccode\u003e@​Bankde\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/cure53/DOMPurify/commit/a9ca1e537422319a557a9a2aa61f003b23b4a197\"\u003e\u003ccode\u003ea9ca1e5\u003c/code\u003e\u003c/a\u003e release: 3.4.12 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/0cae5187403132f96a6d357649e4b15633fc210a\"\u003e\u003ccode\u003e0cae518\u003c/code\u003e\u003c/a\u003e release: 3.4.11 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1494\"\u003e#1494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/6ee5716f8336989753611beeca364957c0eb0c3e\"\u003e\u003ccode\u003e6ee5716\u003c/code\u003e\u003c/a\u003e release: 3.4.10 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/52102472d46035857c52df19e44285f8a1e102fc\"\u003e\u003ccode\u003e5210247\u003c/code\u003e\u003c/a\u003e release: 3.4.9 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1459\"\u003e#1459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/bcdd8285412dc9c4c149652aed2d712e790d6ccf\"\u003e\u003ccode\u003ebcdd828\u003c/code\u003e\u003c/a\u003e release: 3.4.8 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1439\"\u003e#1439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/ca30f070c360df162a3e3848e80e6fd3c9e74bff\"\u003e\u003ccode\u003eca30f07\u003c/code\u003e\u003c/a\u003e release: 3.4.7 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/bb7739e5bccec7e1ab3dae3f3e42d02db3acaaae\"\u003e\u003ccode\u003ebb7739e\u003c/code\u003e\u003c/a\u003e release: 3.4.6 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/cure53/DOMPurify/compare/3.4.5...3.4.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.0.6 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.0.6...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `katex` from 0.16.45 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/KaTeX/KaTeX/releases\"\u003ekatex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.18.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.18.0...v0.18.1\"\u003e0.18.1\u003c/a\u003e (2026-07-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehtmlData:\u003c/strong\u003e allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e87a2b30\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4204\"\u003e#4204\u003c/a\u003e \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4218\"\u003e#4218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.18.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.17.0...v0.18.0\"\u003e0.18.0\u003c/a\u003e (2026-07-17)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eprefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e6f5c44f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eusers who apply custom styles or have allowlists targeting KaTeX's internal classes must update their selectors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.47...v0.17.0\"\u003e0.17.0\u003c/a\u003e (2026-05-22)\u003c/h1\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esimplify \u003ccode\u003edefineFunction\u003c/code\u003e to avoid destructuring, improve typing (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4222\"\u003e#4222\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/fb604e6ba63e99809e242d37f9c8359209d55431\"\u003efb604e6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe internal API for \u003ccode\u003e__defineFunction\u003c/code\u003e changed: you should no longer wrap properties in \u003ccode\u003eprops\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.47\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.46...v0.16.47\"\u003e0.16.47\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecorrect size of \u003ccode\u003e[\u003c/code\u003e big delimiter (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4217\"\u003e#4217\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/7ba0027d2f04abddd3b215362f867ab8260b09d7\"\u003e7ba0027\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4215\"\u003e#4215\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.46\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.16.46\"\u003e0.16.46\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epreserve math font in some styling commands (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4214\"\u003e#4214\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/e9ee0464ddb31da9bf9649eeb70e52236e7a974a\"\u003ee9ee046\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4213\"\u003e#4213\u003c/a\u003e\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/KaTeX/KaTeX/blob/main/CHANGELOG.md\"\u003ekatex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.18.0...v0.18.1\"\u003e0.18.1\u003c/a\u003e (2026-07-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehtmlData:\u003c/strong\u003e allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e87a2b30\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4204\"\u003e#4204\u003c/a\u003e \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4218\"\u003e#4218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.17.0...v0.18.0\"\u003e0.18.0\u003c/a\u003e (2026-07-17)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eprefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e6f5c44f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eusers who apply custom styles or have allowlists targeting KaTeX's internal classes must update their selectors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.47...v0.17.0\"\u003e0.17.0\u003c/a\u003e (2026-05-22)\u003c/h1\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esimplify \u003ccode\u003edefineFunction\u003c/code\u003e to avoid destructuring, improve typing (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4222\"\u003e#4222\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/fb604e6ba63e99809e242d37f9c8359209d55431\"\u003efb604e6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe internal API for \u003ccode\u003e__defineFunction\u003c/code\u003e changed: you should no longer wrap properties in \u003ccode\u003eprops\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.46...v0.16.47\"\u003e0.16.47\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecorrect size of \u003ccode\u003e[\u003c/code\u003e big delimiter (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4217\"\u003e#4217\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/7ba0027d2f04abddd3b215362f867ab8260b09d7\"\u003e7ba0027\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4215\"\u003e#4215\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.16.46\"\u003e0.16.46\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epreserve math font in some styling commands (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4214\"\u003e#4214\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/e9ee0464ddb31da9bf9649eeb70e52236e7a974a\"\u003ee9ee046\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4213\"\u003e#4213\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/KaTeX/KaTeX/commit/cdf479f6749fd2a04c2ccad9be0ead2ac26c33d2\"\u003e\u003ccode\u003ecdf479f\u003c/code\u003e\u003c/a\u003e chore(release): 0.18.1 [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e\u003ccode\u003e87a2b30\u003c/code\u003e\u003c/a\u003e fix(htmlData): allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/2318066babab2b1729bba87c983b4fdbdb206eb4\"\u003e\u003ccode\u003e2318066\u003c/code\u003e\u003c/a\u003e chore(deps): bump codecov/codecov-action from 6 to 7 (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/3b5b6a0f3d9881e75876af4b83a84a4a0fc4d948\"\u003e\u003ccode\u003e3b5b6a0\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4232\"\u003e#4232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/4e9d31a103790b2fea8777fc209cdd1a1e72132d\"\u003e\u003ccode\u003e4e9d31a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency js-yaml to v4.2.0 [security] (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/b7ca8f09180d3383077bda89608be19242077d3e\"\u003e\u003ccode\u003eb7ca8f0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency webpack-dev-server to v5.2.5 [security] (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4242\"\u003e#4242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/bf1a59fc2c19b12b50d9b627f9f530b89ef46c47\"\u003e\u003ccode\u003ebf1a59f\u003c/code\u003e\u003c/a\u003e chore: use pixel diff as fallback for byte-to-byte (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4245\"\u003e#4245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/4d9d0ae03841943ac3ccc63ad5708e15c46b187e\"\u003e\u003ccode\u003e4d9d0ae\u003c/code\u003e\u003c/a\u003e chore(release): 0.18.0 [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e\u003ccode\u003e6f5c44f\u003c/code\u003e\u003c/a\u003e feat: prefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/2c6143a6dd7c168cef602c1e29f8add66f7fcc19\"\u003e\u003ccode\u003e2c6143a\u003c/code\u003e\u003c/a\u003e refactor: remove direct hasOwnProperty call (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4230\"\u003e#4230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.18.1\"\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 adds \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 `lucide-react` from 1.7.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.28.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): improve calendar icons centre of gravity by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4614\"\u003elucide-icons/lucide#4614\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.27.0...1.28.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.27.0...1.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.27.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): removed brand names from tags \u0026amp; revised brand stopwords by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4575\"\u003elucide-icons/lucide#4575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): Fix site build by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4582\"\u003elucide-icons/lucide#4582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): optimised \u003ccode\u003esquare-scissors\u003c/code\u003e icons by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4581\"\u003elucide-icons/lucide#4581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(packages/angular): add more supported attributes for SVG nodes by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4570\"\u003elucide-icons/lucide#4570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003epending-cw\u003c/code\u003e icon by \u003ca href=\"https://github.com/NielsLazaroms\"\u003e\u003ccode\u003e@​NielsLazaroms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4439\"\u003elucide-icons/lucide#4439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ezap\u003c/code\u003e and \u003ccode\u003ezap-off\u003c/code\u003e icons by \u003ca href=\"https://github.com/kapowaz\"\u003e\u003ccode\u003e@​kapowaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4536\"\u003elucide-icons/lucide#4536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003esquare-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/october-learns\"\u003e\u003ccode\u003e@​october-learns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4496\"\u003elucide-icons/lucide#4496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.4.8 to 7.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4572\"\u003elucide-icons/lucide#4572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etoolbox\u003c/code\u003e icon by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4571\"\u003elucide-icons/lucide#4571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add scan-square by \u003ca href=\"https://github.com/samuelalake\"\u003e\u003ccode\u003e@​samuelalake\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4550\"\u003elucide-icons/lucide#4550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003euser-shield\u003c/code\u003e icon by \u003ca href=\"https://github.com/MArtytraM99\"\u003e\u003ccode\u003e@​MArtytraM99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3099\"\u003elucide-icons/lucide#3099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003emosque\u003c/code\u003e icon by \u003ca href=\"https://github.com/iskepr\"\u003e\u003ccode\u003e@​iskepr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4494\"\u003elucide-icons/lucide#4494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(request-review): Remove pull_request_target by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4593\"\u003elucide-icons/lucide#4593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003efeather\u003c/code\u003e icon by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4584\"\u003elucide-icons/lucide#4584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ci): added custom prettier plugin for icon SVG files by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4576\"\u003elucide-icons/lucide#4576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci.yml): Remove concurrency in ci.yml by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4595\"\u003elucide-icons/lucide#4595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ebarrel\u003c/code\u003e icon by \u003ca href=\"https://github.com...\n\n_Description has been truncated_","html_url":"https://github.com/seethith/Ulyzer/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/seethith%2FUlyzer/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"},{"uuid":"5031100026","node_id":"PR_kwDOTpZtzM75FkCI","number":3,"state":"open","title":"chore(deps): bump the i18next group with 3 updates","user":"dependabot[bot]","labels":["type: chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-31T15:39:02.000Z","updated_at":"2026-07-31T15:45:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"i18next","update_count":3,"packages":[{"name":"i18next","old_version":"26.0.8","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.6","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"eslint-plugin-i18next","old_version":"6.1.4","new_version":"6.1.5","repository_url":"https://github.com/edvardchen/eslint-plugin-i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps the i18next group with 3 updates: [i18next](https://github.com/i18next/i18next), [react-i18next](https://github.com/i18next/react-i18next) and [eslint-plugin-i18next](https://github.com/edvardchen/eslint-plugin-i18next).\n\nUpdates `i18next` from 26.0.8 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.0.8...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.6 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans i18nKey={$ =\u0026gt; ...}\u0026gt;\u003c/code\u003e now typechecks under \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e. The \u003ccode\u003eTrans\u003c/code\u003e component's conditional type was gated on \u003ccode\u003e_EnableSelector extends true | 'optimize'\u003c/code\u003e, excluding \u003ccode\u003e'strict'\u003c/code\u003e and falling back to the legacy string-key signature. Runtime was already correct (it calls \u003ccode\u003ekeyFromSelector(i18nKey)\u003c/code\u003e whenever \u003ccode\u003etypeof i18nKey === 'function'\u003c/code\u003e); this is a type-only fix that widens the conditional to include \u003ccode\u003e'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/pull/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003euseTranslation([nsA, nsB, ...])\u003c/code\u003e now passes its full namespace list to \u003ccode\u003egetFixedT\u003c/code\u003e via the new \u003ccode\u003escopeNs\u003c/code\u003e opt (requires \u003ccode\u003ei18next\u003c/code\u003e ≥ v26.0.10). This makes selector calls with a secondary-namespace prefix resolve correctly under default \u003ccode\u003ensMode\u003c/code\u003e: \u003ccode\u003et($ =\u0026gt; $.nsB.foo)\u003c/code\u003e previously missed silently because the bound \u003ccode\u003ens\u003c/code\u003e was the primary string only and i18next's selector rewrite needed an array. Resolution semantics are unchanged — plain \u003ccode\u003et('key')\u003c/code\u003e lookups still stay isolated to the primary namespace by default; use \u003ccode\u003ensMode: 'fallback'\u003c/code\u003e to opt into multi-ns fallback resolution as before. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003ei18next#2429\u003c/a\u003e for \u003ccode\u003euseTranslation\u003c/code\u003e-based callers.\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v17.0.6...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-plugin-i18next` from 6.1.4 to 6.1.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/blob/main/CHANGELOG.md\"\u003eeslint-plugin-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/compare/v6.1.4...v6.1.5\"\u003e6.1.5\u003c/a\u003e (2026-06-28)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edetect strings ending with ellipsis (\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/a3d519819a3b272b1530d3ee46a3f409ef6cab41\"\u003ea3d5198\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/edvardchen/eslint-plugin-i18next/commit/afe9e870c2ff3355b3838a037911ab06c12fe113\"\u003e\u003ccode\u003eafe9e87\u003c/code\u003e\u003c/a\u003e chore(release): 6.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/7a6794fc60e891f1a8698debba3f7005bd7cf6e2\"\u003e\u003ccode\u003e7a6794f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/edvardchen/eslint-plugin-i18next/issues/160\"\u003e#160\u003c/a\u003e from mrginglymus/rm-lodash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/27a799629309d45b8e0e55b422178a50da4231d5\"\u003e\u003ccode\u003e27a7996\u003c/code\u003e\u003c/a\u003e chore(deps): swap lodash for native object spread\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/5ff15a85741936ec8f2aacdadcb5da3cb6499de5\"\u003e\u003ccode\u003e5ff15a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/edvardchen/eslint-plugin-i18next/issues/159\"\u003e#159\u003c/a\u003e from edvardchen/fix-ellipsis-detection-138\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/a3d519819a3b272b1530d3ee46a3f409ef6cab41\"\u003e\u003ccode\u003ea3d5198\u003c/code\u003e\u003c/a\u003e fix: detect strings ending with ellipsis\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/compare/v6.1.4...v6.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AkshitRaiKakkar/OpenHandsAi/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitRaiKakkar%2FOpenHandsAi/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"5012980218","node_id":"PR_kwDOTS2XdM74K-Il","number":17,"state":"closed","title":"chore(deps): bump the version-all group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","javascript","type: chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T19:28:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-29T19:30:37.000Z","updated_at":"2026-08-07T19:29:11.000Z","time_to_close":777499,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":40,"packages":[{"name":"@heroui/react","old_version":"2.8.8","new_version":"3.2.2","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.27.1","new_version":"1.31.23","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.90.20","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.18.1","repository_url":"https://github.com/axios/axios"},{"name":"downshift","old_version":"9.3.2","new_version":"9.4.0","repository_url":"https://github.com/downshift-js/downshift"},{"name":"framer-motion","old_version":"12.38.0","new_version":"12.42.2","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.10.10","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-browser-languagedetector","old_version":"8.2.0","new_version":"8.2.1","repository_url":"https://github.com/i18next/i18next-browser-languageDetector"},{"name":"i18next-http-backend","old_version":"3.0.6","new_version":"4.0.0","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.1.34","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lucide-react","old_version":"0.563.0","new_version":"1.25.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.373.5","new_version":"1.407.0","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-i18next","old_version":"16.6.6","new_version":"17.0.10","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-icons","old_version":"5.5.0","new_version":"5.7.0","repository_url":"https://github.com/react-icons/react-icons"},{"name":"react-router","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"react-syntax-highlighter","old_version":"16.1.0","new_version":"16.1.1","repository_url":"https://github.com/react-syntax-highlighter/react-syntax-highlighter"},{"name":"tailwind-merge","old_version":"3.4.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"vite","old_version":"7.3.2","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"},{"name":"zustand","old_version":"5.0.13","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@playwright/test","old_version":"1.60.0","new_version":"1.61.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/typography","old_version":"0.5.19","new_version":"0.5.20","repository_url":"https://github.com/tailwindlabs/tailwindcss-typography"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"25.8.0","new_version":"26.1.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"jsdom","old_version":"27.4.0","new_version":"29.1.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"16.2.7","new_version":"17.1.1","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"msw","old_version":"2.12.7","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"prettier","old_version":"3.8.1","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite-plugin-svgr","old_version":"4.5.0","new_version":"5.2.0","repository_url":"https://github.com/pd4d10/vite-plugin-svgr"},{"name":"vitest","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 40 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `2.8.8` | `3.2.2` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.27.1` | `1.31.23` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `7.17.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `7.17.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.1.18` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.20` | `5.101.4` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.18.1` |\n| [downshift](https://github.com/downshift-js/downshift) | `9.3.2` | `9.4.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.38.0` | `12.42.2` |\n| [i18next](https://github.com/i18next/i18next) | `25.10.10` | `26.3.6` |\n| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.2.0` | `8.2.1` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.6` | `4.0.0` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.1.34` | `5.2.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.563.0` | `1.25.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.373.5` | `1.407.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.6.6` | `17.0.10` |\n| [react-icons](https://github.com/react-icons/react-icons) | `5.5.0` | `5.7.0` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.17.0` | `8.3.0` |\n| [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) | `16.1.0` | `16.1.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.4.0` | `3.6.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.2` | `8.1.5` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.13` | `5.0.14` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.60.0` | `1.61.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `7.17.0` | `8.3.0` |\n| [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) | `0.5.19` | `0.5.20` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.8.0` | `26.1.1` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.8` | `4.1.10` |\n| [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `29.1.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `17.1.1` |\n| [msw](https://github.com/mswjs/msw) | `2.12.7` | `2.15.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) | `4.5.0` | `5.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.8` | `4.1.10` |\n\n\nUpdates `@heroui/react` from 2.8.8 to 3.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/h2\u003e\n\u003ch2\u003eIntroducing HeroUI v3\u003c/h2\u003e\n\u003cp\u003eA complete rewrite for React. A brand-new library for React Native.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOne design system. Beautiful everywhere.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e🌐 \u003cstrong\u003eWeb\u003c/strong\u003e → 75+ components, 21 new\n📱 \u003cstrong\u003eNative\u003c/strong\u003e → 37+ components, built from scratch\n🎨 \u003cstrong\u003eStyling\u003c/strong\u003e → Tailwind CSS v4, CSS variables, OKLCH, BEM\n⚡ \u003cstrong\u003ePerformance\u003c/strong\u003e → CSS animations, no JS runtime\n♿ \u003cstrong\u003eAccessibility\u003c/strong\u003e → React Aria Components\n✨ \u003cstrong\u003eArchitecture\u003c/strong\u003e → Compound components, fully customizable, headless-ready\n🤖 \u003cstrong\u003eAI\u003c/strong\u003e → MCP Server, Agent Skills, LLMs.txt\n📎 \u003cstrong\u003eFigma Kit v3\u003c/strong\u003e with 1:1 component parity\u003c/p\u003e\n\u003cp\u003eEvery component rewritten. Every animation moved to CSS. Styles decoupled from implementation. And tooling that treats AI assistants as a first-class dev interface.\u003c/p\u003e\n\u003cp\u003e🔗 Post/Tweet → \u003ca href=\"https://x.com/hero_ui/status/2035353807735976374\"\u003ehttps://x.com/hero_ui/status/2035353807735976374\u003c/a\u003e\n📋 Release Notes → \u003ca href=\"https://heroui.com/docs/react/releases/v3-0-0\"\u003ehttps://heroui.com/docs/react/releases/v3-0-0\u003c/a\u003e\n🌐 Docs → \u003ca href=\"https://heroui.com/docs/react/getting-started/quick-start\"\u003ehttps://heroui.com/docs/react/getting-started/quick-start\u003c/a\u003e\n📱 Native Docs → \u003ca href=\"https://heroui.com/docs/native/getting-started/quick-start\"\u003ehttps://heroui.com/docs/native/getting-started/quick-start\u003c/a\u003e\n🖼️ Figma Kit → \u003ca href=\"https://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\"\u003ehttps://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA huge thank you to everyone who used the alpha and beta versions — your bug reports, feedback, and patience helped us find and fix issues that made v3 stable. This release wouldn't be the same without you ❤️\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(use-draggable): persist transform position across renders by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6287\"\u003eheroui-inc/heroui#6287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(select): scroll to selected item when reopening dropdown by \u003ca href=\"https://github.com/deepansh946\"\u003e\u003ccode\u003e@​deepansh946\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6269\"\u003eheroui-inc/heroui#6269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump react-aria versions (release v1.16.0) by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6281\"\u003eheroui-inc/heroui#6281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): typo in AutocompleteItem by \u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): broken example in autocomplete by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6292\"\u003eheroui-inc/heroui#6292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6288\"\u003eheroui-inc/heroui#6288\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/@heroui/react@2.8.9...@heroui/react@2.8.10\"\u003ehttps://github.com/heroui-inc/heroui/compare/@​heroui/react@2.8.9...@​heroui/react@2.8.10\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(system-rsc): extendVariants rendering behavior with as by \u003ca href=\"https://github.com/ITBoomBKStudio\"\u003e\u003ccode\u003e@​ITBoomBKStudio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6215\"\u003eheroui-inc/heroui#6215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump RA dependencies by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6221\"\u003eheroui-inc/heroui#6221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(button): correct disableRipple prop precedence by \u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6227\"\u003eheroui-inc/heroui#6227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\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/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md\"\u003e@​heroui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003c/h1\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eREADME updated\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ev3.0.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b2b19129ec5ae7bcd432bcd89f78c4c25c7ee9ae\"\u003e\u003ccode\u003eb2b1912\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e! - Types fixed and removed needless folders from dist\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTypes fixed and removed needless folders from dist\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet up alpha prerelease configuration to ensure v3 remains in alpha status and prevent accidental release of v3.0.0 stable version\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/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/88c581f1641a3e3d76e155f7a76340b6df696dd5\"\u003e\u003ccode\u003e88c581f\u003c/code\u003e\u003c/a\u003e chore: release v3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/87a9cb6ee23d05b129a978ce76e779b15a994b7e\"\u003e\u003ccode\u003e87a9cb6\u003c/code\u003e\u003c/a\u003e fix(tooltip): avoid Focusable warning when mounted inside inert subtree (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6628\"\u003e#6628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/48dd655228d90274a4e0e863c08e044819c692b5\"\u003e\u003ccode\u003e48dd655\u003c/code\u003e\u003c/a\u003e fix(autocomplete): wrap popover content in dialog to prevent stray focus ring...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.2/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​heroui/react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.27.1 to 1.31.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/188\"\u003emicrolinkhq/react-json-view#188\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.1.2 to 22.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/166\"\u003emicrolinkhq/react-json-view#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass-loader from 16.0.8 to 17.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/167\"\u003emicrolinkhq/react-json-view#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.106.2 to 5.107.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/168\"\u003emicrolinkhq/react-json-view#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.99.0 to 1.100.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/169\"\u003emicrolinkhq/react-json-view#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/plugin-syntax-jsx\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/170\"\u003emicrolinkhq/react-json-view#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/eslint-parser\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/171\"\u003emicrolinkhq/react-json-view#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.29.3 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/172\"\u003emicrolinkhq/react-json-view#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.100.0 to 1.101.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/173\"\u003emicrolinkhq/react-json-view#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/183\"\u003emicrolinkhq/react-json-view#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.107.2 to 5.108.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/187\"\u003emicrolinkhq/react-json-view#187\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.28.6 to 7.29.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/165\"\u003emicrolinkhq/react-json-view#165\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.19...v1.31.20\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.19...v1.31.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump pnpm/action-setup from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/163\"\u003emicrolinkhq/react-json-view#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.0.2 to 29.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/164\"\u003emicrolinkhq/react-json-view#164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.18...v1.31.19\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.18...v1.31.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump babel-plugin-istanbul from 7.0.1 to 8.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/158\"\u003emicrolinkhq/react-json-view#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.0.3 to 21.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/159\"\u003emicrolinkhq/react-json-view#159\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\u003e\n\u003ch2\u003e1.31.22 (2026-07-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.21 (2026-07-01)\u003c/h2\u003e\n\u003ch2\u003e1.31.20 (2026-05-02)\u003c/h2\u003e\n\u003ch2\u003e1.31.19 (2026-04-28)\u003c/h2\u003e\n\u003ch2\u003e1.31.18 (2026-04-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.17 (2026-04-09)\u003c/h2\u003e\n\u003ch2\u003e1.31.16 (2026-04-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.15 (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003e1.31.14 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.13 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.12 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.11 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.10 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.9 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.8 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.7 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.6 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.5 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.4 (2026-03-08)\u003c/h2\u003e\n\u003ch2\u003e1.31.3 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.2 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.1 (2026-03-05)\u003c/h2\u003e\n\u003ch2\u003e1.31.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types field to package.json (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2e6320af1cb709536355218c79357842dd64d900\"\u003e2e6320a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edev server:\u003c/strong\u003e add example of name as jsx element (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84ada17617ad1df0e748e5cf6383f9cdcefa6e02\"\u003e84ada17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance VariableEditor to support BigNumber type handling (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/98d2d1e508f7121f46c2513435949a69454a75bf\"\u003e98d2d1e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add handling namespace when is an react object (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e11b60af87fa1755554cb5c846d1d49ea12d131e\"\u003ee11b60a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eshow comma option (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/bdb39074635ee84cb2b2d18e7e5f746ae9b0883f\"\u003ebdb3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger onSelect when clicking keys (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6db9f85e3dc4a7d2ad6a04414f498d49201de284\"\u003e6db9f85\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e add JSX.Element as name prop type (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/ebd8aed8246742ebc41776a8a0bb489b8e711138\"\u003eebd8aed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e优化 rjvId 生成方式，添加随机字符串增加唯一性 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6d85757b6e51ddb9c7cbf4f99c9688cf965bd90f\"\u003e6d85757\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaction config (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e150a8a91dc655e583bc43939b0a64affa0c3bdd\"\u003ee150a8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd back build step (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0ddc2293be9edb60067065e4a1a0603dbcfcf05a\"\u003e0ddc229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd legacy ssl flag (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/4005834bb4234ddfdef66f2173a53a686641cb21\"\u003e4005834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd missed devDeps in new create-react-app (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/5275cd446f7d4202b06f4a0d048092066a6b5f5b\"\u003e5275cd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutosizeTextarea \u003ccode\u003eref\u003c/code\u003e prop (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84b8110b3ee2872ce937439f02275645fb7d17a9\"\u003e84b8110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix toggleCollapsed handling sparse arrays (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/656e2d0dda5c77cd89b3b86c8487b0fb1000d7d5\"\u003e656e2d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efunction call (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/86bbd60caef8d80b812a45c8ea9326df62fcb02f\"\u003e86bbd60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add support for functional components (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/f478f55aa2b9dbe730f9638485d9c584ccbbcc45\"\u003ef478f55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emissing quotesOnKeys props in TS typings (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/25f5205f78663a37610295268bf3f7c669592681\"\u003e25f5205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unnecessary CSS (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/990cf94da62202912baca7d1c5584daf9521a092\"\u003e990cf94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace class attribute by classname (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e38bab4f5468bcd77112564ed2a34fb5b6d550a6\"\u003ee38bab4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve test failures in Node 20+ and below Node 17 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c00d5cc907c6200b6c7d9076c9e4a0a0bb8433b6\"\u003ec00d5cc\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/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2580eedd49b56e86406941709ee48394c976cc00\"\u003e\u003ccode\u003e2580eed\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/53771e8b975f8731be9453fac2281bf6fb23a6ff\"\u003e\u003ccode\u003e53771e8\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/d6aa26db8a51dec8759ea964d321dd27db388689\"\u003e\u003ccode\u003ed6aa26d\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0e0b7791d182feb8097acb0ed661dae5471d6d93\"\u003e\u003ccode\u003e0e0b779\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.107.2 to 5.108.3 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/187\"\u003e#187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/364702e5021b1b869fdf15603b29721aa53de202\"\u003e\u003ccode\u003e364702e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/8156fca31f16d0107756775f80221eec62ddee8b\"\u003e\u003ccode\u003e8156fca\u003c/code\u003e\u003c/a\u003e build: tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/96da330a2ed4e910d26ef5039393d33f43a17977\"\u003e\u003ccode\u003e96da330\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.100.0 to 1.101.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.27.1...v1.31.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 7.17.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump dependencies (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15106\"\u003e#15106\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eBumped \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e from \u003ccode\u003e^0.13.0\u003c/code\u003e to \u003ccode\u003e^0.13.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.0\"\u003e\u003ccode\u003ereact-router@8.0.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@7.18.0\"\u003e\u003ccode\u003ereact-router@7.18.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/fdd896aadb1c470db358b4d9fe76fb53c9325f21\"\u003e\u003ccode\u003efdd896a\u003c/code\u003e\u003c/a\u003e Add tsconfigs for test files (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 7.17.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.2.0\"\u003e\u003ccode\u003e@react-router/express@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.2.0\"\u003e\u003ccode\u003e@react-router/node@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse Node's built-in networking APIs to find an available port and remove the \u003ccode\u003eget-port\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.1.0\"\u003e\u003ccode\u003e@react-router/express@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.1.0\"\u003e\u003ccode\u003e@react-router/node@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.0.1\"\u003e\u003ccode\u003e@react-router/express@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.0.1\"\u003e\u003ccode\u003e@react-router/node@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003eexpress\u003c/code\u003e from \u003ccode\u003e4.21.2\u003c/code\u003e to \u003ccode\u003e5.2.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/aa35115b85345df2bc640475a57e1b1125a8dae6\"\u003e\u003ccode\u003eaa35115\u003c/code\u003e\u003c/a\u003e Prep 8.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/6db7409d287763b625a15ba31418416c4dc25035\"\u003e\u003ccode\u003e6db7409\u003c/code\u003e\u003c/a\u003e Remove small runtime CLI dependencies (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/c89079321dc0740d7ac690f8b024824a150f90c5\"\u003e\u003ccode\u003ec890793\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.1.18 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edrop-shadow-*\u003c/code\u003e color utilities work with custom shadow values containing \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080\"\u003e#20080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 'Sourcemap is likely to be incorrect' warnings when using \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103\"\u003e#20103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/webpack\u003c/code\u003e can be installed in Rspack projects without requiring \u003ccode\u003ewebpack\u003c/code\u003e as a peer dependency (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027\"\u003e#20027\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.2] - 2026-06-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.1] - 2026-06-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f\"\u003e\u003ccode\u003e056a155\u003c/code\u003e\u003c/a\u003e 4.3.2 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20281\"\u003e#20281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bb6a10937c7e1434db39919fbb4df4a8982dba7f\"\u003e\u003ccode\u003ebb6a109\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003e.ts\u003c/code\u003e instead of \u003ccode\u003e.css\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9\"\u003e\u003ccode\u003e8a14a71\u003c/code\u003e\u003c/a\u003e 4.3.1 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20226\"\u003e#20226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/73983e1cf5bc0ae721f4568cc24a5b5067b6b90b\"\u003e\u003ccode\u003e73983e1\u003c/code\u003e\u003c/a\u003e Fix 'Sourcemap is likely to be incorrect' warnings when using `@tailwindcss/v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9\"\u003e\u003ccode\u003e588bd73\u003c/code\u003e\u003c/a\u003e 4.3.0 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20023\"\u003e#20023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd\"\u003e\u003ccode\u003ed194d4c\u003c/code\u003e\u003c/a\u003e docs: fix various typos in comments and documentation (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19878\"\u003e#19878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/db27049caaae08978995f25b61f8336f543a4640\"\u003e\u003ccode\u003edb27049\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e): include \u003ca href=\"https://github.com/variant\"\u003e\u003ccode\u003e@​variant\u003c/code\u003e\u003c/a\u003e in feature detection (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19966\"\u003e#19966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5a799900d4b43ca4902398a38c6f0a5b37a98ed9\"\u003e\u003ccode\u003e5a79990\u003c/code\u003e\u003c/a\u003e Always resolve relative files, relative to the current .css file (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19965\"\u003e#19965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.90.20 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\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/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/9eff92ed86e284ec0125b3a3539d028688235bd1\"\u003e\u003ccode\u003e9eff92e\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.14\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003efix(react-query): do not go into optimistic fetching state when not subscribed (\u003ca href=\"https://redirect.github.com/TanStack/query/pull/10759\"\u003e#10759\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.13\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanSta...\n\n_Description has been truncated_","html_url":"https://github.com/lvxq333/CodingAgent/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvxq333%2FCodingAgent/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5005103516","node_id":"PR_kwDOSaIDb873xQky","number":32,"state":"closed","title":"chore(deps): bump the dependencies group across 1 directory with 49 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-02T01:59:01.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-29T03:28:49.000Z","updated_at":"2026-08-02T01:59:03.000Z","time_to_close":340212,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":49,"packages":[{"name":"@changesets/cli","old_version":"2.31.0","new_version":"2.31.1","repository_url":"https://github.com/changesets/changesets"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.62.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/node","old_version":"20.19.40","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"eslint","old_version":"9.39.4","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-config-prettier","old_version":"9.1.2","new_version":"10.1.8","repository_url":"https://github.com/prettier/eslint-config-prettier"},{"name":"prettier","old_version":"3.8.3","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript","old_version":"5.6.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@isomorphic-git/lightning-fs","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/isomorphic-git/lightning-fs"},{"name":"isomorphic-git","old_version":"1.37.6","new_version":"1.40.0","repository_url":"https://github.com/isomorphic-git/isomorphic-git"},{"name":"vitest","old_version":"3.2.7","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@fastify/cors","old_version":"10.1.0","new_version":"11.3.0","repository_url":"https://github.com/fastify/fastify-cors"},{"name":"@fastify/jwt","old_version":"9.1.0","new_version":"10.2.1","repository_url":"https://github.com/fastify/fastify-jwt"},{"name":"@fastify/swagger-ui","old_version":"5.2.6","new_version":"6.1.1","repository_url":"https://github.com/fastify/fastify-swagger-ui"},{"name":"@prisma/client","old_version":"6.19.3","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"bcryptjs","old_version":"2.4.3","new_version":"3.0.3","repository_url":"https://github.com/dcodeIO/bcrypt.js"},{"name":"@types/bcryptjs","old_version":"2.4.6","new_version":"3.0.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jose","old_version":"6.2.3","new_version":"6.2.5","repository_url":"https://github.com/panva/jose"},{"name":"zod","old_version":"3.25.76","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"prisma","old_version":"6.19.3","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"tsx","old_version":"4.23.0","new_version":"4.23.1","repository_url":"https://github.com/privatenumber/tsx"},{"name":"@rollup/rollup-darwin-arm64","old_version":"4.40.1","new_version":"4.62.3","repository_url":"https://github.com/rollup/rollup"},{"name":"@vitest/coverage-v8","old_version":"1.6.0","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"lucide-react","old_version":"0.460.0","new_version":"1.27.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"tailwind-merge","old_version":"2.6.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jsdom","old_version":"29.1.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.4","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"concurrently","old_version":"9.2.4","new_version":"10.0.4","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"electron","old_version":"39.8.10","new_version":"43.2.0","repository_url":"https://github.com/electron/electron"},{"name":"vite","old_version":"6.4.3","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.1.0","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@types/vscode","old_version":"1.118.0","new_version":"1.125.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@xyflow/react","old_version":"12.10.2","new_version":"12.11.2","repository_url":"https://github.com/xyflow/xyflow"},{"name":"i18next","old_version":"26.2.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.18.1","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"zustand","old_version":"5.0.13","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"autoprefixer","old_version":"10.5.0","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"eslint-plugin-react-refresh","old_version":"0.4.26","new_version":"0.5.3","repository_url":"https://github.com/ArnaudBarre/eslint-plugin-react-refresh"},{"name":"postcss","old_version":"8.5.23","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"tailwindcss","old_version":"3.4.19","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"framer-motion","old_version":"12.42.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"react-is","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"recharts","old_version":"3.9.2","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"globals","old_version":"17.7.0","new_version":"17.8.0","repository_url":"https://github.com/sindresorhus/globals"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dependencies group with 49 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@changesets/cli](https://github.com/changesets/changesets) | `2.31.0` | `2.31.1` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.62.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.40` | `26.1.2` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.8.0` |\n| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `9.1.2` | `10.1.8` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.3` | `3.9.6` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.6.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.65.0` |\n| [@isomorphic-git/lightning-fs](https://github.com/isomorphic-git/lightning-fs) | `4.6.2` | `4.7.0` |\n| [isomorphic-git](https://github.com/isomorphic-git/isomorphic-git) | `1.37.6` | `1.40.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `3.2.7` | `4.1.10` |\n| [@fastify/cors](https://github.com/fastify/fastify-cors) | `10.1.0` | `11.3.0` |\n| [@fastify/jwt](https://github.com/fastify/fastify-jwt) | `9.1.0` | `10.2.1` |\n| [@fastify/swagger-ui](https://github.com/fastify/fastify-swagger-ui) | `5.2.6` | `6.1.1` |\n| [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) | `6.19.3` | `7.9.1` |\n| [bcryptjs](https://github.com/dcodeIO/bcrypt.js) | `2.4.3` | `3.0.3` |\n| [@types/bcryptjs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bcryptjs) | `2.4.6` | `3.0.0` |\n| [jose](https://github.com/panva/jose) | `6.2.3` | `6.2.5` |\n| [zod](https://github.com/colinhacks/zod) | `3.25.76` | `4.4.3` |\n| [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) | `6.19.3` | `7.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.23.0` | `4.23.1` |\n| [@rollup/rollup-darwin-arm64](https://github.com/rollup/rollup) | `4.40.1` | `4.62.3` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `1.6.0` | `4.1.10` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.460.0` | `1.27.0` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `2.6.1` | `3.6.0` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.4` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `9.2.4` | `10.0.4` |\n| [electron](https://github.com/electron/electron) | `39.8.10` | `43.2.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `6.4.3` | `8.1.5` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.1.0` |\n| [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) | `1.118.0` | `1.125.0` |\n| [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) | `12.10.2` | `12.11.2` |\n| [i18next](https://github.com/i18next/i18next) | `26.2.0` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.1` | `7.18.2` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.13` | `5.0.14` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.5.0` | `10.5.4` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.26` | `0.5.3` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.23` | `8.5.25` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.19` | `4.3.3` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` |\n| [react-is](https://github.com/react/react/tree/HEAD/packages/react-is) | `19.2.7` | `19.2.8` |\n| [recharts](https://github.com/recharts/recharts) | `3.9.2` | `3.10.1` |\n| [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` |\n\n\nUpdates `@changesets/cli` from 2.31.0 to 2.31.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/changesets/changesets/releases\"\u003e@​changesets/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​changesets/cli\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.31.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/changesets/changesets/pull/2159\"\u003e#2159\u003c/a\u003e \u003ca href=\"https://github.com/changesets/changesets/commit/15cf5928fb9968ba20b59ed6c794013c52c92d09\"\u003e\u003ccode\u003e15cf592\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e! - Fixed already-published version detection with npm 12, which always wraps successful \u003ccode\u003enpm info --json\u003c/code\u003e output in an array. The unwrapped output made \u003ccode\u003echangeset publish\u003c/code\u003e treat every package as unpublished and fail attempting to republish existing versions.\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/changesets/changesets/commit/a897bb8ac115fa65343a8bfe53654040c1542a80\"\u003e\u003ccode\u003ea897bb8\u003c/code\u003e\u003c/a\u003e Use a different publish tag for \u003ccode\u003emaintenance/v2\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/e8650b9bf45560ca7642a1e043ac92111b886073\"\u003e\u003ccode\u003ee8650b9\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/15cf5928fb9968ba20b59ed6c794013c52c92d09\"\u003e\u003ccode\u003e15cf592\u003c/code\u003e\u003c/a\u003e Fixed handling of the npm 12 info output (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/9f2cb2ad87061ba1715691b7ebef7e192ccede58\"\u003e\u003ccode\u003e9f2cb2a\u003c/code\u003e\u003c/a\u003e Configure Changesets for \u003ccode\u003emaintenance/v2\u003c/code\u003e line (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2076\"\u003e#2076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/97247cb56a2746b6a73b65746547456e83c3f44c\"\u003e\u003ccode\u003e97247cb\u003c/code\u003e\u003c/a\u003e Change allowed publish pattern to \u003ccode\u003emaintenance/v*\u003c/code\u003e given rulesets behavior (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/13286a8d89be5293ec8c6634ae981b4ed261e7a1\"\u003e\u003ccode\u003e13286a8\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the github-actions group across 1 directory with 3 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/8f6acd658891ca4d4d7e458c67cf704c87ac46a1\"\u003e\u003ccode\u003e8f6acd6\u003c/code\u003e\u003c/a\u003e Update dependabot group to exclude major (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2067\"\u003e#2067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/c70c675c2a22062aeae881f78f436bf793e26f35\"\u003e\u003ccode\u003ec70c675\u003c/code\u003e\u003c/a\u003e Setup backport workflow and sync next setup (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2057\"\u003e#2057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/96720197013d2d49e5b32c30803e4653660348b6\"\u003e\u003ccode\u003e9672019\u003c/code\u003e\u003c/a\u003e Remove SECURITY.md to defer to .github (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/18e1661e3ad9bc4ab7bcd770ae172c560af44acc\"\u003e\u003ccode\u003e18e1661\u003c/code\u003e\u003c/a\u003e Use internal bot for versioning (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/changesets/changesets/compare/@changesets/cli@2.31.0...@changesets/cli@2.31.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.4 to 10.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c87d5bded54c5cf491eb04c24c9d09bbbd42c23e\"\u003e\u003ccode\u003ec87d5bd\u003c/code\u003e\u003c/a\u003e fix: update eslint (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20531\"\u003e#20531\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d84100115c14691691058f00779c94e74fca946a\"\u003e\u003ccode\u003ed841001\u003c/code\u003e\u003c/a\u003e fix: update \u003ccode\u003eminimatch\u003c/code\u003e to \u003ccode\u003e10.2.1\u003c/code\u003e to address security vulnerabilities (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20519\"\u003e#20519\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/04c21475b3004904948f02049f2888b401d82c78\"\u003e\u003ccode\u003e04c2147\u003c/code\u003e\u003c/a\u003e fix: update error message for unused suppressions (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20496\"\u003e#20496\u003c/a\u003e) (fnx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/38b089c1726feac0e31a31d47941bd99e29ce003\"\u003e\u003ccode\u003e38b089c\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​eslint/config-array\u003c/code\u003e to ^0.23.1 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20484\"\u003e#20484\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5b3dbce50a1404a9f118afe810cefeee79388a2a\"\u003e\u003ccode\u003e5b3dbce\u003c/code\u003e\u003c/a\u003e docs: add AI acknowledgement section to templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20431\"\u003e#20431\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6f23076037d5879f20fb3be2ef094293b1e8d38c\"\u003e\u003ccode\u003e6f23076\u003c/code\u003e\u003c/a\u003e docs: toggle nav in no-JS mode (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20476\"\u003e#20476\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b69cfb32a16c5d5e9986390d484fae1d21e406f9\"\u003e\u003ccode\u003eb69cfb3\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e5c281ffd038a3a7a3e5364db0b9378e0ad83020\"\u003e\u003ccode\u003ee5c281f\u003c/code\u003e\u003c/a\u003e chore: updates for v9.39.3 release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8c3832adb77cd993b4a24891900d5eeaaf093cdc\"\u003e\u003ccode\u003e8c3832a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e to ^8.56.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20514\"\u003e#20514\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8330d238ae6adb68bb6a1c9381e38cfedd990d94\"\u003e\u003ccode\u003e8330d23\u003c/code\u003e\u003c/a\u003e test: add tests for config-api (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20493\"\u003e#20493\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/37d6e91e88fa6a2ca6d8726679096acff21ba6cc\"\u003e\u003ccode\u003e37d6e91\u003c/code\u003e\u003c/a\u003e chore: remove eslint v10 prereleases from eslint-config-eslint deps (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20494\"\u003e#20494\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/da7cd0e79197ad16e17052eef99df141de6dbfb1\"\u003e\u003ccode\u003eda7cd0e\u003c/code\u003e\u003c/a\u003e refactor: cleanup error message templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20479\"\u003e#20479\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f9e54f43a5e497cdfa179338b431093245cb787b\"\u003e\u003ccode\u003ef9e54f4\u003c/code\u003e\u003c/a\u003e feat!: estimate rule-tester failure location (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20420\"\u003e#20420\u003c/a\u003e) (ST-DDT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a176319d8ade1a7d9b2d7fb8f038f55a2662325f\"\u003e\u003ccode\u003ea176319\u003c/code\u003e\u003c/a\u003e feat!: replace \u003ccode\u003echalk\u003c/code\u003e with \u003ccode\u003estyleText\u003c/code\u003e and add \u003ccode\u003ecolor\u003c/code\u003e to \u003ccode\u003eResultsMeta\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20227\"\u003e#20227\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c7046e6c1e03c4ca0eee4888a1f2eba4c6454f84\"\u003e\u003ccode\u003ec7046e6\u003c/code\u003e\u003c/a\u003e feat!: enable JSX reference tracking (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20152\"\u003e#20152\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e) (Kirk Waiblinger)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3383e7ec9028166cafc8ea7986c2f7498d0049f0\"\u003e\u003ccode\u003e3383e7e\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eSourceCode\u003c/code\u003e methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20137\"\u003e#20137\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/501abd0e916a35554c58b7c0365537f1fa3880ce\"\u003e\u003ccode\u003e501abd0\u003c/code\u003e\u003c/a\u003e feat!: update dependency minimatch to v10 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20246\"\u003e#20246\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ca4d3b40085de47561f89656a2207d09946ed45e\"\u003e\u003ccode\u003eca4d3b4\u003c/code\u003e\u003c/a\u003e fix!: stricter rule tester assertions for valid test cases (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20125\"\u003e#20125\u003c/a\u003e) (唯然)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/96512a66c86402fb0538cdcb6cd30b9073f6bf3b\"\u003e\u003ccode\u003e96512a6\u003c/code\u003e\u003c/a\u003e fix!: Remove deprecated rule context methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20086\"\u003e#20086\u003c/a\u003e) (Nicholas C. Zakas)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c69fdacdb2e886b9d965568a397aa8220db3fe90\"\u003e\u003ccode\u003ec69fdac\u003c/code\u003e\u003c/a\u003e feat!: remove eslintrc support (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20037\"\u003e#20037\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/208b5cc34a8374ff81412b5bec2e0800eebfbd04\"\u003e\u003ccode\u003e208b5cc\u003c/code\u003e\u003c/a\u003e feat!: Use \u003ccode\u003eScopeManager#addGlobals()\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20132\"\u003e#20132\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a2ee188ea7a38a0c6155f3d39e2b00e1d0f36e14\"\u003e\u003ccode\u003ea2ee188\u003c/code\u003e\u003c/a\u003e fix!: add \u003ccode\u003euniqueItems: true\u003c/code\u003e in \u003ccode\u003eno-invalid-regexp\u003c/code\u003e option (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20155\"\u003e#20155\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a89059dbf2832d417dd493ee81483227ec44e4ab\"\u003e\u003ccode\u003ea89059d\u003c/code\u003e\u003c/a\u003e feat!: Program range span entire source text (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20133\"\u003e#20133\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39a6424373d915fa9de0d7b0caba9a4dc3da9b53\"\u003e\u003ccode\u003e39a6424\u003c/code\u003e\u003c/a\u003e fix!: assert 'text' is a string across all RuleFixer methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20082\"\u003e#20082\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f28fbf846244e043c92b355b224d121b06140b44\"\u003e\u003ccode\u003ef28fbf8\u003c/code\u003e\u003c/a\u003e fix!: Deprecate \u003ccode\u003e\u0026quot;always\u0026quot;\u003c/code\u003e and \u003ccode\u003e\u0026quot;as-needed\u0026quot;\u003c/code\u003e options of the \u003ccode\u003eradix\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20223\"\u003e#20223\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/aa3fb2b233e929b37220be940575f42c280e0b98\"\u003e\u003ccode\u003eaa3fb2b\u003c/code\u003e\u003c/a\u003e fix!: tighten \u003ccode\u003efunc-names\u003c/code\u003e schema (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20119\"\u003e#20119\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f6c0ed0311dcfee853367d5068c765d066e6b756\"\u003e\u003ccode\u003ef6c0ed0\u003c/code\u003e\u003c/a\u003e feat!: report \u003ccode\u003eeslint-env\u003c/code\u003e comments as errors (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20128\"\u003e#20128\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bf739fb533e59f7f0a66b65f7bc80be0f37d8db\"\u003e\u003ccode\u003e4bf739f\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eLintMessage#nodeType\u003c/code\u003e and \u003ccode\u003eTestCaseError#type\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20096\"\u003e#20096\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/523c076866400670fb2192a3f55dbf7ad3469247\"\u003e\u003ccode\u003e523c076\u003c/code\u003e\u003c/a\u003e feat!: drop support for jiti \u0026lt; 2.2.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20016\"\u003e#20016\u003c/a\u003e) (michael faith)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4f880ee02992e1bf0e96ebaba679985e2d1295f1\"\u003e\u003ccode\u003e4f880ee\u003c/code\u003e\u003c/a\u003e feat!: remove \u003ccode\u003ev10_*\u003c/code\u003e and inactive \u003ccode\u003eunstable_*\u003c/code\u003e flags (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20225\"\u003e#20225\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f18115c363a4ac7671a4c7f30ee13d57ebba330f\"\u003e\u003ccode\u003ef18115c\u003c/code\u003e\u003c/a\u003e feat!: \u003ccode\u003eno-shadow-restricted-names\u003c/code\u003e report \u003ccode\u003eglobalThis\u003c/code\u003e by default (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20027\"\u003e#20027\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bff9091927811497dbf066b0e3b85ecb37d43822\"\u003e\u003ccode\u003ebff9091\u003c/code\u003e\u003c/a\u003e feat: handle \u003ccode\u003eArray.fromAsync\u003c/code\u003e in \u003ccode\u003earray-callback-return\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20457\"\u003e#20457\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/290c594bb50c439fb71bc75521ee5360daa8c222\"\u003e\u003ccode\u003e290c594\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eself\u003c/code\u003e to \u003ccode\u003eno-implied-eval\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20468\"\u003e#20468\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/43677de07ebd6e14bfac40a46ad749ba783c45f2\"\u003e\u003ccode\u003e43677de\u003c/code\u003e\u003c/a\u003e feat: fix handling of function and class expression names in \u003ccode\u003eno-shadow\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20432\"\u003e#20432\u003c/a\u003e) (Milos Djermanovic)\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/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f3fbc2f60cbe2c718364feb8c3fc0452c0df3c56\"\u003e\u003ccode\u003ef3fbc2f\u003c/code\u003e\u003c/a\u003e chore: set \u003ccode\u003e@eslint/js\u003c/code\u003e version to 10.0.0 to skip releasing it (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20466\"\u003e#20466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b4b3127f8542c599ce2dea804b6582ebc40c993d\"\u003e\u003ccode\u003eb4b3127\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0b14059491d830a49b3577931f4f68fbcfce6be5\"\u003e\u003ccode\u003e0b14059\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1e2cad5f6fa47ed6ed89d2a29798dda926d50990\"\u003e\u003ccode\u003e1e2cad5\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v10.0.1/packages/js\"\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.62.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.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\u003cbr /\u003e\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\u003cbr /\u003e\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-page#page-screenshot\"\u003epage.screenshot()\u003c/a\u003e and [locator.screenshot() (https://playwright.dev/docs/api/class-locator#locator-screenshot) also accept \u003ccode\u003ewebp\u003c/code\u003e as a \u003ccode\u003etype\u003c/code\u003e, where quality \u003ccode\u003e100\u003c/code\u003e (the default) is lossless and lower values use lossy compression.\u003c/p\u003e\n\u003ch2\u003e🧩 Custom test filtering with Reporter.preprocess()\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-reporter#reporter-preprocess\"\u003ereporter.preprocess()\u003c/a\u003e hook runs after the configuration is resolved and before \u003ca href=\"https://playwright.dev/docs/api/class-reporter#reporter-on-begin\"\u003ereporter.onBegin()\u003c/a\u003e, letting a reporter mark individual tests as skipped, excluded, fixed, or failing through a \u003ca href=\"https://playwright.dev/docs/api/class-testrun\"\u003eTestRun\u003c/a\u003e object:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/2934858481d267df729eecb206ce45d497958015\"\u003e\u003ccode\u003e2934858\u003c/code\u003e\u003c/a\u003e fix: correct pending navigation log spacing (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41949\"\u003e#41949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4b0cc996cc7b9d5b087214e8514d6b85abb03f91\"\u003e\u003ccode\u003e4b0cc99\u003c/code\u003e\u003c/a\u003e fix(test): unflake screencast backpressure test on slow macOS runner (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41951\"\u003e#41951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/bbbae6dce735d9751ff7b879555b7a0a64078266\"\u003e\u003ccode\u003ebbbae6d\u003c/code\u003e\u003c/a\u003e test: fixme WebSocket locale test in Chromium 150 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41944\"\u003e#41944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/15c4f55879e49159e766fe1aa3dd9f9d87ba5fc1\"\u003e\u003ccode\u003e15c4f55\u003c/code\u003e\u003c/a\u003e fix(mcp): identify downloads explicitly (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41933\"\u003e#41933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f5fa967ff581f4263e2b1eec60d887b8c412fd52\"\u003e\u003ccode\u003ef5fa967\u003c/code\u003e\u003c/a\u003e fix(network): request.postData() returns null for empty string body override ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0edafe4baab7fd20122939d3cfe1acabd8ed84a9\"\u003e\u003ccode\u003e0edafe4\u003c/code\u003e\u003c/a\u003e fix(mcp): launch the Chrome profile that has the extension installed (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41939\"\u003e#41939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/244a1ffdd8746b1418b4eedb95ff72687115ddb4\"\u003e\u003ccode\u003e244a1ff\u003c/code\u003e\u003c/a\u003e feat(firefox): roll to r1538 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41938\"\u003e#41938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.59.1...v1.62.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 20.19.40 to 26.1.2\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/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 9.39.4 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v9.39.4...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-prettier` from 9.1.2 to 10.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/eslint-config-prettier/releases\"\u003eeslint-config-prettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.1.8\u003c/h2\u003e\n\u003cp\u003erepublish latest version\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/332\"\u003e#332\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/60fef02574467d31d10ff47ecb567d378483c9d4\"\u003e\u003ccode\u003e60fef02\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - chore: add \u003ccode\u003efunding\u003c/code\u003e field into \u003ccode\u003epackage.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.4...v10.1.5\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.4...v10.1.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/328\"\u003e#328\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/94b47999e7eb13b703835729331376cef598b850\"\u003e\u003ccode\u003e94b4799\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/silvenon\"\u003e\u003ccode\u003e@​silvenon\u003c/code\u003e\u003c/a\u003e! - fix(cli): do not crash on no rules configured\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.3...v10.1.4\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.3...v10.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003e#325\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/4e95a1d50073f1a24f004239ad6e1a4ffa8476df\"\u003e\u003ccode\u003e4e95a1d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e! - fix: this package is \u003ccode\u003ecommonjs\u003c/code\u003e, align its types correctly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003eprettier/eslint-config-prettier#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.3\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/a8768bfe54a91d08f0cef8705f91de2883436bb0\"\u003e\u003ccode\u003ea8768bf\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e! - chore(package): add homepage for some 3rd-party registry - see \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e for more details\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.1\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/prettier/eslint-config-prettier/pull/309\"\u003e#309\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/eb56a5e09964e49045bccde3c616275eb0a0902d\"\u003e\u003ccode\u003eeb56a5e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - fix: separate the \u003ccode\u003e/flat\u003c/code\u003e entry for compatibility\u003c/p\u003e\n\u003cp\u003eFor flat config users, the previous \u003ccode\u003e\u0026quot;eslint-config-prettier\u0026quot;\u003c/code\u003e entry still works, but \u003ccode\u003e\u0026quot;eslint-config-prettier/flat\u0026quot;\u003c/code\u003e adds a new \u003ccode\u003ename\u003c/code\u003e property for \u003ca href=\"https://eslint.org/blog/2024/04/eslint-config-inspector/\"\u003econfig-inspector\u003c/a\u003e, we just can't add it for the default entry for compatibility.\u003c/p\u003e\n\u003cp\u003eSee also \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/issues/308\"\u003eprettier/eslint-config-prettier#308\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003e// before\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier\u0026quot;;\n\u003cp\u003e// after\u003cbr /\u003e\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier/flat\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/prettier/eslint-config-prettier/blob/main/CHANGELOG.md\"\u003eeslint-config-prettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eeslint-config-prettier\u003c/h1\u003e\n\u003ch2\u003e10.1.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/332\"\u003e#332\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/60fef02574467d31d10ff47ecb567d378483c9d4\"\u003e\u003ccode\u003e60fef02\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - chore: add \u003ccode\u003efunding\u003c/code\u003e field into \u003ccode\u003epackage.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/328\"\u003e#328\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/94b47999e7eb13b703835729331376cef598b850\"\u003e\u003ccode\u003e94b4799\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/silvenon\"\u003e\u003ccode\u003e@​silvenon\u003c/code\u003e\u003c/a\u003e! - fix(cli): do not crash on no rules configured\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003e#325\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/4e95a1d50073f1a24f004239ad6e1a4ffa8476df\"\u003e\u003ccode\u003e4e95a1d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e! - fix: this package is \u003ccode\u003ecommonjs\u003c/code\u003e, align its types correctly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/a8768bfe54a91d08f0cef8705f91de2883436bb0\"\u003e\u003ccode\u003ea8768bf\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e! - chore(package): add homepage for some 3rd-party registry - see \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e for more details\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.1\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/prettier/eslint-config-prettier/pull/309\"\u003e#309\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/eb56a5e09964e49045bccde3c616275eb0a0902d\"\u003e\u003ccode\u003eeb56a5e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - fix: separate the \u003ccode\u003e/flat\u003c/code\u003e entry for compatibility\u003c/p\u003e\n\u003cp\u003eFor flat config users, the previous \u003ccode\u003e\u0026quot;eslint-config-prettier\u0026quot;\u003c/code\u003e entry still works, but \u003ccode\u003e\u0026quot;eslint-config-prettier/flat\u0026quot;\u003c/code\u003e adds a new \u003ccode\u003ename\u003c/code\u003e property for \u003ca href=\"https://eslint.org/blog/2024/04/eslint-config-inspector/\"\u003econfig-inspector\u003c/a\u003e, we just can't add it for the default entry for compatibility.\u003c/p\u003e\n\u003cp\u003eSee also \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/issues/308\"\u003eprettier/eslint-config-prettier#308\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003e// before\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier\u0026quot;;\n\u003cp\u003e// after\u003cbr /\u003e\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier/flat\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/306\"\u003e#306\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/56e2e3466391d0fdfc200e42130309c687aaab53\"\u003e\u003ccode\u003e56e2e34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - feat: migrate to exports field\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\u003eSee full diff in \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commits/v10.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.3 to 3.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003eprettier/prettier#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eimport defer\u003c/code\u003e in \u003ccode\u003etypescript\u003c/code\u003e parser (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003eprettier/prettier#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003eprettier/prettier#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a new official plugin \u003ca href=\"https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku\"\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e 🚀\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003eprettier/prettier#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003eprettier/prettier#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.5\u003c/h2\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.5/CHANGELOG.md#395\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAngular: Format \u003ccode\u003e@content(name)\u003c/code\u003e -\u0026gt; \u003ccode\u003e@content (name)\u003c/code\u003e to align with other block syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19499\"\u003e#19499\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix unexpected removal of characters in liquid syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19489\"\u003eprettier/prettier#19489\u003c/a\u003e by \u003ca href=\"https://github.com/seiyab\"\u003e\u003ccode\u003e@​seiyab\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeScript: Allow decorators to be used with declare on class fields (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19492\"\u003eprettier/prettier#19492\u003c/a\u003e by \u003ca href=\"https://github.com/evoactivity\"\u003e\u003ccode\u003e@​evoactivity\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Fix ignored file has been cached incorrectly (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19483\"\u003e#19483\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.5...3.9.0\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://prettier.io/blog/2026/06/27/3.9.0\"\u003ePrettier 3.9: Major parser upgrades and Formatting improvements\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Flow variance annotation print (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19022\"\u003e#19022\u003c/a\u003e by \u003ca href=\"https://github.com/marcoww6\"\u003e\u003ccode\u003e@​marcoww6\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix blank lines between list items and nested sub-lists being removed in Markdown/MDX (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/17746\"\u003eprettier/prettier#17746\u003c/a\u003e by \u003ca href=\"https://github.com/byplayer\"\u003e\u003ccode\u003e@​byplayer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.4/CHANGELOG.md#384\"\u003eChangelog\u003c/a\u003e\u003c/p\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/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.9.6\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.5...3.9.6\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Preserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003e#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\ninterface Container {\n  \u0026quot;new\u0026quot;(id: string): number;\n}\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\nnew(id: string): number;\u003cbr /\u003e\n}\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\n\u0026quot;new\u0026quot;(id: string): number;\u003cbr /\u003e\n}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Support \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003e#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003e#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\nimport defer * as foo from \u0026quot;foo\u0026quot;;\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\nimport * as foo from \u0026quot;foo\u0026quot;;\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\nimport defer * as foo from \u0026quot;foo\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eJavaScript: Added a new official plugin \u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003e#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003e#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e is powered by \u003ca href=\"https://yuku.fyi/\"\u003eYuku\u003c/a\u003e (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).\u003c/p\u003e\n\u003cp\u003eThis plugin includes two new parsers: \u003ccode\u003eyuku\u003c/code\u003e (JavaScript syntax) and \u003ccode\u003eyuku-ts\u003c/code\u003e (TypeScript syntax).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTo use this plugin:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInstall the plugin:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eyarn add --dev prettier @prettier/plugin-yuku\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\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/prettier/prettier/commit/8f0c95057cc91d5836409466cd9d9af3bb901e84\"\u003e\u003ccode\u003e8f0c950\u003c/code\u003e\u003c/a\u003e Release 3.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/e9107647d0497d8ff1cacbb0f970d4543df77c1c\"\u003e\u003ccode\u003ee910764\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ec3f1c7bd74495992bc6954323a1a7fc8368808e\"\u003e\u003ccode\u003eec3f1c7\u003c/code\u003e\u003c/a\u003e Update typescript-eslint to v8.65.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19675\"\u003e#19675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/73d2efc2c6cba6f579585c88ef171132d90834ec\"\u003e\u003ccode\u003e73d2efc\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.7.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19664\"\u003e#19664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dd5e24eabeab1f75ad573c79781e5fd408bcfad3\"\u003e\u003ccode\u003edd5e24e\u003c/code\u003e\u003c/a\u003e Preserve quotes for \u003ccode\u003eTSMethodSignature\u003c/code\u003e nodes named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19621\"\u003e#19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/c03ab4e71c23154d6b11537eee3c938f0d0f67d3\"\u003e\u003ccode\u003ec03ab4e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-unicorn to v72 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19633\"\u003e#19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b74dd53076c7208291a6b2e585c310844b41d35f\"\u003e\u003ccode\u003eb74dd53\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.5 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19654\"\u003e#19654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/f1b594ea1db1520c383d0e281d623551f671f824\"\u003e\u003ccode\u003ef1b594e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-simple-import-sort to v14 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19655\"\u003e#19655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/0d9dfb61530986373000dd107ea58ceebb79e233\"\u003e\u003ccode\u003e0d9dfb6\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.4 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19650\"\u003e#19650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/3bbb8159eb55575d4042653aa99f5f92a1416c19\"\u003e\u003ccode\u003e3bbb815\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etypescript-only\u003c/code\u003e directory (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19636\"\u003e#19636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/prettier/compare/3.8.3...3.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 5.6.3 to 7.0.2\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\u003ch2\u003eTypeScript 5.9\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\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\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/TypeScript/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~microsoft1es\"\u003emicrosoft1es\u003c/a\u003e, a new releaser for typescript since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.59.2 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/frisky1985/yuleASR-Configurator/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frisky1985%2FyuleASR-Configurator/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"},{"uuid":"4992360473","node_id":"PR_kwDOSI1do873IR8W","number":103,"state":"open","title":"chore(deps): Bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-27T21:10:29.000Z","updated_at":"2026-07-27T21:13:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"@capacitor/android","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/app","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/ionic-team/capacitor-plugins"},{"name":"@capacitor/cli","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/core","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/push-notifications","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/ionic-team/capacitor-plugins"},{"name":"@supabase/ssr","old_version":"0.12.0","new_version":"0.12.3","repository_url":"https://github.com/supabase/ssr"},{"name":"@tailwindcss/vite","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"i18next","old_version":"26.3.5","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"9.39.5","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.61.1","new_version":"1.62.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@vitejs/plugin-legacy","old_version":"8.1.0","new_version":"8.2.2","repository_url":"https://github.com/vitejs/vite"},{"name":"@vitejs/plugin-react","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"eslint","old_version":"9.39.4","new_version":"9.39.5","repository_url":"https://github.com/eslint/eslint"},{"name":"globals","old_version":"17.7.0","new_version":"17.8.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"typescript-eslint","old_version":"8.63.0","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.1.3","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@capacitor/android](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/app](https://github.com/ionic-team/capacitor-plugins) | `8.1.0` | `8.1.1` |\n| [@capacitor/cli](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/core](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/push-notifications](https://github.com/ionic-team/capacitor-plugins) | `8.1.1` | `8.1.2` |\n| [@supabase/ssr](https://github.com/supabase/ssr) | `0.12.0` | `0.12.3` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.2` | `4.3.3` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.5` | `26.3.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `9.39.5` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.0` |\n| [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/HEAD/packages/plugin-legacy) | `8.1.0` | `8.2.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.4` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `9.39.5` |\n| [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.63.0` | `8.65.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | `8.1.5` |\n\n\nUpdates `@capacitor/android` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/app` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/releases\"\u003e@​capacitor/app's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​capacitor/app\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.1.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/app@8.1.0...@capacitor/app@8.1.1\"\u003e8.1.1\u003c/a\u003e (2026-07-15)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​capacitor/app\u003c/code\u003e\u003c/p\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/ionic-team/capacitor-plugins/commit/0bfde98313dbd0312224c0a4896648b9fa6d57c3\"\u003e\u003ccode\u003e0bfde98\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/2be8127d580a847c832698169893079b3960b9f3\"\u003e\u003ccode\u003e2be8127\u003c/code\u003e\u003c/a\u003e docs(motion): add orientation listener example to README (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/060e41c5fbbcd602a218439f52e3fd7866b0c89b\"\u003e\u003ccode\u003e060e41c\u003c/code\u003e\u003c/a\u003e chore: add dist to root gitignore (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2560\"\u003e#2560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/5b652926feff2721204ca72792724aa50a11e988\"\u003e\u003ccode\u003e5b65292\u003c/code\u003e\u003c/a\u003e docs(browser): remove Web/iOS specific warning for close() (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/ee3475836b66f2f4ebf3522bf3dfdc6a2caab0f2\"\u003e\u003ccode\u003eee34758\u003c/code\u003e\u003c/a\u003e chore(android): format code for latest prettier (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2553\"\u003e#2553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/e84bf954b303bb6f93334c22ba19c0a606f44937\"\u003e\u003ccode\u003ee84bf95\u003c/code\u003e\u003c/a\u003e chore(status-bar): format Package.swift (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/0b4e735cfdeab7ff8bfaa526b9bf443b272f1903\"\u003e\u003ccode\u003e0b4e735\u003c/code\u003e\u003c/a\u003e docs(README): remove watch plugin and add local-llm (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2544\"\u003e#2544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/d32b1c6608e1caead377783b05503256e1ee5509\"\u003e\u003ccode\u003ed32b1c6\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2536\"\u003e#2536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/265ca0b1b5294121c35f3e6a3407a2570ecea8fb\"\u003e\u003ccode\u003e265ca0b\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2535\"\u003e#2535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/63c874c25367d20d68d0d1cc44427ba49b1af79b\"\u003e\u003ccode\u003e63c874c\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/app@8.1.0...@capacitor/app@8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/cli` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/core` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/push-notifications` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/releases\"\u003e@​capacitor/push-notifications's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​capacitor/push-notifications\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/push-notifications@8.1.1...@capacitor/push-notifications@8.1.2\"\u003e8.1.2\u003c/a\u003e (2026-07-15)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​capacitor/push-notifications\u003c/code\u003e\u003c/p\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/ionic-team/capacitor-plugins/commit/0bfde98313dbd0312224c0a4896648b9fa6d57c3\"\u003e\u003ccode\u003e0bfde98\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/2be8127d580a847c832698169893079b3960b9f3\"\u003e\u003ccode\u003e2be8127\u003c/code\u003e\u003c/a\u003e docs(motion): add orientation listener example to README (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/060e41c5fbbcd602a218439f52e3fd7866b0c89b\"\u003e\u003ccode\u003e060e41c\u003c/code\u003e\u003c/a\u003e chore: add dist to root gitignore (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2560\"\u003e#2560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/5b652926feff2721204ca72792724aa50a11e988\"\u003e\u003ccode\u003e5b65292\u003c/code\u003e\u003c/a\u003e docs(browser): remove Web/iOS specific warning for close() (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/ee3475836b66f2f4ebf3522bf3dfdc6a2caab0f2\"\u003e\u003ccode\u003eee34758\u003c/code\u003e\u003c/a\u003e chore(android): format code for latest prettier (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2553\"\u003e#2553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/e84bf954b303bb6f93334c22ba19c0a606f44937\"\u003e\u003ccode\u003ee84bf95\u003c/code\u003e\u003c/a\u003e chore(status-bar): format Package.swift (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/0b4e735cfdeab7ff8bfaa526b9bf443b272f1903\"\u003e\u003ccode\u003e0b4e735\u003c/code\u003e\u003c/a\u003e docs(README): remove watch plugin and add local-llm (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2544\"\u003e#2544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/d32b1c6608e1caead377783b05503256e1ee5509\"\u003e\u003ccode\u003ed32b1c6\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2536\"\u003e#2536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/265ca0b1b5294121c35f3e6a3407a2570ecea8fb\"\u003e\u003ccode\u003e265ca0b\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2535\"\u003e#2535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/push-notifications@8.1.1...@capacitor/push-notifications@8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@supabase/ssr` from 0.12.0 to 0.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/ssr/releases\"\u003e@​supabase/ssr's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3\"\u003e0.12.3\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003ed3a8a98\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/256\"\u003e#256\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.3-rc.135\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(cookies): keep domain-scoped deletion in name-keyed cookie stores by \u003ca href=\"https://github.com/thribhuvan003\"\u003e\u003ccode\u003e@​thribhuvan003\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/258\"\u003esupabase/ssr#258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thribhuvan003\"\u003e\u003ccode\u003e@​thribhuvan003\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/258\"\u003esupabase/ssr#258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3-rc.135\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.2...v0.12.3-rc.135\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2\"\u003e0.12.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ealign parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003ee8fe1d5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/115\"\u003e#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.2-rc.133\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.5 by \u003ca href=\"https://github.com/supabase-libs-pr-manager\"\u003e\u003ccode\u003e@​supabase-libs-pr-manager\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/263\"\u003esupabase/ssr#263\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2-rc.132...v0.12.2-rc.133\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.2-rc.132...v0.12.2-rc.133\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.2-rc.132\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: align parseCookieHeader return type with getAll cookie method by \u003ca href=\"https://github.com/TheSeydiCharyyev\"\u003e\u003ccode\u003e@​TheSeydiCharyyev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/239\"\u003esupabase/ssr#239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheSeydiCharyyev\"\u003e\u003ccode\u003e@​TheSeydiCharyyev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/239\"\u003esupabase/ssr#239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2-rc.132\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.1...v0.12.2-rc.132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.1\"\u003e0.12.1\u003c/a\u003e (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e035eabe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.1-rc.130\u003c/h2\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/supabase/ssr/blob/main/CHANGELOG.md\"\u003e@​supabase/ssr's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3\"\u003e0.12.3\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003ed3a8a98\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/256\"\u003e#256\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2\"\u003e0.12.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ealign parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003ee8fe1d5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/115\"\u003e#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.1\"\u003e0.12.1\u003c/a\u003e (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e035eabe\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/supabase/ssr/commit/dd2b20b97c8dac4f52e3dd84fed49a66db3fbdd8\"\u003e\u003ccode\u003edd2b20b\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.3 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003e\u003ccode\u003ed3a8a98\u003c/code\u003e\u003c/a\u003e fix(cookies): keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/bd7c8c8b5e64c8438ae6b9a1887528bacd4c05a4\"\u003e\u003ccode\u003ebd7c8c8\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.2 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/21e185ac2fe2504a12dcfdfd307e6ee5571dd56b\"\u003e\u003ccode\u003e21e185a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.5 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003e\u003ccode\u003ee8fe1d5\u003c/code\u003e\u003c/a\u003e fix: align parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/d06ca2112890cc520c3448bbd9a73c467d81e504\"\u003e\u003ccode\u003ed06ca21\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.1 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/1c175c1d2de2688a4c63f3b1d148fa0b957a9bf4\"\u003e\u003ccode\u003e1c175c1\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.3 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/7e1c519cc134fb04a71c79c31a7fe29af1e362f7\"\u003e\u003ccode\u003e7e1c519\u003c/code\u003e\u003c/a\u003e docs: align getSession/getUser/getClaims guidance with docs (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/509fc8e5532e9de19afbb35df69bb54bafd3341a\"\u003e\u003ccode\u003e509fc8e\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.2 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e\u003ccode\u003e035eabe\u003c/code\u003e\u003c/a\u003e fix(cookies): deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@supabase/supabase-js` from 2.110.1 to 2.110.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-js/releases\"\u003e@​supabase/supabase-js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.110.9\u003c/h2\u003e\n\u003ch2\u003e2.110.9 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e downgrade stale refresh token console noise (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e preserve presence refs (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e override sharp to \u0026gt;=0.35.0 to clear libvips advisory (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e populate symbols in sdk-compliance so capabilities are verifiable (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e bump postcss, babel, next to clear audit advisories (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.3\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.3 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e preserve presence refs (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.2\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.2 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e downgrade stale refresh token console noise (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e bump postcss, babel, next to clear audit advisories (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.1\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.1 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only, there were no code changes.\u003c/p\u003e\n\u003ch2\u003ev2.110.9-canary.0\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.0 (2026-07-22)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\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/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md\"\u003e@​supabase/supabase-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.110.9 (2026-07-27)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e2.110.8 (2026-07-21)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e skip Node warning in Deno (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.7 (2026-07-16)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e trigger set auth on INITIAL_SESSION event (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2531\"\u003e#2531\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilipe Cabaço \u003ca href=\"https://github.com/filipecabaco\"\u003e\u003ccode\u003e@​filipecabaco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.6 (2026-07-15)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e warn instead of throw for unrecognized sb_ API key subtypes (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2526\"\u003e#2526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.5 (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e avoid edge runtime warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2522\"\u003e#2522\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.4 (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e stop sending API key in Authorization header for function calls (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2511\"\u003e#2511\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/supabase/supabase-js/commit/fc2e61ebf411a85dc6ecb8c3341cc61cc5a67919\"\u003e\u003ccode\u003efc2e61e\u003c/code\u003e\u003c/a\u003e chore(repo): bump postcss override and fix playwright 1.62 tsconfig failure (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/22050de60bb075848d9479704d927c0491c89d12\"\u003e\u003ccode\u003e22050de\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.8 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2546\"\u003e#2546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/01dbb53a050c477e17beebb882d0d371384344c7\"\u003e\u003ccode\u003e01dbb53\u003c/code\u003e\u003c/a\u003e fix(supabase): skip Node warning in Deno (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/150b00cd11dbe0268c9c911d48959bd7356acc87\"\u003e\u003ccode\u003e150b00c\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.7 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2533\"\u003e#2533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/130fa11ac61dbed695f75ea8fb88a796e15db985\"\u003e\u003ccode\u003e130fa11\u003c/code\u003e\u003c/a\u003e fix(realtime): trigger set auth on INITIAL_SESSION event (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2531\"\u003e#2531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c90b1cdec7fecaaf0f959d22e7b40f98aa06ec6b\"\u003e\u003ccode\u003ec90b1cd\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.6 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2527\"\u003e#2527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c23e1ab3834d039d6df6417f72636910359a26c8\"\u003e\u003ccode\u003ec23e1ab\u003c/code\u003e\u003c/a\u003e fix(supabase): warn instead of throw for unrecognized sb_ API key subtypes (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/8af3c3a2abedcc6e2408e7ef1e907db108e23afe\"\u003e\u003ccode\u003e8af3c3a\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.5 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2524\"\u003e#2524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/25da0976e9f01c25c36b6123050f5450ff49e012\"\u003e\u003ccode\u003e25da097\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.4 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2523\"\u003e#2523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/dafa7f536f1cb99f2df5795a088e8c5449c45927\"\u003e\u003ccode\u003edafa7f5\u003c/code\u003e\u003c/a\u003e fix(supabase): avoid edge runtime warning (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2522\"\u003e#2522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-js/commits/v2.110.9/packages/core/supabase-js\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.5 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.5...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react` from 19.2.7 to 19.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react/react/releases\"\u003ereact's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e19.2.8 (July 21st, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements when decoding\n(\u003ca href=\"https://redirect.github.com/facebook/react/pull/37087\"\u003e#37087\u003c/a\u003e by \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\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/react/react/commit/1dd4ecbdabf826f527fc9a58c05ea70375b7d170\"\u003e\u003ccode\u003e1dd4ecb\u003c/code\u003e\u003c/a\u003e [FlightReply] Performance improvements when decoding (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/37087\"\u003e#37087\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react/react/commit/b0d2fdb78bdfae075a7fa02ddcebbf25f90952c2\"\u003e\u003ccode\u003eb0d2fdb\u003c/code\u003e\u003c/a\u003e [19.2.x] Update required references to GitHub repo (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/36753\"\u003e#36753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.2.8/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-dom` from 19.2.7 to 19.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react/react/releases\"\u003ereact-dom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e19.2.8 (July 21st, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements when decoding\n(\u003ca href=\"https://redirect.github.com/facebook/react/pull/37087\"\u003e#37087\u003c/a\u003e by \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\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/react/react/commit/1dd4ecbdabf826f527fc9a58c05ea70375b7d170\"\u003e\u003ccode\u003e1dd4ecb\u003c/code\u003e\u003c/a\u003e [FlightReply] Performance improvements when decoding (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/37087\"\u003e#37087\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react/react/commit/b0d2fdb78bdfae075a7fa02ddcebbf25f90952c2\"\u003e\u003ccode\u003eb0d2fdb\u003c/code\u003e\u003c/a\u003e [19.2.x] Update required references to GitHub repo (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/36753\"\u003e#36753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.2.8/packages/react-dom\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.8 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v17.0.8...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tailwindcss` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003etailwindcss's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003etailwindcss's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/e48c5e80473c25fe5a27fe267fbaf4f6512424a3\"\u003e\u003ccode\u003ee48c5e8\u003c/code\u003e\u003c/a\u003e Fix weird character rendering on Windows with Japanese locale (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/35a3e9c5159bea77af0d48f0c8849279211cc7e9\"\u003e\u003ccode\u003e35a3e9c\u003c/code\u003e\u003c/a\u003e Always produce \u003ccode\u003e\\\u0026lt;length\u0026gt;\u003c/code\u003e value when optimizing \u003ccode\u003e--spacing(0)\u003c/code\u003e (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/4af47fbe942245fd05ad8cd4776c2dbd27237bee\"\u003e\u003ccode\u003e4af47fb\u003c/code\u003e\u003c/a\u003e Fix hues in achromatic theme colors to be \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5835691d210b1c530160c844a562c36fa5fcbdb3\"\u003e\u003ccode\u003e5835691\u003c/code\u003e\u003c/a\u003e Handle CSS nesting natively (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/67c745efde4c6b36879e812b4c3d9250f7e0b31e\"\u003e\u003ccode\u003e67c745e\u003c/code\u003e\u003c/a\u003e Fix bug in attribute selector parsing (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/2683903b86d695f9c2647a06eb58bd96ade1eaee\"\u003e\u003ccode\u003e2683903\u003c/code\u003e\u003c/a\u003e Support fractional opacity modifiers for named shadow sizes (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/04588b1e8f3dbc856d8a3fad97c460bee689dbf3\"\u003e\u003ccode\u003e04588b1\u003c/code\u003e\u003c/a\u003e Fix theme() in JS plugins returning unresolved object instead of DEFAULT valu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/b53fa096c92d830fc64b7cf69581496242583446\"\u003e\u003ccode\u003eb53fa09\u003c/code\u003e\u003c/a\u003e fix: exclude iframes from focus-visible auto outline in Preflight (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/ef79119d4e2b8b0f37710e736605bd0b3419afb7\"\u003e\u003ccode\u003eef79119\u003c/code\u003e\u003c/a\u003e Bump dependencies (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.4 to 9.39.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.39.5\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/253be16a79a4c78eec4e0eb461b574d60dbf6b11\"\u003e\u003ccode\u003e253be16\u003c/code\u003e\u003c/a\u003e fix: handle unavailable require cache (backport of \u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20812\"\u003e#20812\u003c/a\u003e to v9.x) (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21065\"\u003e#21065\u003c/a\u003e) (Eric)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/74930edd1ce0d246819edc72705101ec271da50b\"\u003e\u003ccode\u003e74930ed\u003c/code\u003e\u003c/a\u003e docs: switch build to Node.js 24 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20894\"\u003e#20894\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eaec8bb6b1ca4b36985ee0222c457d4730d47a20\"\u003e\u003ccode\u003eeaec8bb\u003c/code\u003e\u003c/a\u003e docs: Add ESLint v9.x EOL notice (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20828\"\u003e#20828\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/458205f7d7a4769f32bec006eecc45c6a71be16a\"\u003e\u003ccode\u003e458205f\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@eslint/eslintrc\u003c/code\u003e and \u003ccode\u003e@eslint/js\u003c/code\u003e for v9.39.5 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21077\"\u003e#21077\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/202117be549534715d687f988e17f29e1dcd0622\"\u003e\u003ccode\u003e202117b\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d9eb6edcc93c1319ff1d2bb9aeb6d7d47bd73a79\"\u003e\u003ccode\u003ed9eb6ed\u003c/code\u003e\u003c/a\u003e test: disable warning for \u003ccode\u003evm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21074\"\u003e#21074\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7b431a7b19c345b8db56040b1888a3b531c3e64c\"\u003e\u003ccode\u003e7b431a7\u003c/code\u003e\u003c/a\u003e chore: override \u003ccode\u003ere2\u003c/code\u003e dependency for \u003ccode\u003e@metascraper/helpers\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21068\"\u003e#21068\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/daf77911de33be163503c6568ccb159741f4b018\"\u003e\u003ccode\u003edaf7791\u003c/code\u003e\u003c/a\u003e chore: pin fflate@0.8.2 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20895\"\u003e#20895\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/daee8ba3082afbc94d3b69ddc129d4dc664716f2\"\u003e\u003ccode\u003edaee8ba\u003c/code\u003e\u003c/a\u003e ci: use pnpm in \u003ccode\u003eeslint-flat-config-utils\u003c/code\u003e type integration test (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20829\"\u003e#20829\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/116d4bec7c0ddaeaa75f92fb1271a4ab70d24ce3\"\u003e\u003ccode\u003e116d4be\u003c/code\u003e\u003c/a\u003e ci: unpin Node.js 25.x in CI (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20619\"\u003e#20619\u003c/a\u003e) (Copilot)\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/eslint/eslint/commit/202117be549534715d687f988e17f29e1dcd0622\"\u003e\u003ccode\u003e202117b\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v9.39.5/packages/js\"\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.61.1 to 1.62.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.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props,...\n\n_Description has been truncated_","html_url":"https://github.com/selimmujdeci/Car-launcher-pro/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/selimmujdeci%2FCar-launcher-pro/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"}],"issue_packages":[{"old_version":"26.3.0","new_version":"26.3.6","update_type":"patch","path":null,"pr_created_at":"2026-08-13T18:06:35.000Z","version_change":"26.3.0 → 26.3.6","issue":{"uuid":"5144405388","node_id":"PR_kwDOTW37is7-u5oc","number":14,"state":"open","title":"build(deps): bump the frontend-minor-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-13T18:06:35.000Z","updated_at":"2026-08-13T18:07:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"frontend-minor-patch","update_count":6,"packages":[{"name":"@faker-js/faker","old_version":"10.4.0","new_version":"10.5.0","repository_url":"https://github.com/faker-js/faker"},{"name":"axios","old_version":"1.16.1","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"i18next","old_version":"26.3.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"sonner","old_version":"2.0.7","new_version":"2.0.8","repository_url":"https://github.com/emilkowalski/sonner"},{"name":"globals","old_version":"17.6.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-minor-patch group with 6 updates in the /lightrag_webui directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@faker-js/faker](https://github.com/faker-js/faker) | `10.4.0` | `10.5.0` |\n| [axios](https://github.com/axios/axios) | `1.16.1` | `1.19.0` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.0` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [sonner](https://github.com/emilkowalski/sonner) | `2.0.7` | `2.0.8` |\n| [globals](https://github.com/sindresorhus/globals) | `17.6.0` | `17.9.0` |\n\n\nUpdates `@faker-js/faker` from 10.4.0 to 10.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-js/faker/releases\"\u003e@​faker-js/faker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix contribution git commands by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3770\"\u003efaker-js/faker#3770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: trusted publishing via OIDC token by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3743\"\u003efaker-js/faker#3743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add favicon by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/2853\"\u003efaker-js/faker#2853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update eslint (major) by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3753\"\u003efaker-js/faker#3753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: migrate to tsdown by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3558\"\u003efaker-js/faker#3558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update all non-major dependencies by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3776\"\u003efaker-js/faker#3776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3777\"\u003efaker-js/faker#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency typescript-eslint to v8.57.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3778\"\u003efaker-js/faker#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update vitest by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3779\"\u003efaker-js/faker#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency typescript-eslint to v8.58.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3780\"\u003efaker-js/faker#3780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update devdependencies by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3781\"\u003efaker-js/faker#3781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: instructions to solve v10 compatibility issues with jest by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3616\"\u003efaker-js/faker#3616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: update cypress config by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3782\"\u003efaker-js/faker#3782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): changed farsi phone locales to correct ones by \u003ca href=\"https://github.com/Javid-Izadfar\"\u003e\u003ccode\u003e@​Javid-Izadfar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3775\"\u003efaker-js/faker#3775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(location): add postal address generation by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3760\"\u003efaker-js/faker#3760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add sl_SI locale, location module by \u003ca href=\"https://github.com/ZigaVukcevicDev\"\u003e\u003ccode\u003e@​ZigaVukcevicDev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3652\"\u003efaker-js/faker#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): phone numbers for en_AU by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3788\"\u003efaker-js/faker#3788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(phone): mobile style for phone.number by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3583\"\u003efaker-js/faker#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): typo in de_CH last name by \u003ca href=\"https://github.com/rbuetzer\"\u003e\u003ccode\u003e@​rbuetzer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3799\"\u003efaker-js/faker#3799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): lock file maintenance by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3774\"\u003efaker-js/faker#3774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add Farsi airline module locale by \u003ca href=\"https://github.com/Javid-Izadfar\"\u003e\u003ccode\u003e@​Javid-Izadfar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3789\"\u003efaker-js/faker#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(date): add ability to provide year range for \u003ccode\u003epast\u003c/code\u003e and \u003ccode\u003efuture\u003c/code\u003e by \u003ca href=\"https://github.com/xDivisionByZerox\"\u003e\u003ccode\u003e@​xDivisionByZerox\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3783\"\u003efaker-js/faker#3783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add mn_MN_cyrl (Mongolian) locale by \u003ca href=\"https://github.com/btseee\"\u003e\u003ccode\u003e@​btseee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3796\"\u003efaker-js/faker#3796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: introduce FakerCore by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/2838\"\u003efaker-js/faker#2838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo in internet.mac parameter by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3801\"\u003efaker-js/faker#3801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: reformat person.bio by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3803\"\u003efaker-js/faker#3803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(food): correct fruit and vegetable locale data by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3800\"\u003efaker-js/faker#3800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): improved en_IE postal_address by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3797\"\u003efaker-js/faker#3797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): Add postal_address and improved secondary_address for es by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3798\"\u003efaker-js/faker#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(image): remove deprecated urlLoremFlickr from module overview by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3807\"\u003efaker-js/faker#3807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: link release checklist in release PR workflow by \u003ca href=\"https://github.com/hiSandog\"\u003e\u003ccode\u003e@​hiSandog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3802\"\u003efaker-js/faker#3802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): lock file maintenance by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3806\"\u003efaker-js/faker#3806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency sanitize-html to v2.17.3 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3814\"\u003efaker-js/faker#3814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(number): add distributor functions by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3375\"\u003efaker-js/faker#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(location): simplify locale access by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3809\"\u003efaker-js/faker#3809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(person): cleanup tests by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3804\"\u003efaker-js/faker#3804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: import types from the source file directly by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3805\"\u003efaker-js/faker#3805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(image): link to tracking issue by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3815\"\u003efaker-js/faker#3815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: render multiple \u003ca href=\"https://github.com/example\"\u003e\u003ccode\u003e@​example\u003c/code\u003e\u003c/a\u003e blocks as tabbed code groups by \u003ca href=\"https://github.com/Shinigami92\"\u003e\u003ccode\u003e@​Shinigami92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3817\"\u003efaker-js/faker#3817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): Add more realistic Greek address data by \u003ca href=\"https://github.com/matthewmayer\"\u003e\u003ccode\u003e@​matthewmayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3792\"\u003efaker-js/faker#3792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(finance): routingNumber now uses real FederalReserveRoutingSymbol from lookup table. by \u003ca href=\"https://github.com/woldaker\"\u003e\u003ccode\u003e@​woldaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3429\"\u003efaker-js/faker#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add color to cy by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3816\"\u003efaker-js/faker#3816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(locale): remove citation brackets from snake names by \u003ca href=\"https://github.com/AustralianRaven\"\u003e\u003ccode\u003e@​AustralianRaven\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3822\"\u003efaker-js/faker#3822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(helpers): ignore wrapper characters in fromRegExp by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3795\"\u003efaker-js/faker#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(core): expose core.locale as LocaleProxy by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3820\"\u003efaker-js/faker#3820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typos in jsdocs by \u003ca href=\"https://github.com/ST-DDT\"\u003e\u003ccode\u003e@​ST-DDT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3823\"\u003efaker-js/faker#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(locale): add Welsh (cy) sex definitions by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3824\"\u003efaker-js/faker#3824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: change link in GitHub PR template by \u003ca href=\"https://github.com/IestynGage\"\u003e\u003ccode\u003e@​IestynGage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-js/faker/pull/3826\"\u003efaker-js/faker#3826\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/faker-js/faker/blob/next/CHANGELOG.md\"\u003e@​faker-js/faker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-js/faker/compare/v10.4.0...v10.5.0\"\u003e10.5.0\u003c/a\u003e (2026-06-17)\u003c/h2\u003e\n\u003ch3\u003eNew Locales\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add color to cy (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3816\"\u003e#3816\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5a6379f28080bd57cf059e9a0adcbf16e6f3862f\"\u003e5a6379f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Farsi airline module locale (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3789\"\u003e#3789\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f4a1c3e51a26ec2ae5dc4e0b9218aadf06980eca\"\u003ef4a1c3e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add mn_MN_cyrl (Mongolian) locale (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3796\"\u003e#3796\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/d17c0f1fe2ea95666b668c1e87ef4a1505a19538\"\u003ed17c0f1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e Add more realistic Greek address data (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3792\"\u003e#3792\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6153eb7768fa6b7e07e9416c95d115baf3a9a09a\"\u003e6153eb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e Add postal_address and improved secondary_address for es (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3798\"\u003e#3798\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6c2a0abd3092c8afb2bca67544a16e85a13b6b61\"\u003e6c2a0ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add sl_SI locale, location module (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3652\"\u003e#3652\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/28d4f7cc2852abab8df61ec143e6d3e1ddb85ae2\"\u003e28d4f7c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) animal type definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3842\"\u003e#3842\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/50a5ec9477d8784bbac41f3c5bb1c013417cacec\"\u003e50a5ec9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) book format definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3846\"\u003e#3846\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3846\"\u003e#3846\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/2b32d6ef02a9c03e1b85769b7a566cc4f5521480\"\u003e2b32d6e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) building numbers definition (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3892\"\u003e#3892\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/4996a2b477bfe606628142f5c60f421033aa4e73\"\u003e4996a2b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) city name definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3884\"\u003e#3884\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/ac36c222c59552f7bbc1006acc8c7e666f0d861b\"\u003eac36c22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) continents definitions  (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3880\"\u003e#3880\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/03a1682727c873da386b926b81ccd2cf9e73ea2f\"\u003e03a1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) county definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3849\"\u003e#3849\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f51d28a3c68151fdab1113c6fe9e4fbeca1268e2\"\u003ef51d28a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) direction definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3840\"\u003e#3840\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/d862071c60696604ef64eb622a791f5bbee04ec1\"\u003ed862071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) internet domain suffix definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3865\"\u003e#3865\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3865\"\u003e#3865\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/fb2e2cbe3d0eb1939590e0d7736c2189f99fe81b\"\u003efb2e2cb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) phone number definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3878\"\u003e#3878\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/70994dbf77c9aea4edcf2dffbb46c777376a7814\"\u003e70994db\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) postal address definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3850\"\u003e#3850\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/e72fd7c0d76b3e2fbd7208a4653f2248608eb524\"\u003ee72fd7c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) postcode definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3851\"\u003e#3851\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/1afbd59cc14b29006dbdbc1c92e310f070c57ac8\"\u003e1afbd59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) sex definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3824\"\u003e#3824\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/6f29eb754848344dd5dcfe90600bfe221b6cc054\"\u003e6f29eb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) state definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3891\"\u003e#3891\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3891\"\u003e#3891\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/606d47c1c5a758190b4942339709921699a3b132\"\u003e606d47c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) street name definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3889\"\u003e#3889\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/143789efb3b3d1947d3239de314f660ee24b8f81\"\u003e143789e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e add Welsh (cy) vehicle fuel definitions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3845\"\u003e#3845\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/29c918a2beb09ac7dd1ed0fa4b0fa8c7ce51bc89\"\u003e29c918a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e extend tr person last names (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3839\"\u003e#3839\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/f4337712526cf07f6d601d5128eb36f74fd8a053\"\u003ef433771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e improved en_GB postcodes (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3864\"\u003e#3864\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/a4e503989ac0c26e06b2a7cade324e99343617ce\"\u003ea4e5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocale:\u003c/strong\u003e improved en_IE postal_address (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3797\"\u003e#3797\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/fb3ffd373b39998b3742bc092061ec098a4c93ef\"\u003efb3ffd3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd first standalone module functions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3818\"\u003e#3818\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5d4f5ded06d57dc4203e025055ed4143ebfadf0a\"\u003e5d4f5de\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e add ability to provide date range for \u003ccode\u003erecent\u003c/code\u003e and \u003ccode\u003esoon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3844\"\u003e#3844\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/0bc038d5ca3f884da89106a27fe0050def8921c8\"\u003e0bc038d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e add ability to provide year range for \u003ccode\u003epast\u003c/code\u003e and \u003ccode\u003efuture\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3783\"\u003e#3783\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/237e7dc34aafafeef68e667a0140d08a8bfa7fb2\"\u003e237e7dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efood:\u003c/strong\u003e expand plant-based dish and pattern variety (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3887\"\u003e#3887\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/5eaf729128b4343a595c36ee804c28325b21b9a4\"\u003e5eaf729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eintroduce FakerCore (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/2838\"\u003e#2838\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/68e15d7e33f709afa89a77a435c83e9e6257a704\"\u003e68e15d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elocation:\u003c/strong\u003e add postal address generation (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3760\"\u003e#3760\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/753bec682dfc5046a02fde18e2c141777afa2f53\"\u003e753bec6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enumber:\u003c/strong\u003e add distributor functions (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3375\"\u003e#3375\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/325e402dfd7c6d62f0e96ce3276ace5e984c975a\"\u003e325e402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ephone:\u003c/strong\u003e mobile style for phone.number (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3583\"\u003e#3583\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/cd5953b5bfd5ea9193f7d58f7544bb261cd31259\"\u003ecd5953b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edate:\u003c/strong\u003e incorrect date boundary in past and future (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3827\"\u003e#3827\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/0446411f6dc42973a4e7bf0a8cf2c57039146a25\"\u003e0446411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efinance:\u003c/strong\u003e routingNumber now uses real FederalReserveRoutingSymbol from lookup table. (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3429\"\u003e#3429\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/c53c1fefb63b70ff6c5c417e212c6902dc4fa665\"\u003ec53c1fe\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efood:\u003c/strong\u003e correct fruit and vegetable locale data (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3800\"\u003e#3800\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/30a812a52ec87553dc3c46b8ab465aa7c7aa8b46\"\u003e30a812a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehandle single-character fromRegExp patterns (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3877\"\u003e#3877\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/ec6cc3bbfdb2500cddd49062ee01674083f731f7\"\u003eec6cc3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ehelpers:\u003c/strong\u003e ignore wrapper characters in fromRegExp (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3795\"\u003e#3795\u003c/a\u003e) (\u003ca href=\"https://github.com/faker-js/faker/commit/9e2c0e391b436f56ff54ad89d02efa9982406389\"\u003e9e2c0e3\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/faker-js/faker/commit/5fb3b2d67c86aabe898d27d5a709b8aed8bead79\"\u003e\u003ccode\u003e5fb3b2d\u003c/code\u003e\u003c/a\u003e chore(release): 10.5.0 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3898\"\u003e#3898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/f89348f34af91a73ae9a9896d590a8fed1c2a0ca\"\u003e\u003ccode\u003ef89348f\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3861\"\u003e#3861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/e157511b6c80f9442c58cec5cbf7dfa445021320\"\u003e\u003ccode\u003ee157511\u003c/code\u003e\u003c/a\u003e chore(deps): pin dependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3896\"\u003e#3896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/77dbfae4e8372072daa696bc25609462ec35514f\"\u003e\u003ccode\u003e77dbfae\u003c/code\u003e\u003c/a\u003e chore(deps): update prettier to v3.8.4 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/123193a602eef19c00a692d767f07f447daf722a\"\u003e\u003ccode\u003e123193a\u003c/code\u003e\u003c/a\u003e chore(deps): update pnpm/action-setup action to v6 (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/8244a24affa7e63af32fd597e21bad74e2a03676\"\u003e\u003ccode\u003e8244a24\u003c/code\u003e\u003c/a\u003e chore(deps): update devdependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3871\"\u003e#3871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/68bc79a748eef02d1f69e1e2eb610abb61f49569\"\u003e\u003ccode\u003e68bc79a\u003c/code\u003e\u003c/a\u003e chore(deps): update eslint (major) (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3875\"\u003e#3875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/e43b21bfb3c5ad012d9fc25625f1bab8beba996f\"\u003e\u003ccode\u003ee43b21b\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3870\"\u003e#3870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/b6aca312d712adb4db1a2e1d6976594bf4e2a4e6\"\u003e\u003ccode\u003eb6aca31\u003c/code\u003e\u003c/a\u003e chore(deps): update vitest (\u003ca href=\"https://redirect.github.com/faker-js/faker/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-js/faker/commit/a7e8c4f2c8d419e2830394b60bbf3982e24d660c\"\u003e\u003ccode\u003ea7e8c4f\u003c/code\u003e\u003c/a\u003e chore(deps): update mcr.microsoft.com/devcontainers/typescript-node:24 docker...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/faker-js/faker/compare/v10.4.0...v10.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.16.1 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 - July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rpaudel379\"\u003e\u003ccode\u003e@​Rpaudel379\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 — July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11008\"\u003e#11008\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\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/axios/axios/commit/311fcc5c8d989b7248f05d390bb83bfbfb009977\"\u003e\u003ccode\u003e311fcc5\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.19.0 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/cb4fd743abd1c595761c8eda25d1323fc62a3b93\"\u003e\u003ccode\u003ecb4fd74\u003c/code\u003e\u003c/a\u003e chore(deps): bump axios from 1.16.1 to 1.18.1 in /docs (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/004c93a9d2acd0561c498eff7bb4431c6bad78af\"\u003e\u003ccode\u003e004c93a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 in the github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/122edde91b1183572f4ba399b5b6bc4e3b989718\"\u003e\u003ccode\u003e122edde\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development_dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c44f8d0a910df99486da9175584b99f56a94a73b\"\u003e\u003ccode\u003ec44f8d0\u003c/code\u003e\u003c/a\u003e ci: use bundled npm for v1 publish (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/878bb29de570765b0d4c0970e30400d9ea9399f7\"\u003e\u003ccode\u003e878bb29\u003c/code\u003e\u003c/a\u003e fix(sandbox): resolve TypeError on constant variable path assignment (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/a092bae50d1884782151b2fcea12974d6da6e376\"\u003e\u003ccode\u003ea092bae\u003c/code\u003e\u003c/a\u003e fix(core): synchronous interceptors swallow errors and proceed with request (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3041b8fd1daf17404d1bad1f9d94026ea5ab400b\"\u003e\u003ccode\u003e3041b8f\u003c/code\u003e\u003c/a\u003e feat(HttpStatusCode): add missing 520 status code (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/58b16c88f0bddf1fadb321aed58ba3f49a90481b\"\u003e\u003ccode\u003e58b16c8\u003c/code\u003e\u003c/a\u003e refactor(helpers): extract duplicated setFormDataHeaders into a shared helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3077e62097726d22ba30f1cb847d7a07050e339a\"\u003e\u003ccode\u003e3077e62\u003c/code\u003e\u003c/a\u003e feat(types): Allow the Params property to be typed, instead of \u003ccode\u003eany\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.16.1...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.0 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.0...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.8 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay sil...\n\n_Description has been truncated_","html_url":"https://github.com/tranminhphuong2k7-spec/lightrag-phuongtran/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tranminhphuong2k7-spec%2Flightrag-phuongtran/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"26.3.1","new_version":"26.3.6","update_type":"patch","path":null,"pr_created_at":"2026-08-10T00:19:17.000Z","version_change":"26.3.1 → 26.3.6","issue":{"uuid":"5105453563","node_id":"PR_kwDOSFUArM78xQwN","number":69,"state":"closed","title":"Bump the npm-minor-and-patch group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-17T00:16:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-10T00:19:17.000Z","updated_at":"2026-08-17T00:16:53.000Z","time_to_close":604654,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":42,"packages":[{"name":"@playwright/test","old_version":"1.60.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"concurrently","old_version":"10.0.3","new_version":"10.0.4","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"eslint","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"fast-check","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/dubzzz/fast-check"},{"name":"msw","old_version":"2.14.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"orval","old_version":"8.17.0","new_version":"8.23.0","repository_url":"https://github.com/orval-labs/orval"},{"name":"prettier","old_version":"3.8.4","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"@nestjs/common","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/platform-express","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/swagger","old_version":"11.4.4","new_version":"11.4.6","repository_url":"https://github.com/nestjs/swagger"},{"name":"@prisma/adapter-pg","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"@prisma/client","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"express-rate-limit","old_version":"8.5.2","new_version":"8.6.2","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"helmet","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/helmetjs/helmet"},{"name":"pg","old_version":"8.21.0","new_version":"8.22.0","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@nestjs/testing","old_version":"11.1.26","new_version":"11.1.28","repository_url":"https://github.com/nestjs/nest"},{"name":"prisma","old_version":"7.8.0","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"ts-jest","old_version":"29.4.11","new_version":"29.4.12","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"tsx","old_version":"4.22.4","new_version":"4.23.9","repository_url":"https://github.com/privatenumber/tsx"},{"name":"@fontsource/gloock","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/jetbrains-mono","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/lora","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource/noto-serif-kr","old_version":"5.2.9","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@mantine/core","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/mantinedev/mantine"},{"name":"@mantine/form","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/mantinedev/mantine"},{"name":"@tanstack/react-query","old_version":"5.101.0","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"dexie","old_version":"4.4.3","new_version":"4.4.4","repository_url":"https://github.com/dexie/Dexie.js"},{"name":"i18next","old_version":"26.3.1","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.17.0","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@vitejs/plugin-react-swc","old_version":"4.3.1","new_version":"4.3.3","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"vite","old_version":"8.0.16","new_version":"8.2.1","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"globals","old_version":"17.6.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"typescript-eslint","old_version":"8.61.0","new_version":"8.66.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 41 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.60.0` | `1.62.1` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `10.0.3` | `10.0.4` |\n| [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.8.0` |\n| [fast-check](https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check) | `4.8.0` | `4.9.0` |\n| [msw](https://github.com/mswjs/msw) | `2.14.6` | `2.15.0` |\n| [orval](https://github.com/orval-labs/orval) | `8.17.0` | `8.23.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.4` | `3.9.6` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.1.26` | `11.1.28` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `11.1.26` | `11.1.28` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `11.1.26` | `11.1.28` |\n| [@nestjs/swagger](https://github.com/nestjs/swagger) | `11.4.4` | `11.4.6` |\n| [@prisma/adapter-pg](https://github.com/prisma/prisma/tree/HEAD/packages/adapter-pg) | `7.8.0` | `7.9.1` |\n| [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) | `7.8.0` | `7.9.1` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.5.2` | `8.6.2` |\n| [helmet](https://github.com/helmetjs/helmet) | `8.2.0` | `8.3.0` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.21.0` | `8.22.0` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `11.1.26` | `11.1.28` |\n| [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) | `7.8.0` | `7.9.1` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.11` | `29.4.12` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.22.4` | `4.23.9` |\n| [@fontsource/gloock](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/gloock) | `5.2.8` | `5.3.0` |\n| [@fontsource/jetbrains-mono](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/jetbrains-mono) | `5.2.8` | `5.3.0` |\n| [@fontsource/lora](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/lora) | `5.2.8` | `5.3.0` |\n| [@fontsource/noto-serif-kr](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/noto-serif-kr) | `5.2.9` | `5.3.0` |\n| [@mantine/core](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core) | `9.3.1` | `9.5.1` |\n| [@mantine/form](https://github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form) | `9.3.1` | `9.5.1` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.101.0` | `5.101.4` |\n| [dexie](https://github.com/dexie/Dexie.js) | `4.4.3` | `4.4.4` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.17.0` | `7.18.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) | `4.3.1` | `4.3.3` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.16` | `8.2.1` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.8` | `4.1.10` |\n| [globals](https://github.com/sindresorhus/globals) | `17.6.0` | `17.9.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.61.0` | `8.66.0` |\n\n\nUpdates `@playwright/test` from 1.60.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.60.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `concurrently` from 10.0.3 to 10.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-cli-tools/concurrently/releases\"\u003econcurrently's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: upgrade shell-quote to 1.9.0 by \u003ca href=\"https://github.com/Mayvis\"\u003e\u003ccode\u003e@​Mayvis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/599\"\u003eopen-cli-tools/concurrently#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid kill timeout exit delays by \u003ca href=\"https://github.com/rajanpanth\"\u003e\u003ccode\u003e@​rajanpanth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/601\"\u003eopen-cli-tools/concurrently#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Mayvis\"\u003e\u003ccode\u003e@​Mayvis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/599\"\u003eopen-cli-tools/concurrently#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rajanpanth\"\u003e\u003ccode\u003e@​rajanpanth\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/pull/601\"\u003eopen-cli-tools/concurrently#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\"\u003ehttps://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\u003c/a\u003e\u003c/p\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/open-cli-tools/concurrently/commit/2524b659e9419a271a29872e1cbfb8c983326d69\"\u003e\u003ccode\u003e2524b65\u003c/code\u003e\u003c/a\u003e 10.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/10801991448709049736003336e9ee13be1eb880\"\u003e\u003ccode\u003e1080199\u003c/code\u003e\u003c/a\u003e fix: avoid kill timeout exit delays (\u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/e6682112fbe2563a1dc7881a2eb2c77c4f7a1dd3\"\u003e\u003ccode\u003ee668211\u003c/code\u003e\u003c/a\u003e ci: publish to latest only on npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/163b60f8e4b35f4088fb557292cdf8f1275dcb51\"\u003e\u003ccode\u003e163b60f\u003c/code\u003e\u003c/a\u003e chore: sync \u003ccode\u003e@​types/node\u003c/code\u003e with current min version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/bcde2f55180dcaceaa36a241ddd106b75f516fb1\"\u003e\u003ccode\u003ebcde2f5\u003c/code\u003e\u003c/a\u003e chore: remove \u003ccode\u003e@​types/shell-quote\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-cli-tools/concurrently/commit/49f7eb467a05997b30d3330843a61531d821eaa9\"\u003e\u003ccode\u003e49f7eb4\u003c/code\u003e\u003c/a\u003e deps: upgrade shell-quote to 1.9.0 (\u003ca href=\"https://redirect.github.com/open-cli-tools/concurrently/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 10.5.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.5.0...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fast-check` from 4.8.0 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dubzzz/fast-check/releases\"\u003efast-check's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eShrinkable \u003ccode\u003eentityGraph\u003c/code\u003e and few performance chips\u003c/h2\u003e\n\u003cp\u003e[\u003ca href=\"https://github.com/dubzzz/fast-check/tree/v4.9.0\"\u003eCode\u003c/a\u003e][\u003ca href=\"https://github.com/dubzzz/fast-check/compare/v4.8.0...v4.9.0\"\u003eDiff\u003c/a\u003e]\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7008\"\u003ePR#7008\u003c/a\u003e) Towards shrinkable \u003ccode\u003eentityGraph\u003c/code\u003e thanks to \u003ccode\u003echainUntil\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7010\"\u003ePR#7010\u003c/a\u003e) Bug: Fix latent state-sharing bug in entityGraph\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7063\"\u003ePR#7063\u003c/a\u003e) Bug: Equiprobable alternatives in \u003ccode\u003estringMatching\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6973\"\u003ePR#6973\u003c/a\u003e) CI: Drop caches on push for build package flow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6971\"\u003ePR#6971\u003c/a\u003e) CI: Only mark fast-check's releases as latest\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6974\"\u003ePR#6974\u003c/a\u003e) CI: Drop pull_request_target flows\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6975\"\u003ePR#6975\u003c/a\u003e) CI: Drop discussion creation on release publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6976\"\u003ePR#6976\u003c/a\u003e) CI: Drop caches from publication steps\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6977\"\u003ePR#6977\u003c/a\u003e) CI: Revert \u0026quot;Drop caches from publication steps\u0026quot;\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6978\"\u003ePR#6978\u003c/a\u003e) CI: Make zizmor audit a required status check\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6991\"\u003ePR#6991\u003c/a\u003e) CI: Remove Claude Code workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6994\"\u003ePR#6994\u003c/a\u003e) CI: Replace \u003ccode\u003epnpm dlx\u003c/code\u003e with \u003ccode\u003epnpm exec\u003c/code\u003e for \u003ccode\u003epkg-pr-new\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6995\"\u003ePR#6995\u003c/a\u003e) CI: Inline zizmor ignores in workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6996\"\u003ePR#6996\u003c/a\u003e) CI: Move to \u003ccode\u003edevEngines.packageManager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7005\"\u003ePR#7005\u003c/a\u003e) CI: Update PULL_REQUEST_TEMPLATE.md\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7011\"\u003ePR#7011\u003c/a\u003e) CI: Drop OTP prompt from npm publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7013\"\u003ePR#7013\u003c/a\u003e) CI: Switch release jobs to npm stage publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7027\"\u003ePR#7027\u003c/a\u003e) CI: Run benchmarks against \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7037\"\u003ePR#7037\u003c/a\u003e) CI: Use comparison mode for \u003ccode\u003ebench\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7069\"\u003ePR#7069\u003c/a\u003e) CI: Run pnpm dedupe to deduplicate lockfile\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6959\"\u003ePR#6959\u003c/a\u003e) CI: Announce releases on Bluesky\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7105\"\u003ePR#7105\u003c/a\u003e) CI: Switch to actions/attest for attestations\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7117\"\u003ePR#7117\u003c/a\u003e) CI: Use pnpm version in changelog script\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7120\"\u003ePR#7120\u003c/a\u003e) CI: Allow unclean tree in changelog generation\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7125\"\u003ePR#7125\u003c/a\u003e) CI: Stage publish using \u003ccode\u003epnpm\u003c/code\u003e in publish jobs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7065\"\u003ePR#7065\u003c/a\u003e) Clean: Delete skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6983\"\u003ePR#6983\u003c/a\u003e) Doc: Tweak PR Template to hint AI agents into revealing themselves\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7092\"\u003ePR#7092\u003c/a\u003e) Doc: Add back skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7095\"\u003ePR#7095\u003c/a\u003e) Doc: Add release notes for fast-check 4.8.0\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7104\"\u003ePR#7104\u003c/a\u003e) Doc: Add makeeno as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7103\"\u003ePR#7103\u003c/a\u003e) Doc: Fix info box in docs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7108\"\u003ePR#7108\u003c/a\u003e) Doc: Add jneidel as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7035\"\u003ePR#7035\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.integer\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7046\"\u003ePR#7046\u003c/a\u003e) Performance: Faster fc.record on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7047\"\u003ePR#7047\u003c/a\u003e) Performance: Faster fc.dictionary on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7048\"\u003ePR#7048\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.webPath\u003c/code\u003e/\u003ccode\u003efc.webUrl\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7050\"\u003ePR#7050\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e for \u003ccode\u003e\\W\u003c/code\u003e \u003ccode\u003e\\D\u003c/code\u003e \u003ccode\u003e\\S\u003c/code\u003e \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7054\"\u003ePR#7054\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7049\"\u003ePR#7049\u003c/a\u003e) Performance: Drop nested \u003ccode\u003etuple\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e for \u003ccode\u003efc.record\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7045\"\u003ePR#7045\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.entityGraph\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7071\"\u003ePR#7071\u003c/a\u003e) Performance: Early exit on empty tuple in \u003ccode\u003efc.entityGraph\u003c/code\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/dubzzz/fast-check/blob/main/packages/fast-check/CHANGELOG.md\"\u003efast-check's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.9.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eShrinkable \u003ccode\u003eentityGraph\u003c/code\u003e and few performance chips\u003c/em\u003e\n[\u003ca href=\"https://github.com/dubzzz/fast-check/tree/v4.9.0\"\u003eCode\u003c/a\u003e][\u003ca href=\"https://github.com/dubzzz/fast-check/compare/v4.8.0...v4.9.0\"\u003eDiff\u003c/a\u003e]\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7008\"\u003ePR#7008\u003c/a\u003e) Towards shrinkable \u003ccode\u003eentityGraph\u003c/code\u003e thanks to \u003ccode\u003echainUntil\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7010\"\u003ePR#7010\u003c/a\u003e) Bug: Fix latent state-sharing bug in entityGraph\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7063\"\u003ePR#7063\u003c/a\u003e) Bug: Equiprobable alternatives in \u003ccode\u003estringMatching\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6973\"\u003ePR#6973\u003c/a\u003e) CI: Drop caches on push for build package flow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6971\"\u003ePR#6971\u003c/a\u003e) CI: Only mark fast-check's releases as latest\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6974\"\u003ePR#6974\u003c/a\u003e) CI: Drop pull_request_target flows\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6975\"\u003ePR#6975\u003c/a\u003e) CI: Drop discussion creation on release publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6976\"\u003ePR#6976\u003c/a\u003e) CI: Drop caches from publication steps\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6977\"\u003ePR#6977\u003c/a\u003e) CI: Revert \u0026quot;Drop caches from publication steps\u0026quot;\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6978\"\u003ePR#6978\u003c/a\u003e) CI: Make zizmor audit a required status check\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6991\"\u003ePR#6991\u003c/a\u003e) CI: Remove Claude Code workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6994\"\u003ePR#6994\u003c/a\u003e) CI: Replace \u003ccode\u003epnpm dlx\u003c/code\u003e with \u003ccode\u003epnpm exec\u003c/code\u003e for \u003ccode\u003epkg-pr-new\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6995\"\u003ePR#6995\u003c/a\u003e) CI: Inline zizmor ignores in workflow\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6996\"\u003ePR#6996\u003c/a\u003e) CI: Move to \u003ccode\u003edevEngines.packageManager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7005\"\u003ePR#7005\u003c/a\u003e) CI: Update PULL_REQUEST_TEMPLATE.md\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7011\"\u003ePR#7011\u003c/a\u003e) CI: Drop OTP prompt from npm publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7013\"\u003ePR#7013\u003c/a\u003e) CI: Switch release jobs to npm stage publish\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7027\"\u003ePR#7027\u003c/a\u003e) CI: Run benchmarks against \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7037\"\u003ePR#7037\u003c/a\u003e) CI: Use comparison mode for \u003ccode\u003ebench\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7069\"\u003ePR#7069\u003c/a\u003e) CI: Run pnpm dedupe to deduplicate lockfile\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6959\"\u003ePR#6959\u003c/a\u003e) CI: Announce releases on Bluesky\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7105\"\u003ePR#7105\u003c/a\u003e) CI: Switch to actions/attest for attestations\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7117\"\u003ePR#7117\u003c/a\u003e) CI: Use pnpm version in changelog script\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7120\"\u003ePR#7120\u003c/a\u003e) CI: Allow unclean tree in changelog generation\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7125\"\u003ePR#7125\u003c/a\u003e) CI: Stage publish using \u003ccode\u003epnpm\u003c/code\u003e in publish jobs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7065\"\u003ePR#7065\u003c/a\u003e) Clean: Delete skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/6983\"\u003ePR#6983\u003c/a\u003e) Doc: Tweak PR Template to hint AI agents into revealing themselves\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7092\"\u003ePR#7092\u003c/a\u003e) Doc: Add back skills directory\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7095\"\u003ePR#7095\u003c/a\u003e) Doc: Add release notes for fast-check 4.8.0\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7104\"\u003ePR#7104\u003c/a\u003e) Doc: Add makeeno as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7103\"\u003ePR#7103\u003c/a\u003e) Doc: Fix info box in docs\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7108\"\u003ePR#7108\u003c/a\u003e) Doc: Add jneidel as doc contributor\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7035\"\u003ePR#7035\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.integer\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7046\"\u003ePR#7046\u003c/a\u003e) Performance: Faster fc.record on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7047\"\u003ePR#7047\u003c/a\u003e) Performance: Faster fc.dictionary on generate\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7048\"\u003ePR#7048\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.webPath\u003c/code\u003e/\u003ccode\u003efc.webUrl\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7050\"\u003ePR#7050\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e for \u003ccode\u003e\\W\u003c/code\u003e \u003ccode\u003e\\D\u003c/code\u003e \u003ccode\u003e\\S\u003c/code\u003e \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7054\"\u003ePR#7054\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.stringMatching\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7049\"\u003ePR#7049\u003c/a\u003e) Performance: Drop nested \u003ccode\u003etuple\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\u003e for \u003ccode\u003efc.record\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/dubzzz/fast-check/pull/7045\"\u003ePR#7045\u003c/a\u003e) Performance: Faster \u003ccode\u003efc.entityGraph\u003c/code\u003e on \u003ccode\u003egenerate\u003c/code\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/dubzzz/fast-check/commit/0d3c2547dce556f72413607849377530d18ea283\"\u003e\u003ccode\u003e0d3c254\u003c/code\u003e\u003c/a\u003e 🔖 Update CHANGELOG.md for fast-check@4.9.0, \u003ccode\u003e@​fast-check/packaged\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.7.1 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/bd85efe4d7ded7b7e1783d259bfa7e8ce604d600\"\u003e\u003ccode\u003ebd85efe\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency \u003ccode\u003e@​types/node\u003c/code\u003e to ^24.13.3 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7118\"\u003e#7118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/a0596abe2bfeb59d2f80954627fcecc88554247f\"\u003e\u003ccode\u003ea0596ab\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency vitest to ^4.1.10 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7119\"\u003e#7119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/3c085da4881031bbccea4d38676af10c46b2a49a\"\u003e\u003ccode\u003e3c085da\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency prettier to v3.9.4 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7114\"\u003e#7114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/6538ff043922ba953f01327630ca2dbbd160c253\"\u003e\u003ccode\u003e6538ff0\u003c/code\u003e\u003c/a\u003e 👥 Add jneidel as doc contributor (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7108\"\u003e#7108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/8096ab024176d2e48a2c269759f90bcf82fa2914\"\u003e\u003ccode\u003e8096ab0\u003c/code\u003e\u003c/a\u003e 👥 Add makeeno as doc contributor (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7104\"\u003e#7104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/13fd4a64359869665828011c6226142c1f27bd3e\"\u003e\u003ccode\u003e13fd4a6\u003c/code\u003e\u003c/a\u003e ✏️ Typo in type \u003ccode\u003eEntityGraphContraints\u003c/code\u003e (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7088\"\u003e#7088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/36e70d2eb57b7e2ee2c791a87c40d9fc73bd0f8a\"\u003e\u003ccode\u003e36e70d2\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency \u003ccode\u003e@​microsoft/api-extractor\u003c/code\u003e to ^7.58.9 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7080\"\u003e#7080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/451ede0d4b8809a3b1292d28aee05d03c5e8d22d\"\u003e\u003ccode\u003e451ede0\u003c/code\u003e\u003c/a\u003e ⬆️ Update dependency vitest to ^4.1.8 (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7074\"\u003e#7074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dubzzz/fast-check/commit/949564d39744d61e7c0c51ccb226110d84fd8f68\"\u003e\u003ccode\u003e949564d\u003c/code\u003e\u003c/a\u003e ⚡️ Early exit on empty tuple in \u003ccode\u003efc.entityGraph\u003c/code\u003e (\u003ca href=\"https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dubzzz/fast-check/commits/v4.9.0/packages/fast-check\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msw` from 2.14.6 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mswjs/msw/releases\"\u003emsw's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0 (2026-07-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esse:\u003c/strong\u003e invoke \u003ccode\u003efinalize\u003c/code\u003e on response stream end (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2741\"\u003e#2741\u003c/a\u003e) (7fae0cc0954b20c739ae8e95a24eefc8a78710e8) \u003ca href=\"https://github.com/kettanaito\"\u003e\u003ccode\u003e@​kettanaito\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.14.7 (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esse:\u003c/strong\u003e proper logging for concurrent requests (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2762\"\u003e#2762\u003c/a\u003e) (5c0ae1c334a0cbe52638bd2949540372be3d46ba) \u003ca href=\"https://github.com/kettanaito\"\u003e\u003ccode\u003e@​kettanaito\u003c/code\u003e\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/mswjs/msw/commit/49d9d47f613b072f8d20e1a025feaee7c5382b2b\"\u003e\u003ccode\u003e49d9d47\u003c/code\u003e\u003c/a\u003e chore(release): v2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/ed885831bf90136044d305e1ae1035fb13491cec\"\u003e\u003ccode\u003eed88583\u003c/code\u003e\u003c/a\u003e test(finalize): use \u003ccode\u003eexpect.poll\u003c/code\u003e vs \u003ccode\u003ewaitFor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/7fae0cc0954b20c739ae8e95a24eefc8a78710e8\"\u003e\u003ccode\u003e7fae0cc\u003c/code\u003e\u003c/a\u003e feat(sse): invoke \u003ccode\u003efinalize\u003c/code\u003e on response stream end (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/db818ee6c943bcfad18f6ecff2bb0dc210c457ca\"\u003e\u003ccode\u003edb818ee\u003c/code\u003e\u003c/a\u003e chore(release): v2.14.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/418854a04a1424eef25a7722e1016feea433a5a9\"\u003e\u003ccode\u003e418854a\u003c/code\u003e\u003c/a\u003e chore: upgrade \u003ccode\u003e@ossjs/release\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/5c0ae1c334a0cbe52638bd2949540372be3d46ba\"\u003e\u003ccode\u003e5c0ae1c\u003c/code\u003e\u003c/a\u003e fix(sse): proper logging for concurrent requests (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/3016bda37757420b1c5adca9a3956f0dc8654456\"\u003e\u003ccode\u003e3016bda\u003c/code\u003e\u003c/a\u003e test: fix flaky \u003ccode\u003ews.clients.browser.test.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/0df6d6a06fd99bb7066ee12457966c69f329fd38\"\u003e\u003ccode\u003e0df6d6a\u003c/code\u003e\u003c/a\u003e test: fix flaky \u003ccode\u003ein-flight-request.test.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/ff6836b19cf250cfe0be721bfdf098a14c23506a\"\u003e\u003ccode\u003eff6836b\u003c/code\u003e\u003c/a\u003e chore: pin github actions to commit sha, update pnpm (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mswjs/msw/commit/8a19d5485adad2b8a816e04a937f4c76169cd5b9\"\u003e\u003ccode\u003e8a19d54\u003c/code\u003e\u003c/a\u003e chore: improve github actions security (\u003ca href=\"https://redirect.github.com/mswjs/msw/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mswjs/msw/compare/v2.14.6...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orval` from 8.17.0 to 8.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/orval-labs/orval/releases\"\u003eorval's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v8.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): Add conditional deployment to Cloudflare by \u003ca href=\"https://github.com/melloware\"\u003e\u003ccode\u003e@​melloware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3726\"\u003eorval-labs/orval#3726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3728\"\u003eorval-labs/orval#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(mock): emit msw handlers and faker factories as separate files in split modes by \u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3730\"\u003eorval-labs/orval#3730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(zod): infer type from \u003ccode\u003econst\u003c/code\u003e primitive values by \u003ca href=\"https://github.com/ire4ever1190\"\u003e\u003ccode\u003e@​ire4ever1190\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3733\"\u003eorval-labs/orval#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add exactOptional option for zod and effect generators by \u003ca href=\"https://github.com/MayCXC\"\u003e\u003ccode\u003e@​MayCXC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3739\"\u003eorval-labs/orval#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(zod): enforce integer validation by \u003ca href=\"https://github.com/federicobartoli\"\u003e\u003ccode\u003e@​federicobartoli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3737\"\u003eorval-labs/orval#3737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(orval): resolve tmp symlinks so mutator path test passes on macOS by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3742\"\u003eorval-labs/orval#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): dotted path parameter names generate malformed request by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3741\"\u003eorval-labs/orval#3741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(fetch): infer request options type from mutator by \u003ca href=\"https://github.com/kijk2869\"\u003e\u003ccode\u003e@​kijk2869\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3740\"\u003eorval-labs/orval#3740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(orval): bump js-yaml to 4.3.0 to fix DoS vulnerability by \u003ca href=\"https://github.com/ryosuke-endo-mf\"\u003e\u003ccode\u003e@​ryosuke-endo-mf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3744\"\u003eorval-labs/orval#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): resolve required keys through nested allOf $ref compositions by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3749\"\u003eorval-labs/orval#3749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): safely collect nested allOf properties by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3751\"\u003eorval-labs/orval#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): preserve required parent properties in allOf by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3755\"\u003eorval-labs/orval#3755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): don't delete the entire working directory when schemas has no path by \u003ca href=\"https://github.com/daugvinasr\"\u003e\u003ccode\u003e@​daugvinasr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3753\"\u003eorval-labs/orval#3753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): keep integer enum+const type values as strings by \u003ca href=\"https://github.com/Solaris-star\"\u003e\u003ccode\u003e@​Solaris-star\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3759\"\u003eorval-labs/orval#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): preserve bound-alias name through ref hop (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3746\"\u003e#3746\u003c/a\u003e) by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3760\"\u003eorval-labs/orval#3760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): override path parameters with operation parameters by \u003ca href=\"https://github.com/wadakatu\"\u003e\u003ccode\u003e@​wadakatu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3761\"\u003eorval-labs/orval#3761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(orval): keep generated barrels idempotent across formatter runs (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3756\"\u003e#3756\u003c/a\u003e) by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3762\"\u003eorval-labs/orval#3762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(core): add tags-operations and tags-operations-split output modes by \u003ca href=\"https://github.com/jakiestfu\"\u003e\u003ccode\u003e@​jakiestfu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3754\"\u003eorval-labs/orval#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v8.23.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3764\"\u003eorval-labs/orval#3764\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3730\"\u003eorval-labs/orval#3730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ire4ever1190\"\u003e\u003ccode\u003e@​ire4ever1190\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3733\"\u003eorval-labs/orval#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MayCXC\"\u003e\u003ccode\u003e@​MayCXC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3739\"\u003eorval-labs/orval#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/federicobartoli\"\u003e\u003ccode\u003e@​federicobartoli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3737\"\u003eorval-labs/orval#3737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kijk2869\"\u003e\u003ccode\u003e@​kijk2869\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3740\"\u003eorval-labs/orval#3740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryosuke-endo-mf\"\u003e\u003ccode\u003e@​ryosuke-endo-mf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3744\"\u003eorval-labs/orval#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Solaris-star\"\u003e\u003ccode\u003e@​Solaris-star\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3759\"\u003eorval-labs/orval#3759\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.22.0...v8.23.0\"\u003ehttps://github.com/orval-labs/orval/compare/v8.22.0...v8.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v8.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003cbr /\u003e\n\u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3723\"\u003eSecurity Fix\u003c/a\u003e is a breaking change that now requires you to configure if you want refs to be external and not traverse directories etc.    Please see the docs for how to use and override: \u003ca href=\"https://orval.dev/docs/reference/configuration/input#externalrefs\"\u003ehttps://orval.dev/docs/reference/configuration/input#externalrefs\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): skip Required\u003c!-- raw HTML omitted --\u003e for required keys missing from properties by \u003ca href=\"https://github.com/Hypenate\"\u003e\u003ccode\u003e@​Hypenate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3721\"\u003eorval-labs/orval#3721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(angular): send required nullable query params as empty string without a paramsSerializer by \u003ca href=\"https://github.com/the-ult\"\u003e\u003ccode\u003e@​the-ult\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3716\"\u003eorval-labs/orval#3716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(core): gate external $ref resolution behind explicit allow-list by \u003ca href=\"https://github.com/aqeelat\"\u003e\u003ccode\u003e@​aqeelat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3723\"\u003eorval-labs/orval#3723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v8.22.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/orval-labs/orval/pull/3725\"\u003eorval-labs/orval#3725\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.21.0...v8.22.0\"\u003ehttps://github.com/orval-labs/orval/compare/v8.21.0...v8.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v8.21.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/orval-labs/orval/commit/3a40c8d72a9b542f9e2cf6e3dee767fe942c57aa\"\u003e\u003ccode\u003e3a40c8d\u003c/code\u003e\u003c/a\u003e chore(release): bump version to v8.23.0 (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/28269d5e68ad45e9a0be3bd59d7fc31549151eef\"\u003e\u003ccode\u003e28269d5\u003c/code\u003e\u003c/a\u003e feat(core): add tags-operations and tags-operations-split output modes (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/84e2a58dd99338db84ab727f2d624473bfc9a1c0\"\u003e\u003ccode\u003e84e2a58\u003c/code\u003e\u003c/a\u003e fix(orval): keep generated barrels idempotent across formatter runs (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3756\"\u003e#3756\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/4812eb6d0ef8241d523de235a95d896c4101fcc5\"\u003e\u003ccode\u003e4812eb6\u003c/code\u003e\u003c/a\u003e fix(core): override path parameters with operation parameters (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3761\"\u003e#3761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/5bc1251d2d23956b822e7438bab0428180acc7ad\"\u003e\u003ccode\u003e5bc1251\u003c/code\u003e\u003c/a\u003e fix(core): preserve bound-alias name through ref hop (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3746\"\u003e#3746\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/e453daf6691580e483a4a1acf457fac021f39845\"\u003e\u003ccode\u003ee453daf\u003c/code\u003e\u003c/a\u003e fix(core): keep integer enum+const type values as strings (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3759\"\u003e#3759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/5b543dd2a9d5ce91186f581421363aff8d069153\"\u003e\u003ccode\u003e5b543dd\u003c/code\u003e\u003c/a\u003e fix(core): don't delete the entire working directory when schemas has no path...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/d15cd25fcc82998f7af11eefbc9829d0ed6d65d4\"\u003e\u003ccode\u003ed15cd25\u003c/code\u003e\u003c/a\u003e fix(core): preserve required parent properties in allOf (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/7879bc40665dbc85af00a94553f44916ced47df9\"\u003e\u003ccode\u003e7879bc4\u003c/code\u003e\u003c/a\u003e fix(core): safely collect nested allOf properties (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3751\"\u003e#3751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/orval-labs/orval/commit/b3b3e7915ccb3bdd3bbd37cccdab203074387972\"\u003e\u003ccode\u003eb3b3e79\u003c/code\u003e\u003c/a\u003e fix(core): resolve required keys through nested allOf $ref compositions (\u003ca href=\"https://redirect.github.com/orval-labs/orval/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/orval-labs/orval/compare/v8.17.0...v8.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.4 to 3.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003eprettier/prettier#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eimport defer\u003c/code\u003e in \u003ccode\u003etypescript\u003c/code\u003e parser (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003eprettier/prettier#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003eprettier/prettier#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a new official plugin \u003ca href=\"https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku\"\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e 🚀\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003eprettier/prettier#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003eprettier/prettier#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.5\u003c/h2\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.5/CHANGELOG.md#395\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAngular: Format \u003ccode\u003e@content(name)\u003c/code\u003e -\u0026gt; \u003ccode\u003e@content (name)\u003c/code\u003e to align with other block syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19499\"\u003e#19499\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix unexpected removal of characters in liquid syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19489\"\u003eprettier/prettier#19489\u003c/a\u003e by \u003ca href=\"https://github.com/seiyab\"\u003e\u003ccode\u003e@​seiyab\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeScript: Allow decorators to be used with declare on class fields (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19492\"\u003eprettier/prettier#19492\u003c/a\u003e by \u003ca href=\"https://github.com/evoactivity\"\u003e\u003ccode\u003e@​evoactivity\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Fix ignored file has been cached incorrectly (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19483\"\u003e#19483\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.5...3.9.0\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://prettier.io/blog/2026/06/27/3.9.0\"\u003ePrettier 3.9: Major parser upgrades and Formatting improvements\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Flow variance annotation print (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19022\"\u003e#19022\u003c/a\u003e by \u003ca href=\"https://github.com/marcoww6\"\u003e\u003ccode\u003e@​marcoww6\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385\"\u003eChangelog\u003c/a\u003e\u003c/p\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/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.9.6\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.5...3.9.6\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Preserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003e#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\ninterface Container {\n  \u0026quot;new\u0026quot;(id: string): number;\n}\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\nnew(id: string): number;\u003cbr /\u003e\n}\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\n\u0026quot;new\u0026quot;(id: string): number;\u003cbr /\u003e\n}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Support \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003e#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003e#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\nimport defer * as foo from \u0026quot;foo\u0026quot;;\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\nimport * as foo from \u0026quot;foo\u0026quot;;\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\nimport defer * as foo from \u0026quot;foo\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eJavaScript: Added a new official plugin \u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003e#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003e#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e is powered by \u003ca href=\"https://yuku.fyi/\"\u003eYuku\u003c/a\u003e (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).\u003c/p\u003e\n\u003cp\u003eThis plugin includes two new parsers: \u003ccode\u003eyuku\u003c/code\u003e (JavaScript syntax) and \u003ccode\u003eyuku-ts\u003c/code\u003e (TypeScript syntax).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTo use this plugin:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInstall the plugin:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eyarn add --dev prettier @prettier/plugin-yuku\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\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/prettier/prettier/commit/8f0c95057cc91d5836409466cd9d9af3bb901e84\"\u003e\u003ccode\u003e8f0c950\u003c/code\u003e\u003c/a\u003e Release 3.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/e9107647d0497d8ff1cacbb0f970d4543df77c1c\"\u003e\u003ccode\u003ee910764\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ec3f1c7bd74495992bc6954323a1a7fc8368808e\"\u003e\u003ccode\u003eec3f1c7\u003c/code\u003e\u003c/a\u003e Update typescript-eslint to v8.65.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19675\"\u003e#19675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/73d2efc2c6cba6f579585c88ef171132d90834ec\"\u003e\u003ccode\u003e73d2efc\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.7.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19664\"\u003e#19664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dd5e24eabeab1f75ad573c79781e5fd408bcfad3\"\u003e\u003ccode\u003edd5e24e\u003c/code\u003e\u003c/a\u003e Preserve quotes for \u003ccode\u003eTSMethodSignature\u003c/code\u003e nodes named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19621\"\u003e#19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/c03ab4e71c23154d6b11537eee3c938f0d0f67d3\"\u003e\u003ccode\u003ec03ab4e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-unicorn to v72 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19633\"\u003e#19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b74dd53076c7208291a6b2e585c310844b41d35f\"\u003e\u003ccode\u003eb74dd53\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.5 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19654\"\u003e#19654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/f1b594ea1db1520c383d0e281d623551f671f824\"\u003e\u003ccode\u003ef1b594e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-simple-import-sort to v14 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19655\"\u003e#19655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/0d9dfb61530986373000dd107ea58ceebb79e233\"\u003e\u003ccode\u003e0d9dfb6\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.4 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19650\"\u003e#19650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre...\n\n_Description has been truncated_","html_url":"https://github.com/djgfif/WorkArchive/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgfif%2FWorkArchive/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"}},{"old_version":"24.2.2","new_version":"26.3.6","update_type":"major","path":"/js","pr_created_at":"2026-08-09T04:51:10.000Z","version_change":"24.2.2 → 26.3.6","issue":{"uuid":"5100926627","node_id":"PR_kwDOTy5Isc78jnQi","number":17,"state":"open","title":"Bump i18next from 24.2.2 to 26.3.6 in /js","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-09T04:51:10.000Z","updated_at":"2026-08-09T04:51:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"24.2.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/js","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 24.2.2 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.2...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=24.2.2\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dd-benchmarking/keycloak__keycloak__deputydev-findings-v3__PR37038__20260809/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dd-benchmarking%2Fkeycloak__keycloak__deputydev-findings-v3__PR37038__20260809/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"25.5.2","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-07T20:39:50.000Z","version_change":"25.5.2 → 26.3.6","issue":{"uuid":"5093803656","node_id":"PR_kwDOTMQXVM78N3-I","number":12,"state":"open","title":"chore(deps): bump the frontend-deps group across 1 directory with 57 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T20:39:50.000Z","updated_at":"2026-08-07T20:39:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":57,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.7.1","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@lobehub/icons-static-svg","old_version":"1.73.0","new_version":"1.94.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.4","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-store","old_version":"2.4.0","new_version":"2.4.4","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 57 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.7.1` |\n| [@lobehub/icons-static-svg](https://github.com/lobehub/lobe-icons) | `1.73.0` | `1.94.0` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.4` | `1.2.11` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-store](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.4.4` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.7.0...v5.7.1\"\u003e5.7.1\u003c/a\u003e (2026-08-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e827f20b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.6.0...v5.7.0\"\u003e5.7.0\u003c/a\u003e (2026-08-02)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e4cfba18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.8...v5.6.0\"\u003e5.6.0\u003c/a\u003e (2026-08-01)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove all resovlers drops validation errors for special root field names (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003eb011a5f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.7...v5.5.8\"\u003e5.5.8\u003c/a\u003e (2026-08-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e2f28787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\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/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e\u003ccode\u003e827f20b\u003c/code\u003e\u003c/a\u003e fix: ata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e\u003ccode\u003e4cfba18\u003c/code\u003e\u003c/a\u003e feat: support vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/58d2e2da61395bfc6d44bddc2a1e4411bb521806\"\u003e\u003ccode\u003e58d2e2d\u003c/code\u003e\u003c/a\u003e remove dead image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003e\u003ccode\u003eb011a5f\u003c/code\u003e\u003c/a\u003e feat: improve all resovlers drops validation errors for special root field names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/5483a0335edcb61c9d4cc5b669d30314d366987e\"\u003e\u003ccode\u003e5483a03\u003c/code\u003e\u003c/a\u003e improve all resolvers (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e\u003ccode\u003e2f28787\u003c/code\u003e\u003c/a\u003e fix: Zod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons-static-svg` from 1.73.0 to 1.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lobehub/lobe-icons/releases\"\u003e@​lobehub/icons-static-svg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.93.0...@lobehub/icons-static-svg@1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-17\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb\"\u003ee7714cb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.92.0...@lobehub/icons-static-svg@1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-14\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/blob/master/CHANGELOG.md\"\u003e@​lobehub/icons-static-svg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.93.0...v1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-25\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/eeff5aa\"\u003eeeff5aa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/3ac1eea\"\u003e3ac1eea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.92.0...v1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-23\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9de6a04\"\u003e9de6a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/c22e36f\"\u003ec22e36f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/commit/fbd2d56e3f734e889f1373e71c8368cc4e60e0d7\"\u003e\u003ccode\u003efbd2d56\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9d041035dd2c5a149c60b87615a2fc86c66b5ef8\"\u003e\u003ccode\u003e9d04103\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb2d8fc6f7b379f6d1b28896c3b9d62f8b7\"\u003e\u003ccode\u003ee7714cb\u003c/code\u003e\u003c/a\u003e ✨ feat(auto): Auto build static icons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/d570ec828f532d036b8a1446bd695419ec3d0862\"\u003e\u003ccode\u003ed570ec8\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.14.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/debf214577941242844caae7e6498c32054408f6\"\u003e\u003ccode\u003edebf214\u003c/code\u003e\u003c/a\u003e ✨ feat(docs): migrate to lobedocs (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/918a629a17684ed8765993d346def1fbd457c514\"\u003e\u003ccode\u003e918a629\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-webp\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/49ea6caba8ca1fadd56e7bc918cddcdc1f05aae1\"\u003e\u003ccode\u003e49ea6ca\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/656685e1e7136a1e641c31f2f1f12b4573cf1890\"\u003e\u003ccode\u003e656685e\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/4e11561f81fd68808437618ce7b04aeb362258ee\"\u003e\u003ccode\u003e4e11561\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-avatar\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.13.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/32397804ed34cedc636c1fe3f3e2db7a1c3d4fb7\"\u003e\u003ccode\u003e3239780\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-rn\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.11.0 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.73.0...@lobehub/icons-static-svg@1.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~lobehubbot\"\u003elobehubbot\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;sel...\n\n_Description has been truncated_","html_url":"https://github.com/Simonaxi24/cc-switch-finbox/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simonaxi24%2Fcc-switch-finbox/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"25.10.10","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-07T19:43:23.000Z","version_change":"25.10.10 → 26.3.6","issue":{"uuid":"5093438340","node_id":"PR_kwDOTvLP0s78MtBV","number":31,"state":"open","title":"chore: bump i18next from 25.10.10 to 26.3.6","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T19:43:23.000Z","updated_at":"2026-08-07T19:47:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore","packages":[{"name":"i18next","old_version":"25.10.10","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 25.10.10 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v25.10.10...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=25.10.10\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/stormchaserog/blockwire/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormchaserog%2Fblockwire/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"}},{"old_version":"26.3.5","new_version":"26.3.6","update_type":"patch","path":null,"pr_created_at":"2026-08-07T17:40:33.000Z","version_change":"26.3.5 → 26.3.6","issue":{"uuid":"5092603270","node_id":"PR_kwDOTZYCu878KCGp","number":40,"state":"open","title":"chore(deps): bump the version-all group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T17:40:33.000Z","updated_at":"2026-08-07T17:40:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":36,"packages":[{"name":"@fontsource-variable/geist","old_version":"5.2.9","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource-variable/geist-mono","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@fontsource-variable/inter","old_version":"5.2.8","new_version":"5.3.0","repository_url":"https://github.com/fontsource/font-files"},{"name":"@heroui/react","old_version":"3.2.2","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.31.22","new_version":"1.31.25","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.101.2","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"axios","old_version":"1.18.1","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"framer-motion","old_version":"12.42.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"26.3.5","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-http-backend","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lightningcss-linux-x64-gnu","old_version":"1.32.0","new_version":"1.33.0","repository_url":"https://github.com/parcel-bundler/lightningcss"},{"name":"lucide-react","old_version":"1.23.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.398.6","new_version":"1.409.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"vite","old_version":"8.1.3","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"@playwright/test","old_version":"1.61.1","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/express","old_version":"8.2.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"26.1.1","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jsdom","old_version":"29.1.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"17.0.8","new_version":"17.3.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"prettier","old_version":"3.9.4","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 36 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@fontsource-variable/geist](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/geist) | `5.2.9` | `5.3.0` |\n| [@fontsource-variable/geist-mono](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/geist-mono) | `5.2.8` | `5.3.0` |\n| [@fontsource-variable/inter](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/inter) | `5.2.8` | `5.3.0` |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.2.2` | `3.2.3` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.31.22` | `1.31.25` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `8.2.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `8.2.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.2` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.101.2` | `5.101.4` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [axios](https://github.com/axios/axios) | `1.18.1` | `1.19.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.5` | `26.3.6` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `4.0.0` | `4.0.1` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.2.0` | `5.2.1` |\n| [lightningcss-linux-x64-gnu](https://github.com/parcel-bundler/lightningcss) | `1.32.0` | `1.33.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.23.0` | `1.28.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.398.6` | `1.409.5` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `8.2.0` | `8.3.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | `8.2.0` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `8.2.0` | `8.3.0` |\n| [@react-router/express](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-express) | `8.2.0` | `8.3.0` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` |\n| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.8` | `17.3.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.4` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.2` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n\n\nUpdates `@fontsource-variable/geist` from 5.2.9 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/geist\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@fontsource-variable/geist-mono` from 5.2.8 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/geist-mono\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@fontsource-variable/inter` from 5.2.8 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/inter\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@heroui/react` from 3.2.2 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.31.22 to 1.31.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.1.1 to 30.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/192\"\u003emicrolinkhq/react-json-view#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.101.7 to 1.102.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/193\"\u003emicrolinkhq/react-json-view#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.108.4 to 5.109.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/191\"\u003emicrolinkhq/react-json-view#191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.25 (2026-07-27)\u003c/h2\u003e\n\u003ch2\u003e1.31.24 (2026-07-24)\u003c/h2\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\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/microlinkhq/react-json-view/commit/ca343dc1158051f64556b713a63caac2f2ac2290\"\u003e\u003ccode\u003eca343dc\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/06435066ca789cd79d8a809804a5933dc3b7783a\"\u003e\u003ccode\u003e0643506\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.101.7 to 1.102.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0c1c80f0e6b7c38e1b6f438bd4ad8358b63a0e61\"\u003e\u003ccode\u003e0c1c80f\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump jsdom from 29.1.1 to 30.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/78b335c496e5364a8cf56bf683b60427f7385a70\"\u003e\u003ccode\u003e78b335c\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/1907a5076e247bacd9f4d1f1fc73b6a445117019\"\u003e\u003ccode\u003e1907a50\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.108.4 to 5.109.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 8.2.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 8.2.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.101.2 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\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/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\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/TanStack/query/commit/86bb8a6fb2c7f15c74ff50afba053d778e6edc23\"\u003e\u003ccode\u003e86bb8a6\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11094\"\u003e#11094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/181ea826cb5b5f722a774525046d8f4e105dd6bb\"\u003e\u003ccode\u003e181ea82\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/6d55b0759b4722b888fa516b1bb86c0a56ea47a2\"\u003e\u003ccode\u003e6d55b07\u003c/code\u003e\u003c/a\u003e test({react,preact}-query): use the '.then()' convention consistently (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11085\"\u003e#11085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/44f38df5deaf72d8d74bc62b620dffed43fdbc05\"\u003e\u003ccode\u003e44f38df\u003c/code\u003e\u003c/a\u003e test({react,preact,solid}-query/useInfiniteQuery): inline the shared 'fetchIt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/d1558c1491629b36661e0a166e1091bb4a256daa\"\u003e\u003ccode\u003ed1558c1\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): inline the 'generateQueryFn' fac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/99690d18b7937f217d3744b1c2ac78cc47caeaa7\"\u003e\u003ccode\u003e99690d1\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchInfiniteQuery): inline single-use helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/10770f0720dacae3a26701a747e33abd6bafbf8a\"\u003e\u003ccode\u003e10770f0\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchInfiniteQuery): inline the shared 'Suspe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/dbd5a86e95284387bc3f172208bc52c0053a1bb2\"\u003e\u003ccode\u003edbd5a86\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): inline the shared 'Suspended' co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b955f60d7965cc521df6ee8b1ce91b3d0e8c046d\"\u003e\u003ccode\u003eb955f60\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/useSuspenseQuery): assert the 'loading' fallback is...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b9c657e20b1ac1078ab265de8fc691aec192e143\"\u003e\u003ccode\u003eb9c657e\u003c/code\u003e\u003c/a\u003e test({react,preact}-query/usePrefetchQuery): assert the 'Loading...' fallback...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.4/packages/react-query\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitejs/plugin-react` from 4.7.0 to 6.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vitejs/vite-plugin-react/releases\"\u003e@​vitejs/plugin-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eplugin-react@6.0.5\u003c/h2\u003e\n\u003ch3\u003eFixed the react compiler preset filter to be linear (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1353\"\u003e#1353\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe improved filter in v6.0.3 was non-linear and caused a performance regression (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/issues/1349\"\u003e#1349\u003c/a\u003e). The filter was changed to be linear to avoid that.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.4\u003c/h2\u003e\n\u003ch3\u003eFixed \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e error when running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eWhen running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e, the app errored with \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e.\nThis error is now fixed.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.2\u003c/h2\u003e\n\u003ch3\u003eAllow all options in reactCompilerPreset (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1189\"\u003e#1189\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThis is a type only change. Only \u003ccode\u003ecompilationMode\u003c/code\u003e and \u003ccode\u003etarget\u003c/code\u003e options were available for \u003ccode\u003ereactCompilerPreset\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.1\u003c/h2\u003e\n\u003ch3\u003eExpand \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eExpanded \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range to include \u003ccode\u003e^0.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eplugin-react@6.0.0\u003c/h2\u003e\n\u003ch3\u003eRemove Babel Related Features (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1123\"\u003e#1123\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eVite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.\u003c/p\u003e\n\u003cp\u003eIf you are using Babel, you can use \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e together with this plugin:\u003c/p\u003e\n\u003cpre lang=\"diff\"\u003e\u003ccode\u003e import { defineConfig } from 'vite'\r\n import react from '@vitejs/plugin-react'\r\n+import babel from '@rolldown/plugin-babel'\r\n\u003cp\u003eexport default defineConfig({\nplugins: [\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  babel: {\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e    plugins: ['@babel/plugin-proposal-throw-expressions'],\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  },\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e}),\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact(),\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ebabel({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  plugins: ['@babel/plugin-proposal-throw-expressions'],\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e}),\n\u003c/code\u003e\u003c/pre\u003e\n]\n})\n\u003c/code\u003e\u003c/pre\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/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md\"\u003e@​vitejs/plugin-react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.5 (2026-07-30)\u003c/h2\u003e\n\u003ch3\u003eFixed the react compiler preset filter to be linear (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1353\"\u003e#1353\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe improved filter in v6.0.3 was non-linear and caused a performance regression (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/issues/1349\"\u003e#1349\u003c/a\u003e). The filter was changed to be linear to avoid that.\u003c/p\u003e\n\u003ch2\u003e6.0.4 (2026-07-22)\u003c/h2\u003e\n\u003ch3\u003eFixed \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e error when running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eWhen running \u003ccode\u003evite dev\u003c/code\u003e with \u003ccode\u003eNODE_ENV=production\u003c/code\u003e, the app errored with \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e.\nThis error is now fixed.\u003c/p\u003e\n\u003ch2\u003e6.0.3 (2026-06-23)\u003c/h2\u003e\n\u003ch3\u003eImprove the react compiler preset filter to reduce false-positives (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1138\"\u003e#1138\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eImproved the filter in the react compiler babel preset to reduce the false-positives so that less modules are processed by the react compiler.\u003c/p\u003e\n\u003ch2\u003e6.0.2 (2026-05-14)\u003c/h2\u003e\n\u003ch3\u003eAllow all options in reactCompilerPreset (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1189\"\u003e#1189\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThis is a type only change. Only \u003ccode\u003ecompilationMode\u003c/code\u003e and \u003ccode\u003etarget\u003c/code\u003e options were available for \u003ccode\u003ereactCompilerPreset\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003e6.0.1 (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eExpand \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eExpanded \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e peer dep range to include \u003ccode\u003e^0.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003e6.0.0 (2026-03-12)\u003c/h2\u003e\n\u003ch2\u003e6.0.0-beta.0 (2026-03-03)\u003c/h2\u003e\n\u003ch3\u003eRemove Babel Related Features (\u003ca href=\"https://redirect.github.com/vitejs/vite-plugin-react/pull/1123\"\u003e#1123\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eVite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.\u003c/p\u003e\n\u003cp\u003eIf you are using Babel, you can use \u003ccode\u003e@rolldown/plugin-babel\u003c/code\u003e together with this plugin:\u003c/p\u003e\n\u003cpre lang=\"diff\"\u003e\u003ccode\u003e import { defineConfig } from 'vite'\n import react from '@vitejs/plugin-react'\n+import babel from '@rolldown/plugin-babel'\n\u003cp\u003eexport default defineConfig({\nplugins: [\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003ereact({\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cpre\u003e\u003ccode\u003e  babel: {\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/vitejs/vite-plugin-react/commit/68c0cb8796ce18bd049c3d05c5210eaf0617eac0\"\u003e\u003ccode\u003e68c0cb8\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.5 (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1362\"\u003e#1362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/555cdbc126506317b05404481374406771a41e70\"\u003e\u003ccode\u003e555cdbc\u003c/code\u003e\u003c/a\u003e fix(react): make the react compiler preset filter linear (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1353\"\u003e#1353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/a00a9f8240d5a7bb4062ee2a5bac68ea4f0defa6\"\u003e\u003ccode\u003ea00a9f8\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/f4b549822ec239799d746c030abb0b9a7d8f0a04\"\u003e\u003ccode\u003ef4b5498\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/7a4065906e07e616aee23c4fcc76a76b74a7d694\"\u003e\u003ccode\u003e7a40659\u003c/code\u003e\u003c/a\u003e fix(react): \u003ccode\u003e$RefreshSig$ is not defined\u003c/code\u003e  with NODE_ENV=production vite dev ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/98b32d47a3f2517d52e8a51d8e28ff2ed13678a2\"\u003e\u003ccode\u003e98b32d4\u003c/code\u003e\u003c/a\u003e fix(deps): update react 19.2.8 (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/8ae5449be23079dd17fdefc64064a3d94be6fc39\"\u003e\u003ccode\u003e8ae5449\u003c/code\u003e\u003c/a\u003e fix: babel-plugin-react-compiler cannot be imported when used in a framework ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/f09ea01b0b66a4900c3e42cef2aa0147e78b097c\"\u003e\u003ccode\u003ef09ea01\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/640fd358a0e82393acfce4e92e19a6ac6e1641a7\"\u003e\u003ccode\u003e640fd35\u003c/code\u003e\u003c/a\u003e release: plugin-react@6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitejs/vite-plugin-react/commit/889efb02cdc4ec978a5e177a37e0213cfded38a4\"\u003e\u003ccode\u003e889efb0\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1249\"\u003e#1249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axios` from 1.18.1 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axios/axios/releases\"\u003eaxios's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 - July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rpaudel379\"\u003e\u003ccode\u003e@​Rpaudel379\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\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/axios/axios/blob/v1.x/CHANGELOG.md\"\u003eaxios's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.0 — July 22, 2026\u003c/h2\u003e\n\u003cp\u003eThis release raises the form-data security floor, adds configuration and type-system capabilities, and fixes NO_PROXY matching, interceptor errors, progress reporting, and serialization edge cases.\u003c/p\u003e\n\u003ch2\u003e🔒 Security Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMultipart Form Data: Raised the form-data dependency floor to ^4.0.6, preventing fresh installations from resolving versions affected by the CRLF injection vulnerability GHSA-hmw2-7cc7-3qxx (\u003ca href=\"https://github.com/advisories/GHSA-hmw2-7cc7-3qxx\"\u003ehttps://github.com/advisories/GHSA-hmw2-7cc7-3qxx\u003c/a\u003e). (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfiguration Extensibility: Preserved own-enumerable symbol-keyed fields through mergeConfig and added a generic params type across public TypeScript declarations, responses, errors,\nadapters, and serializers. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHeader Parameter Parsing: Added the opt-in AxiosHeaders.parseParameters() parser for quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP Status Codes: Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eForm Data Conversion: Limited formDataToJSON path splitting to dot and bracket notation, preserving literal punctuation in keys, and removed browser-facing Buffer.from usage from toFormData to avoid unnecessary polyfills. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11018\"\u003e#11018\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProxy Bypass: Canonicalized IPv4 shorthand, octal, and hexadecimal forms during NO_PROXY matching and honored * entries within comma- or space-separated bypass lists. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCancellation: Propagated already-aborted input signals immediately when composing abort signals. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHeader Handling: Preserved empty first values for duplicate singleton headers and made AxiosHeaders#getSetCookie() consistently return arrays for present values. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11036\"\u003e#11036\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11037\"\u003e#11037\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eURL Handling: Included normalized, safely redacted offending URLs in malformed-protocol errors and removed repeated trailing slashes when combining base URLs. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11008\"\u003e#11008\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11038\"\u003e#11038\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProgress Events: Clamped malformed negative progress values to zero and ensured final Node.js download progress events are delivered before streamed responses close. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11039\"\u003e#11039\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11040\"\u003e#11040\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError and JSON Serialization: Serialized Set values as arrays in JSON-compatible snapshots and synthesized useful AxiosError messages from otherwise-empty AggregateError instances. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11044\"\u003e#11044\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eContent-Length Enforcement: Corrected base64 data: URL size estimation so maxContentLength is enforced consistently by the HTTP and Fetch adapters. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11061\"\u003e#11061\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSynchronous Interceptors: Prevented requests from being dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11071\"\u003e#11071\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Maintenance \u0026amp; Chores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies: Updated development and test tooling, the docs fixture's Axios version, and GitHub Actions integrations including Checkout, Setup Node, Setup Deno, and Zizmor. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11031\"\u003e#11031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11055\"\u003e#11055\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11056\"\u003e#11056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11058\"\u003e#11058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11079\"\u003e#11079\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11080\"\u003e#11080\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11090\"\u003e#11090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild Outputs: Limited sourcemap generation to published minified bundles, removing broken map references from non-minified builds. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eForm Data Internals: Centralized FormData header handling and made the Node.js adapter tolerate getHeaders() returning undefined under the content-only policy. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11062\"\u003e#11062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeveloper Experience: Ignored common local AI-tooling directories and fixed a constant-reassignment crash when the development sandbox serves its root path. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11032\"\u003e#11032\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentation: Updated sponsor information, clarified that baseURL is not a path-security boundary, scoped provenance claims to attested releases, and corrected the configuration-defaults documentation. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11041\"\u003e#11041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11068\"\u003e#11068\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11076\"\u003e#11076\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11078\"\u003e#11078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublishing: Simplified v1 publishing to use the npm version bundled with Node.js 26 and updated package metadata for the 1.19.0 release. (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🌟 New Contributors\u003c/h2\u003e\n\u003cp\u003eWe are thrilled to welcome our new contributors. Thank you for helping improve Axios:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afonsojramos\"\u003e\u003ccode\u003e@​afonsojramos\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11028\"\u003e#11028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahinAnowar\"\u003e\u003ccode\u003e@​MahinAnowar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11006\"\u003e#11006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yassertawfik4\"\u003e\u003ccode\u003e@​yassertawfik4\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11024\"\u003e#11024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AnandSundar\"\u003e\u003ccode\u003e@​AnandSundar\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11029\"\u003e#11029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lin-hongkuan\"\u003e\u003ccode\u003e@​lin-hongkuan\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11035\"\u003e#11035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Wali007-lab\"\u003e\u003ccode\u003e@​Wali007-lab\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11054\"\u003e#11054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magicdawn\"\u003e\u003ccode\u003e@​magicdawn\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11043\"\u003e#11043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrewkernel\"\u003e\u003ccode\u003e@​andrewkernel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11053\"\u003e#11053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sagargupta16\"\u003e\u003ccode\u003e@​Sagargupta16\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11059\"\u003e#11059\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/axios/axios/commit/311fcc5c8d989b7248f05d390bb83bfbfb009977\"\u003e\u003ccode\u003e311fcc5\u003c/code\u003e\u003c/a\u003e chore(release): prepare release 1.19.0 (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11095\"\u003e#11095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/cb4fd743abd1c595761c8eda25d1323fc62a3b93\"\u003e\u003ccode\u003ecb4fd74\u003c/code\u003e\u003c/a\u003e chore(deps): bump axios from 1.16.1 to 1.18.1 in /docs (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11088\"\u003e#11088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/004c93a9d2acd0561c498eff7bb4431c6bad78af\"\u003e\u003ccode\u003e004c93a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 in the github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/122edde91b1183572f4ba399b5b6bc4e3b989718\"\u003e\u003ccode\u003e122edde\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development_dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11089\"\u003e#11089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/c44f8d0a910df99486da9175584b99f56a94a73b\"\u003e\u003ccode\u003ec44f8d0\u003c/code\u003e\u003c/a\u003e ci: use bundled npm for v1 publish (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11083\"\u003e#11083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/878bb29de570765b0d4c0970e30400d9ea9399f7\"\u003e\u003ccode\u003e878bb29\u003c/code\u003e\u003c/a\u003e fix(sandbox): resolve TypeError on constant variable path assignment (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11073\"\u003e#11073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/a092bae50d1884782151b2fcea12974d6da6e376\"\u003e\u003ccode\u003ea092bae\u003c/code\u003e\u003c/a\u003e fix(core): synchronous interceptors swallow errors and proceed with request (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3041b8fd1daf17404d1bad1f9d94026ea5ab400b\"\u003e\u003ccode\u003e3041b8f\u003c/code\u003e\u003c/a\u003e feat(HttpStatusCode): add missing 520 status code (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11067\"\u003e#11067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/58b16c88f0bddf1fadb321aed58ba3f49a90481b\"\u003e\u003ccode\u003e58b16c8\u003c/code\u003e\u003c/a\u003e refactor(helpers): extract duplicated setFormDataHeaders into a shared helper...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axios/axios/commit/3077e62097726d22ba30f1cb847d7a07050e339a\"\u003e\u003ccode\u003e3077e62\u003c/code\u003e\u003c/a\u003e feat(types): Allow the Params property to be typed, instead of \u003ccode\u003eany\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/axios/axios/issues/11081\"\u003e#11081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axios/axios/compare/v1.18.1...v1.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `framer-motion` from 12.42.2 to 12.43.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motiondivision/motion/blob/main/CHANGELOG.md\"\u003eframer-motion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[12.43.0] 2026-07-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHardware acceleration for \u003ccode\u003ebackgroundColor\u003c/code\u003e in supported browsers.\u003c/li\u003e\n\u003cli\u003eHardware acceleration for SVG elements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAnimatePresence\u003c/code\u003e: Exiting children no longer interleave with entering children, which could reorder and remount children present in both renders.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emotion\u003c/code\u003e: Throw error when passing a custom \u003ccode\u003emotion\u003c/code\u003e component an incorrect \u003ccode\u003eref\u003c/code\u003e type.\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/motiondivision/motion/commit/a4ef40a5dd378205a41dbb19e7fad04e3280607f\"\u003e\u003ccode\u003ea4ef40a\u003c/code\u003e\u003c/a\u003e v12.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/14f2d286d1b0805ca8a34b41f9c4122a36e215eb\"\u003e\u003ccode\u003e14f2d28\u003c/code\u003e\u003c/a\u003e adding svg acceleration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/1f5a27b828d42574ff3dfffa29f77da613d84eb2\"\u003e\u003ccode\u003e1f5a27b\u003c/code\u003e\u003c/a\u003e Fixing merge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/79f03532429c6abee2de5161e3ca1594aa2d61f0\"\u003e\u003ccode\u003e79f0353\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/57f179b1beaec64da990ca914c18697f87265b4f\"\u003e\u003ccode\u003e57f179b\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/695cb3954d4df55ca0794bc95f084b377e4f5f4f\"\u003e\u003ccode\u003e695cb39\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3755\"\u003e#3755\u003c/a\u003e from motiondivision/fix-issue-2777\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/33a1820f6c35e9b206eca277e059415b07ddafde\"\u003e\u003ccode\u003e33a1820\u003c/code\u003e\u003c/a\u003e Drop the production fallback for non-DOM refs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/ebe35f223ddda0806af8d8335e7f053115d67d4b\"\u003e\u003ccode\u003eebe35f2\u003c/code\u003e\u003c/a\u003e Throw an actionable invariant for non-DOM custom component refs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/a6ed0946a338256f660560500861b09c2b8a20d2\"\u003e\u003ccode\u003ea6ed094\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3754\"\u003e#3754\u003c/a\u003e from motiondivision/fix-3745-popchild-ref-warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9f251f3377766a6bf97a93c1634c4e51a7408ccf\"\u003e\u003ccode\u003e9f251f3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3763\"\u003e#3763\u003c/a\u003e from motiondivision/advisor/003-color-waapi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motiondivision/motion/compare/v12.42.2...v12.43.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.5 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.5...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next-http-backend` from 4.0.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md\"\u003ei18next-http-backend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e4.0.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow \u003ccode\u003e@\u003c/code\u003e in \u003ccode\u003ens\u003c/code\u003e values so scoped-package-style namespace names such as \u003ccode\u003e@organization/package-name\u003c/code\u003e fetch correctly again (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/191\"\u003e#191\u003c/a\u003e). 3.0.6 relaxed the \u003ccode\u003ens\u003c/code\u003e check for \u003ccode\u003e/\u003c/code\u003e but left \u003ccode\u003e@\u003c/code\u003e in the shared denylist. In the URL path position \u003ccode\u003e@\u003c/code\u003e is a plain RFC 3986 pchar with no structural meaning; it stays blocked for \u003ccode\u003elng\u003c/code\u003e, where it marks the userinfo/authority boundary. Every other pattern from the 3.0.5 advisory (\u003ccode\u003e..\u003c/code\u003e, \u003ccode\u003e\\\u003c/code\u003e, \u003ccode\u003e%\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e, \u003ccode\u003e#\u003c/code\u003e, whitespace, control chars, prototype keys, oversized inputs) remains blocked for both keys.\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/i18next/i18next-http-backend/commit/565821712282376d56f82e0d15a8a89f3ae23f6d\"\u003e\u003ccode\u003e5658217\u003c/code\u003e\u003c/a\u003e 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/2b2e771b0103fb7e90c9beba9ac285cec7839bd3\"\u003e\u003ccode\u003e2b2e771\u003c/code\u003e\u003c/a\u003e fix: allow @ in ns values for scoped-package-style namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/64c110597cfe008d50c9e744e4718124eef3b11e\"\u003e\u003ccode\u003e64c1105\u003c/code\u003e\u003c/a\u003e Bump next from 16.2.6 to 16.2.11 in /example/next (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/7be00f7f550f4f29fa24620f1f74e28dc0f4d229\"\u003e\u003ccode\u003e7be00f7\u003c/code\u003e\u003c/a\u003e Remove deprecated baseUrl from tsconfig to fix Deno CI type check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/8eeafa2759e8732ea0b929b66c807cada6e9b633\"\u003e\u003ccode\u003e8eeafa2\u003c/code\u003e\u003c/a\u003e README: mention npx i18next-cli localize as the zero-to-localized path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/37df2ff22c3629ef9e5747c2c35887a89445b851\"\u003e\u003ccode\u003e37df2ff\u003c/code\u003e\u003c/a\u003e Bump i18next-http-backend from 3.0.1 to 3.0.5 in /example/node (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/187\"\u003e#187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/175e32705a3d60a6c5405cff36cc4b414c7abc0b\"\u003e\u003ccode\u003e175e327\u003c/code\u003e\u003c/a\u003e Bump next from 16.2.3 to 16.2.6 in /example/next (\u003ca href=\"https://redirect.github.com/i18next/i18next-http-backend/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-http-backend/commit/b74344c58dfd8b74d34657425302e4749145448b\"\u003e\u003ccode\u003eb74344c\u003c/code\u003e\u003c/a\u003e Fix typo in L...\n\n_Description has been truncated_","html_url":"https://github.com/Daniel-debug-boop/Wren/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-debug-boop%2FWren/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"}},{"old_version":"26.2.0","new_version":"26.3.6","update_type":"minor","path":null,"pr_created_at":"2026-08-07T17:28:03.000Z","version_change":"26.2.0 → 26.3.6","issue":{"uuid":"5092515820","node_id":"PR_kwDOTxgIVc78JwUQ","number":4,"state":"closed","title":"chore(deps): bump i18next from 26.2.0 to 26.3.6","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:09:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-07T17:28:03.000Z","updated_at":"2026-08-07T18:09:26.000Z","time_to_close":2477,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"i18next","old_version":"26.2.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 26.2.0 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.2.0...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=26.2.0\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xenstar/SpeakFlow/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenstar%2FSpeakFlow/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"25.5.2","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-07T16:16:37.000Z","version_change":"25.5.2 → 26.3.6","issue":{"uuid":"5091985223","node_id":"PR_kwDOSyBoPc78IC4Y","number":17,"state":"open","title":"chore(deps): bump the frontend-deps group across 1 directory with 57 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-07T16:16:37.000Z","updated_at":"2026-08-07T16:16:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":57,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.7.1","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@lobehub/icons-static-svg","old_version":"1.73.0","new_version":"1.94.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.4","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-store","old_version":"2.4.0","new_version":"2.4.4","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 57 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.7.1` |\n| [@lobehub/icons-static-svg](https://github.com/lobehub/lobe-icons) | `1.73.0` | `1.94.0` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.4` | `1.2.11` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-store](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.4.4` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.7.0...v5.7.1\"\u003e5.7.1\u003c/a\u003e (2026-08-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e827f20b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.6.0...v5.7.0\"\u003e5.7.0\u003c/a\u003e (2026-08-02)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e4cfba18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.8...v5.6.0\"\u003e5.6.0\u003c/a\u003e (2026-08-01)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove all resovlers drops validation errors for special root field names (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003eb011a5f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.7...v5.5.8\"\u003e5.5.8\u003c/a\u003e (2026-08-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e2f28787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\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/react-hook-form/resolvers/commit/827f20bd97a4618d75162e54fe9ba2419fd4e50a\"\u003e\u003ccode\u003e827f20b\u003c/code\u003e\u003c/a\u003e fix: ata-validator peer dependency version (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/871\"\u003e#871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/4cfba18117e8b76bde326a54103340590c867a21\"\u003e\u003ccode\u003e4cfba18\u003c/code\u003e\u003c/a\u003e feat: support vine v4 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/58d2e2da61395bfc6d44bddc2a1e4411bb521806\"\u003e\u003ccode\u003e58d2e2d\u003c/code\u003e\u003c/a\u003e remove dead image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/b011a5f3f793dba475b143cca34859997cdfb161\"\u003e\u003ccode\u003eb011a5f\u003c/code\u003e\u003c/a\u003e feat: improve all resovlers drops validation errors for special root field names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/5483a0335edcb61c9d4cc5b669d30314d366987e\"\u003e\u003ccode\u003e5483a03\u003c/code\u003e\u003c/a\u003e improve all resolvers (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2f287871f4d3184892cba1ac1a0c570a4e1cf8f5\"\u003e\u003ccode\u003e2f28787\u003c/code\u003e\u003c/a\u003e fix: Zod resolver drops validation errors for special root field names (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons-static-svg` from 1.73.0 to 1.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lobehub/lobe-icons/releases\"\u003e@​lobehub/icons-static-svg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.93.0...@lobehub/icons-static-svg@1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-17\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb\"\u003ee7714cb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.92.0...@lobehub/icons-static-svg@1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-07-14\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/blob/master/CHANGELOG.md\"\u003e@​lobehub/icons-static-svg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.93.0...v1.94.0\"\u003eVersion 1.94.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-25\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/eeff5aa\"\u003eeeff5aa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add Xinference, Coqui (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/3ac1eea\"\u003e3ac1eea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square\" alt=\"\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v1.92.0...v1.93.0\"\u003eVersion 1.93.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2025-03-23\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e✨ Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's improved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauto\u003c/strong\u003e: Auto build static icons (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9de6a04\"\u003e9de6a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Add DreamMachine, TopazLabs, Yuanbao (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/c22e36f\"\u003ec22e36f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\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/lobehub/lobe-icons/commit/fbd2d56e3f734e889f1373e71c8368cc4e60e0d7\"\u003e\u003ccode\u003efbd2d56\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/9d041035dd2c5a149c60b87615a2fc86c66b5ef8\"\u003e\u003ccode\u003e9d04103\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.94.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/e7714cb2d8fc6f7b379f6d1b28896c3b9d62f8b7\"\u003e\u003ccode\u003ee7714cb\u003c/code\u003e\u003c/a\u003e ✨ feat(auto): Auto build static icons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/d570ec828f532d036b8a1446bd695419ec3d0862\"\u003e\u003ccode\u003ed570ec8\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.14.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/debf214577941242844caae7e6498c32054408f6\"\u003e\u003ccode\u003edebf214\u003c/code\u003e\u003c/a\u003e ✨ feat(docs): migrate to lobedocs (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/918a629a17684ed8765993d346def1fbd457c514\"\u003e\u003ccode\u003e918a629\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-webp\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/49ea6caba8ca1fadd56e7bc918cddcdc1f05aae1\"\u003e\u003ccode\u003e49ea6ca\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/656685e1e7136a1e641c31f2f1f12b4573cf1890\"\u003e\u003ccode\u003e656685e\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-png\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.93.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/4e11561f81fd68808437618ce7b04aeb362258ee\"\u003e\u003ccode\u003e4e11561\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-static-avatar\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.13.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/32397804ed34cedc636c1fe3f3e2db7a1c3d4fb7\"\u003e\u003ccode\u003e3239780\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): \u003ccode\u003e@​lobehub/icons-rn\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.11.0 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/@lobehub/icons-static-svg@1.73.0...@lobehub/icons-static-svg@1.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~lobehubbot\"\u003elobehubbot\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lobehub/icons-static-svg\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;sel...\n\n_Description has been truncated_","html_url":"https://github.com/knife-ayao/ccswitch/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/knife-ayao%2Fccswitch/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"24.2.3","new_version":"26.3.6","update_type":"major","path":"/packages/web","pr_created_at":"2026-08-07T10:32:20.000Z","version_change":"24.2.3 → 26.3.6","issue":{"uuid":"5089261108","node_id":"PR_kwDOTjr2Fs77_N_L","number":61,"state":"closed","title":"build(deps): bump the web-dependencies group in /packages/web with 20 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:05:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-07T10:32:20.000Z","updated_at":"2026-08-07T18:05:49.000Z","time_to_close":27208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"web-dependencies","update_count":20,"packages":[{"name":"i18next","old_version":"24.2.3","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"15.7.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"@eslint/js","old_version":"9.39.5","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.62.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/user-event","old_version":"14.6.1","new_version":"14.6.3","repository_url":"https://github.com/testing-library/user-event"},{"name":"@types/node","old_version":"22.20.1","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"axe-core","old_version":"4.10.3","new_version":"4.12.1","repository_url":"https://github.com/dequelabs/axe-core"},{"name":"eslint","old_version":"9.39.5","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"globals","old_version":"15.15.0","new_version":"17.9.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"stylelint","old_version":"16.26.1","new_version":"17.14.1","repository_url":"https://github.com/stylelint/stylelint"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.65.0","new_version":"8.66.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"6.4.3","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":"/packages/web","ecosystem":"npm"},"body":"Bumps the web-dependencies group in /packages/web with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [i18next](https://github.com/i18next/i18next) | `24.2.3` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `15.7.4` | `17.0.11` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.5` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.62.0` | `1.62.1` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.1` | `14.6.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.20.1` | `26.1.2` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [axe-core](https://github.com/dequelabs/axe-core) | `4.10.3` | `4.12.1` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.5` | `10.8.0` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [globals](https://github.com/sindresorhus/globals) | `15.15.0` | `17.9.0` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [stylelint](https://github.com/stylelint/stylelint) | `16.26.1` | `17.14.1` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.65.0` | `8.66.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `6.4.3` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\nUpdates `i18next` from 24.2.3 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.3...v26.3.6\"\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 `react-i18next` from 15.7.4 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans i18nKey={$ =\u0026gt; ...}\u0026gt;\u003c/code\u003e now typechecks under \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e. The \u003ccode\u003eTrans\u003c/code\u003e component's conditional type was gated on \u003ccode\u003e_EnableSelector extends true | 'optimize'\u003c/code\u003e, excluding \u003ccode\u003e'strict'\u003c/code\u003e and falling back to the legacy string-key signature. Runtime was already correct (it calls \u003ccode\u003ekeyFromSelector(i18nKey)\u003c/code\u003e whenever \u003ccode\u003etypeof i18nKey === 'function'\u003c/code\u003e); this is a type-only fix that widens the conditional to include \u003ccode\u003e'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/pull/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003euseTranslation([nsA, nsB, ...])\u003c/code\u003e now passes its full namespace list to \u003ccode\u003egetFixedT\u003c/code\u003e via the new \u003ccode\u003escopeNs\u003c/code\u003e opt (requires \u003ccode\u003ei18next\u003c/code\u003e ≥ v26.0.10). This makes selector calls with a secondary-namespace prefix resolve correctly under default \u003ccode\u003ensMode\u003c/code\u003e: \u003ccode\u003et($ =\u0026gt; $.nsB.foo)\u003c/code\u003e previously missed silently because the bound \u003ccode\u003ens\u003c/code\u003e was the primary string only and i18next's selector rewrite needed an array. Resolution semantics are unchanged — plain \u003ccode\u003et('key')\u003c/code\u003e lookups still stay isolated to the primary namespace by default; use \u003ccode\u003ensMode: 'fallback'\u003c/code\u003e to opt into multi-ns fallback resolution as before. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003ei18next#2429\u003c/a\u003e for \u003ccode\u003euseTranslation\u003c/code\u003e-based callers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore the v17 \u003ccode\u003enodesToString\u003c/code\u003e output format consumed by \u003ccode\u003ei18next-cli\u003c/code\u003e's extractor while still rendering \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e correctly\n\u003cul\u003e\n\u003cli\u003e17.0.5 fixed \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e by changing what \u003ccode\u003enodesToString\u003c/code\u003e produced, which inadvertently changed the extracted translation strings for keep-tags wrapping non-keep React elements\u003c/li\u003e\n\u003cli\u003eThe fix now lives in the renderer: indexed \u003ccode\u003e\u0026lt;N\u0026gt;\u003c/code\u003e placeholders nested inside a keep-tag are scoped to that tag's own original React children (matching kept tags by name and positional occurrence at each level), so the translation string format produced by \u003ccode\u003enodesToString\u003c/code\u003e is unchanged\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e no longer breaks child rendering when a kept HTML node (\u003ccode\u003etransKeepBasicHtmlNodesFor\u003c/code\u003e) wraps a non-keep React element \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1919\"\u003e1919\u003c/a\u003e — superseded by 17.0.6, which keeps the same runtime fix without changing the \u003ccode\u003enodesToString\u003c/code\u003e output\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid \u003ccode\u003eReact does not recognize the 'i18nIsDynamicList' prop on a DOM element\u003c/code\u003e warning \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1915\"\u003e1915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid invalid prop on \u003ccode\u003eReact.Fragment\u003c/code\u003e inside \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1914\"\u003e1914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003evalues\u003c/code\u003e prop on \u003ccode\u003e\u0026lt;Trans /\u0026gt;\u003c/code\u003e now only requires interpolation variables for the specific \u003ccode\u003ei18nKey\u003c/code\u003e, not all variables in the namespace \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1913\"\u003e1913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump minimum i18next peer dependency to \u003ccode\u003e\u0026gt;= 26.0.1\u003c/code\u003e \u003cem\u003e(forgot to do it in last version)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003efix: migrate test setup from removed legacy \u003ccode\u003einterpolation.format\u003c/code\u003e to \u003ccode\u003ei18n.services.formatter.add()\u003c/code\u003e (i18next v26)\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v15.7.4...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.5 to 10.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c87d5bded54c5cf491eb04c24c9d09bbbd42c23e\"\u003e\u003ccode\u003ec87d5bd\u003c/code\u003e\u003c/a\u003e fix: update eslint (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20531\"\u003e#20531\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d84100115c14691691058f00779c94e74fca946a\"\u003e\u003ccode\u003ed841001\u003c/code\u003e\u003c/a\u003e fix: update \u003ccode\u003eminimatch\u003c/code\u003e to \u003ccode\u003e10.2.1\u003c/code\u003e to address security vulnerabilities (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20519\"\u003e#20519\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/04c21475b3004904948f02049f2888b401d82c78\"\u003e\u003ccode\u003e04c2147\u003c/code\u003e\u003c/a\u003e fix: update error message for unused suppressions (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20496\"\u003e#20496\u003c/a\u003e) (fnx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/38b089c1726feac0e31a31d47941bd99e29ce003\"\u003e\u003ccode\u003e38b089c\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​eslint/config-array\u003c/code\u003e to ^0.23.1 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20484\"\u003e#20484\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5b3dbce50a1404a9f118afe810cefeee79388a2a\"\u003e\u003ccode\u003e5b3dbce\u003c/code\u003e\u003c/a\u003e docs: add AI acknowledgement section to templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20431\"\u003e#20431\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6f23076037d5879f20fb3be2ef094293b1e8d38c\"\u003e\u003ccode\u003e6f23076\u003c/code\u003e\u003c/a\u003e docs: toggle nav in no-JS mode (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20476\"\u003e#20476\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b69cfb32a16c5d5e9986390d484fae1d21e406f9\"\u003e\u003ccode\u003eb69cfb3\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e5c281ffd038a3a7a3e5364db0b9378e0ad83020\"\u003e\u003ccode\u003ee5c281f\u003c/code\u003e\u003c/a\u003e chore: updates for v9.39.3 release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8c3832adb77cd993b4a24891900d5eeaaf093cdc\"\u003e\u003ccode\u003e8c3832a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e to ^8.56.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20514\"\u003e#20514\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8330d238ae6adb68bb6a1c9381e38cfedd990d94\"\u003e\u003ccode\u003e8330d23\u003c/code\u003e\u003c/a\u003e test: add tests for config-api (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20493\"\u003e#20493\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/37d6e91e88fa6a2ca6d8726679096acff21ba6cc\"\u003e\u003ccode\u003e37d6e91\u003c/code\u003e\u003c/a\u003e chore: remove eslint v10 prereleases from eslint-config-eslint deps (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20494\"\u003e#20494\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/da7cd0e79197ad16e17052eef99df141de6dbfb1\"\u003e\u003ccode\u003eda7cd0e\u003c/code\u003e\u003c/a\u003e refactor: cleanup error message templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20479\"\u003e#20479\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f9e54f43a5e497cdfa179338b431093245cb787b\"\u003e\u003ccode\u003ef9e54f4\u003c/code\u003e\u003c/a\u003e feat!: estimate rule-tester failure location (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20420\"\u003e#20420\u003c/a\u003e) (ST-DDT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a176319d8ade1a7d9b2d7fb8f038f55a2662325f\"\u003e\u003ccode\u003ea176319\u003c/code\u003e\u003c/a\u003e feat!: replace \u003ccode\u003echalk\u003c/code\u003e with \u003ccode\u003estyleText\u003c/code\u003e and add \u003ccode\u003ecolor\u003c/code\u003e to \u003ccode\u003eResultsMeta\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20227\"\u003e#20227\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c7046e6c1e03c4ca0eee4888a1f2eba4c6454f84\"\u003e\u003ccode\u003ec7046e6\u003c/code\u003e\u003c/a\u003e feat!: enable JSX reference tracking (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20152\"\u003e#20152\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e) (Kirk Waiblinger)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3383e7ec9028166cafc8ea7986c2f7498d0049f0\"\u003e\u003ccode\u003e3383e7e\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eSourceCode\u003c/code\u003e methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20137\"\u003e#20137\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/501abd0e916a35554c58b7c0365537f1fa3880ce\"\u003e\u003ccode\u003e501abd0\u003c/code\u003e\u003c/a\u003e feat!: update dependency minimatch to v10 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20246\"\u003e#20246\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ca4d3b40085de47561f89656a2207d09946ed45e\"\u003e\u003ccode\u003eca4d3b4\u003c/code\u003e\u003c/a\u003e fix!: stricter rule tester assertions for valid test cases (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20125\"\u003e#20125\u003c/a\u003e) (唯然)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/96512a66c86402fb0538cdcb6cd30b9073f6bf3b\"\u003e\u003ccode\u003e96512a6\u003c/code\u003e\u003c/a\u003e fix!: Remove deprecated rule context methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20086\"\u003e#20086\u003c/a\u003e) (Nicholas C. Zakas)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c69fdacdb2e886b9d965568a397aa8220db3fe90\"\u003e\u003ccode\u003ec69fdac\u003c/code\u003e\u003c/a\u003e feat!: remove eslintrc support (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20037\"\u003e#20037\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/208b5cc34a8374ff81412b5bec2e0800eebfbd04\"\u003e\u003ccode\u003e208b5cc\u003c/code\u003e\u003c/a\u003e feat!: Use \u003ccode\u003eScopeManager#addGlobals()\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20132\"\u003e#20132\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a2ee188ea7a38a0c6155f3d39e2b00e1d0f36e14\"\u003e\u003ccode\u003ea2ee188\u003c/code\u003e\u003c/a\u003e fix!: add \u003ccode\u003euniqueItems: true\u003c/code\u003e in \u003ccode\u003eno-invalid-regexp\u003c/code\u003e option (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20155\"\u003e#20155\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a89059dbf2832d417dd493ee81483227ec44e4ab\"\u003e\u003ccode\u003ea89059d\u003c/code\u003e\u003c/a\u003e feat!: Program range span entire source text (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20133\"\u003e#20133\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39a6424373d915fa9de0d7b0caba9a4dc3da9b53\"\u003e\u003ccode\u003e39a6424\u003c/code\u003e\u003c/a\u003e fix!: assert 'text' is a string across all RuleFixer methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20082\"\u003e#20082\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f28fbf846244e043c92b355b224d121b06140b44\"\u003e\u003ccode\u003ef28fbf8\u003c/code\u003e\u003c/a\u003e fix!: Deprecate \u003ccode\u003e\u0026quot;always\u0026quot;\u003c/code\u003e and \u003ccode\u003e\u0026quot;as-needed\u0026quot;\u003c/code\u003e options of the \u003ccode\u003eradix\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20223\"\u003e#20223\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/aa3fb2b233e929b37220be940575f42c280e0b98\"\u003e\u003ccode\u003eaa3fb2b\u003c/code\u003e\u003c/a\u003e fix!: tighten \u003ccode\u003efunc-names\u003c/code\u003e schema (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20119\"\u003e#20119\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f6c0ed0311dcfee853367d5068c765d066e6b756\"\u003e\u003ccode\u003ef6c0ed0\u003c/code\u003e\u003c/a\u003e feat!: report \u003ccode\u003eeslint-env\u003c/code\u003e comments as errors (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20128\"\u003e#20128\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bf739fb533e59f7f0a66b65f7bc80be0f37d8db\"\u003e\u003ccode\u003e4bf739f\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eLintMessage#nodeType\u003c/code\u003e and \u003ccode\u003eTestCaseError#type\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20096\"\u003e#20096\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/523c076866400670fb2192a3f55dbf7ad3469247\"\u003e\u003ccode\u003e523c076\u003c/code\u003e\u003c/a\u003e feat!: drop support for jiti \u0026lt; 2.2.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20016\"\u003e#20016\u003c/a\u003e) (michael faith)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4f880ee02992e1bf0e96ebaba679985e2d1295f1\"\u003e\u003ccode\u003e4f880ee\u003c/code\u003e\u003c/a\u003e feat!: remove \u003ccode\u003ev10_*\u003c/code\u003e and inactive \u003ccode\u003eunstable_*\u003c/code\u003e flags (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20225\"\u003e#20225\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f18115c363a4ac7671a4c7f30ee13d57ebba330f\"\u003e\u003ccode\u003ef18115c\u003c/code\u003e\u003c/a\u003e feat!: \u003ccode\u003eno-shadow-restricted-names\u003c/code\u003e report \u003ccode\u003eglobalThis\u003c/code\u003e by default (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20027\"\u003e#20027\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bff9091927811497dbf066b0e3b85ecb37d43822\"\u003e\u003ccode\u003ebff9091\u003c/code\u003e\u003c/a\u003e feat: handle \u003ccode\u003eArray.fromAsync\u003c/code\u003e in \u003ccode\u003earray-callback-return\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20457\"\u003e#20457\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/290c594bb50c439fb71bc75521ee5360daa8c222\"\u003e\u003ccode\u003e290c594\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eself\u003c/code\u003e to \u003ccode\u003eno-implied-eval\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20468\"\u003e#20468\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/43677de07ebd6e14bfac40a46ad749ba783c45f2\"\u003e\u003ccode\u003e43677de\u003c/code\u003e\u003c/a\u003e feat: fix handling of function and class expression names in \u003ccode\u003eno-shadow\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20432\"\u003e#20432\u003c/a\u003e) (Milos Djermanovic)\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/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f3fbc2f60cbe2c718364feb8c3fc0452c0df3c56\"\u003e\u003ccode\u003ef3fbc2f\u003c/code\u003e\u003c/a\u003e chore: set \u003ccode\u003e@eslint/js\u003c/code\u003e version to 10.0.0 to skip releasing it (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20466\"\u003e#20466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b4b3127f8542c599ce2dea804b6582ebc40c993d\"\u003e\u003ccode\u003eb4b3127\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0b14059491d830a49b3577931f4f68fbcfce6be5\"\u003e\u003ccode\u003e0b14059\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1e2cad5f6fa47ed6ed89d2a29798dda926d50990\"\u003e\u003ccode\u003e1e2cad5\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v10.0.1/packages/js\"\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.62.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\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/playwright/commit/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.62.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@testing-library/jest-dom` from 6.9.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/testing-library/jest-dom/releases\"\u003e@​testing-library/jest-dom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/compare/v6.10.0...v7.0.0\"\u003e7.0.0\u003c/a\u003e (2026-07-20)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"https://github.com/testing-library/jest-dom/commit/1e39089d850408a583c83495d00d8aa27078933f\"\u003e1e39089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​testing-library/dom\u003c/code\u003e is now a required peer dependency. The minimum supported\nNode.js version is now 22.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRepaired release for \u003ca href=\"https://redirect.github.com/testing-library/jest-dom/pull/731\"\u003etesting-library/jest-dom#731\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.10.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/compare/v6.9.1...v6.10.0\"\u003e6.10.0\u003c/a\u003e (2026-07-20)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"https://redirect.github.com/testing-library/jest-dom/issues/731\"\u003e#731\u003c/a\u003e) (\u003ca href=\"https://github.com/testing-library/jest-dom/commit/cae44df901cf8e92e3febc0af6fa667b10be6d6a\"\u003ecae44df\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/testing-library/jest-dom/commit/1e39089d850408a583c83495d00d8aa27078933f\"\u003e\u003ccode\u003e1e39089\u003c/code\u003e\u003c/a\u003e feat: add toContainAnyBy* and toContainOneBy* query matchers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testing-library/jest-dom/commit/cae44df901cf8e92e3febc0af6fa667b10be6d6a\"\u003e\u003ccode\u003ecae44df\u003c/code\u003e\u003c/a\u003e feat: add toContainAnyBy* and toContainOneBy* query matchers (\u003ca href=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/GuyFlenner/monopoly/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuyFlenner%2Fmonopoly/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}},{"old_version":"25.8.13","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-06T08:22:26.000Z","version_change":"25.8.13 → 26.3.6","issue":{"uuid":"5079192395","node_id":"PR_kwDORTx6Rs77e8qE","number":166,"state":"closed","title":"chore(deps): Bump the react-frontend group across 1 directory with 59 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T17:37:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-06T08:22:26.000Z","updated_at":"2026-08-07T17:37:42.000Z","time_to_close":119714,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"react-frontend","update_count":59,"packages":[{"name":"@heroui/react","old_version":"3.1.0","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@lexical/html","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/link","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/list","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/react","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/rich-text","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/selection","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@lexical/utils","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"@react-aria/focus","old_version":"3.22.0","new_version":"3.22.1","repository_url":"https://github.com/adobe/react-spectrum"},{"name":"@react-aria/interactions","old_version":"3.28.0","new_version":"3.28.1","repository_url":"https://github.com/adobe/react-spectrum"},{"name":"@sentry/react","old_version":"10.52.0","new_version":"10.69.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"@stripe/react-stripe-js","old_version":"6.3.0","new_version":"6.8.0","repository_url":"https://github.com/stripe/react-stripe-js"},{"name":"@types/leaflet","old_version":"1.9.21","new_version":"1.9.22","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@uiw/react-codemirror","old_version":"4.25.10","new_version":"4.25.11","repository_url":"https://github.com/uiwjs/react-codemirror"},{"name":"@vis.gl/react-google-maps","old_version":"1.8.3","new_version":"1.9.0","repository_url":"https://github.com/visgl/react-google-maps"},{"name":"dompurify","old_version":"3.4.11","new_version":"3.4.12","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"grapesjs","old_version":"0.21.13","new_version":"0.23.4","repository_url":"https://github.com/GrapesJS/grapesjs"},{"name":"i18next","old_version":"25.8.13","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-chained-backend","old_version":"5.0.4","new_version":"5.0.6","repository_url":"https://github.com/i18next/i18next-chained-backend"},{"name":"i18next-http-backend","old_version":"3.0.6","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"i18next-localstorage-backend","old_version":"4.3.1","new_version":"4.3.2","repository_url":"https://github.com/i18next/i18next-localStorage-backend"},{"name":"jspdf-autotable","old_version":"5.0.7","new_version":"5.0.8","repository_url":"https://github.com/simonbengtsson/jsPDF-AutoTable"},{"name":"lexical","old_version":"0.44.0","new_version":"0.49.0","repository_url":"https://github.com/facebook/lexical"},{"name":"lucide-react","old_version":"0.453.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"marked","old_version":"17.0.5","new_version":"18.0.7","repository_url":"https://github.com/markedjs/marked"},{"name":"papaparse","old_version":"5.5.3","new_version":"5.5.4","repository_url":"https://github.com/mholt/PapaParse"},{"name":"pusher-js","old_version":"8.5.0","new_version":"8.6.0","repository_url":"https://github.com/pusher/pusher-js"},{"name":"react","old_version":"19.2.6","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.15","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.6","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"16.5.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"6.30.4","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"recharts","old_version":"3.8.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@tailwindcss/vite","old_version":"4.3.0","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/qrcode","old_version":"1.5.5","new_version":"1.5.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/slice-ansi","old_version":"5.0.2","new_version":"7.1.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"5.1.4","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"@vitest/coverage-v8","old_version":"3.2.6","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"eslint","old_version":"9.39.4","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-plugin-i18next","old_version":"6.1.4","new_version":"6.1.5","repository_url":"https://github.com/edvardchen/eslint-plugin-i18next"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"heroui-cli","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/heroui-inc/heroui-cli"},{"name":"i18next-cli","old_version":"1.58.1","new_version":"1.67.3","repository_url":"https://github.com/i18next/i18next-cli"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"sharp","old_version":"0.34.5","new_version":"0.35.3","repository_url":"https://github.com/lovell/sharp"},{"name":"svgo","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/svg/svgo"},{"name":"typescript","old_version":"5.7.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"7.3.6","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vite-plugin-image-optimizer","old_version":"1.1.9","new_version":"2.0.3","repository_url":"https://github.com/FatehAK/vite-plugin-image-optimizer"},{"name":"vitest","old_version":"3.2.6","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@esbuild/win32-x64","old_version":"0.27.7","new_version":"0.28.1","repository_url":"https://github.com/evanw/esbuild"}],"path":null,"ecosystem":"npm"},"body":"Bumps the react-frontend group with 56 updates in the /react-frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.1.0` | `3.2.3` |\n| [@lexical/html](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html) | `0.44.0` | `0.49.0` |\n| [@lexical/link](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link) | `0.44.0` | `0.49.0` |\n| [@lexical/list](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-list) | `0.44.0` | `0.49.0` |\n| [@lexical/react](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-react) | `0.44.0` | `0.49.0` |\n| [@lexical/rich-text](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-rich-text) | `0.44.0` | `0.49.0` |\n| [@lexical/selection](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-selection) | `0.44.0` | `0.49.0` |\n| [@lexical/utils](https://github.com/facebook/lexical/tree/HEAD/packages/lexical-utils) | `0.44.0` | `0.49.0` |\n| [@react-aria/focus](https://github.com/adobe/react-spectrum) | `3.22.0` | `3.22.1` |\n| [@react-aria/interactions](https://github.com/adobe/react-spectrum) | `3.28.0` | `3.28.1` |\n| [@sentry/react](https://github.com/getsentry/sentry-javascript) | `10.52.0` | `10.69.0` |\n| [@stripe/react-stripe-js](https://github.com/stripe/react-stripe-js) | `6.3.0` | `6.8.0` |\n| [@types/leaflet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/leaflet) | `1.9.21` | `1.9.22` |\n| [@uiw/react-codemirror](https://github.com/uiwjs/react-codemirror) | `4.25.10` | `4.25.11` |\n| [@vis.gl/react-google-maps](https://github.com/visgl/react-google-maps) | `1.8.3` | `1.9.0` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.11` | `3.4.12` |\n| [grapesjs](https://github.com/GrapesJS/grapesjs) | `0.21.13` | `0.23.4` |\n| [i18next](https://github.com/i18next/i18next) | `25.8.13` | `26.3.6` |\n| [i18next-chained-backend](https://github.com/i18next/i18next-chained-backend) | `5.0.4` | `5.0.6` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.6` | `4.0.1` |\n| [i18next-localstorage-backend](https://github.com/i18next/i18next-localStorage-backend) | `4.3.1` | `4.3.2` |\n| [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable) | `5.0.7` | `5.0.8` |\n| [lexical](https://github.com/facebook/lexical/tree/HEAD/packages/lexical) | `0.44.0` | `0.49.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.453.0` | `1.28.0` |\n| [marked](https://github.com/markedjs/marked) | `17.0.5` | `18.0.7` |\n| [papaparse](https://github.com/mholt/PapaParse) | `5.5.3` | `5.5.4` |\n| [pusher-js](https://github.com/pusher/pusher-js) | `8.5.0` | `8.6.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.6` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.15` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.6` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.5.4` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `6.30.4` | `7.18.2` |\n| [recharts](https://github.com/recharts/recharts) | `3.8.1` | `3.10.1` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.62.1` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.0` | `4.3.3` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/qrcode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qrcode) | `1.5.5` | `1.5.6` |\n| [@types/slice-ansi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/slice-ansi) | `5.0.2` | `7.1.0` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `5.1.4` | `6.0.5` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `3.2.6` | `4.1.10` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.8.0` |\n| [eslint-plugin-i18next](https://github.com/edvardchen/eslint-plugin-i18next) | `6.1.4` | `6.1.5` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [heroui-cli](https://github.com/heroui-inc/heroui-cli) | `3.0.2` | `3.0.4` |\n| [i18next-cli](https://github.com/i18next/i18next-cli) | `1.58.1` | `1.67.3` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [sharp](https://github.com/lovell/sharp) | `0.34.5` | `0.35.3` |\n| [svgo](https://github.com/svg/svgo) | `4.0.1` | `4.0.2` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.7.2` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.65.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.6` | `8.2.0` |\n| [vite-plugin-image-optimizer](https://github.com/FatehAK/vite-plugin-image-optimizer) | `1.1.9` | `2.0.3` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `3.2.6` | `4.1.10` |\n| [@esbuild/win32-x64](https://github.com/evanw/esbuild) | `0.27.7` | `0.28.1` |\n\n\nUpdates `@heroui/react` from 3.1.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@heroui/styles` from 3.1.0 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/styles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Inside\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔽 ComboBox → multiple selection\u003c/li\u003e\n\u003cli\u003e🌐 RTL → logical CSS properties across all styles\u003c/li\u003e\n\u003cli\u003e📦 react-aria → moved to peerDependencies, single shared copy\u003c/li\u003e\n\u003cli\u003e🎨 tailwind-variants 3.3.0\u003c/li\u003e\n\u003cli\u003e🔧 ScrollShadow, Spinner, InputOTP, Table \u0026amp; Button fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): frameworks tabs by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6703\"\u003eheroui-inc/heroui#6703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(combo-box): remove unsupported props from API reference by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6712\"\u003eheroui-inc/heroui#6712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(spinner): correct default color to \u0026quot;accent\u0026quot; in API reference by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6717\"\u003eheroui-inc/heroui#6717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): use theme tokens in styling examples by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6720\"\u003eheroui-inc/heroui#6720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): correct typos in accordion demo/docs and \u003ccode\u003ebgsurface\u003c/code\u003e class name by \u003ca href=\"https://github.com/daveycodez\"\u003e\u003ccode\u003e@​daveycodez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6722\"\u003eheroui-inc/heroui#6722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(avatar): document custom image composition with asChild by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6725\"\u003eheroui-inc/heroui#6725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(combo-box): custom indicator demo by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6728\"\u003eheroui-inc/heroui#6728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.6 release notes by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6726\"\u003eheroui-inc/heroui#6726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): refresh agent guidance files by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6731\"\u003eheroui-inc/heroui#6731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(docs): add cursor to theme toggle by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6734\"\u003eheroui-inc/heroui#6734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): copy prompt by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6736\"\u003eheroui-inc/heroui#6736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.7 release notes and background layer API docs by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6737\"\u003eheroui-inc/heroui#6737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): repair canonical URLs, sitemap coverage and robots.txt by \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6735\"\u003eheroui-inc/heroui#6735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eV3.2.3 by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6708\"\u003eheroui-inc/heroui#6708\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull Release Note\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://heroui.com/docs/react/releases/v3-2-3\"\u003ehttps://heroui.com/docs/react/releases/v3-2-3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/v3.2.2...v3.2.3\"\u003ehttps://github.com/heroui-inc/heroui/compare/v3.2.2...v3.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Inside\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📦 React Aria 1.19.0\u003c/li\u003e\n\u003cli\u003e📑 Tabs → overflow scrolling with chevrons + edge fade\u003c/li\u003e\n\u003cli\u003e✏️ Input fields → clear/close buttons no longer submit forms\u003c/li\u003e\n\u003cli\u003e✅ Checkbox, Radio, Switch → overflow scroll fix\u003c/li\u003e\n\u003cli\u003e🎨 Chip, DatePicker, Autocomplete, Toast → polish fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): switch custom-styles and with-icons examples by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6662\"\u003eheroui-inc/heroui#6662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(docs): configure android asset links for herouinative app by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6668\"\u003eheroui-inc/heroui#6668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): render native-showcase fallback page outside the [lang] tree by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6671\"\u003eheroui-inc/heroui#6671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(native): add v1.0.5 release notes and update component docs by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6685\"\u003eheroui-inc/heroui#6685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): enable Android Play Store download link by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6675\"\u003eheroui-inc/heroui#6675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(docs): order release badges by date, newest first by \u003ca href=\"https://github.com/vvv-sss\"\u003e\u003ccode\u003e@​vvv-sss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6686\"\u003eheroui-inc/heroui#6686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix typos in native release note \u0026amp; add cn version by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6687\"\u003eheroui-inc/heroui#6687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): add react router in CLI page by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6695\"\u003eheroui-inc/heroui#6695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(tabs): add tabs scroller to handle overflow by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6633\"\u003eheroui-inc/heroui#6633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eV3.2.2 by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6660\"\u003eheroui-inc/heroui#6660\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/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/88c581f1641a3e3d76e155f7a76340b6df696dd5\"\u003e\u003ccode\u003e88c581f\u003c/code\u003e\u003c/a\u003e chore: release v3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/003b26d09dcc55c9708eb3a624ba56a7fd23f197\"\u003e\u003ccode\u003e003b26d\u003c/code\u003e\u003c/a\u003e fix(styles): prevent flex-shrink from collapsing virtualized ListBox scroll h...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/01a2db420e61b370d5f59c579d458a67735df059\"\u003e\u003ccode\u003e01a2db4\u003c/code\u003e\u003c/a\u003e fix(styles): browser autofill highlight on grouped input fields (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles/issues/6625\"\u003e#6625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/styles\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/html` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/html's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8863\"\u003e#8863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFirefox now creates a selection and shows the block cursor when clicking in the gap between block decorators (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8862\"\u003e#8862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePressing ArrowUp before a leading non-inline decorator no longer moves the selection out of the editor (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8887\"\u003e#8887\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMarkdown, HTML \u0026amp; code\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping a list marker at the start of a heading no longer converts the heading into a list (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTML import now evaluates unrestricted CSS selector groups (e.g. \u003ccode\u003ep, .foo\u003c/code\u003e) against all elements instead of only tag-matched ones (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConcurrent async language/theme loads in the Shiki highlighter are deduplicated and merged into a single history entry, avoiding spurious undo states (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8854\"\u003e#8854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuoteNode.updateDOM\u003c/code\u003e now accepts the \u003ccode\u003eEditorConfig\u003c/code\u003e argument the reconciler passes to every other node, for API consistency (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8882\"\u003e#8882\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlayground \u0026amp; website\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePlayground scroll padding now accounts for the sticky toolbar so selections scrolled into view from above aren't hidden behind it (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8849\"\u003e#8849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a homepage crash caused by a minified dev build, and isolated each embedded example in its own error boundary so one failure no longer takes down the page (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8861\"\u003e#8861\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/facebook/lexical/blob/main/CHANGELOG.md\"\u003e@​lexical/html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.49.0 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-markdown Bug Fix Preserve headings when typing list shortcuts (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8879\"\u003e#8879\u003c/a\u003e) Steven Dang\u003c/li\u003e\n\u003cli\u003elexical-rich-text Bug Fix Forward editorConfig to QuoteNode.updateDOM (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8882\"\u003e#8882\u003c/a\u003e) Sha Halimi\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Table alignment fails when selecting in non-TL-BR direction (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8883\"\u003e#8883\u003c/a\u003e) sahir\u003c/li\u003e\n\u003cli\u003eBreaking Changelexical Chore Remove redundant registerCommandregisterNodeTransform generics (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8877\"\u003e#8877\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-html Bug Fix Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8873\"\u003e#8873\u003c/a\u003e) Madan kumar\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix Deterministic history coalescing for flaky webkit undo tests (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8874\"\u003e#8874\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Performance Skip redundant selection restoration in removeTextFromCaretRange (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8872\"\u003e#8872\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Refactor Simplify RangeSelection.insertText via removeText decomposition (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8870\"\u003e#8870\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Remove redundant decorator-adjacent backspace handler (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8871\"\u003e#8871\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Skip colgroup element in table DOM with undefined col widths (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8850\"\u003e#8850\u003c/a\u003e) Zachary Gallafent\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Create selection when clicking between block decorators on Firefox (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8862\"\u003e#8862\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() recurses infinitely when inherited as own static (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8867\"\u003e#8867\u003c/a\u003e follow-up) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8869\"\u003e#8869\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexicallexical-website Bug Fix Homepage crash from optimized dev build (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8861\"\u003e#8861\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Bug Fix run editor updates dispatched from a read-only context in a fresh writable update (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8863\"\u003e#8863\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical Feature Editor operation benchmarks (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8856\"\u003e#8856\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Chore Migrate LexicalSelection tests to buildEditorFromExtensions (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8865\"\u003e#8865\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() inherited by subclasses causes node-type collision (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8867\"\u003e#8867\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003efix config() auto-synthesized clone() loses properties when called directly (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8864\"\u003e#8864\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-tablelexical Feature Sticky scrollbar for overflowing tables (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8790\"\u003e#8790\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix Deduplicate async loads and merge into history (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8854\"\u003e#8854\u003c/a\u003e) Alexis\u003c/li\u003e\n\u003cli\u003elexical-table Chore Remove dead code in table command handlers (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8857\"\u003e#8857\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Chore Deprecate getShape() and migrate playground (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8853\"\u003e#8853\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Rename isNestedListNode to isNestedListNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8843\"\u003e#8843\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix account for sticky toolbar in scroll padding (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8849\"\u003e#8849\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eBreaking Changeslexical Refactor Port node classes to the config() protocol (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8640\"\u003e#8640\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-table Chore Deprecate createTableSelection in favor of createTableSelectionFrom (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8855\"\u003e#8855\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Enable DELETELINECOMMAND in table cells (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8851\"\u003e#8851\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Scope bench vitest projects to exclude regular test files (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8852\"\u003e#8852\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003ev0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8847\"\u003e#8847\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003ev0.48.0 Lexical GitHub Actions Bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.48.0 (2026-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-reactlexical-table Bug Fix Enable table copy in read-only mode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8845\"\u003e#8845\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-extensionlexical-mdastdev-mdast-editor-example Feature Add MdastHtmlExtension and Markdown custom-construct examples (collapsible, kbd, alerts, footnotes) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8826\"\u003e#8826\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eFix fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8846\"\u003e#8846\u003c/a\u003e) xiezhenjia-meta\u003c/li\u003e\n\u003cli\u003elexical Chore Fix serialize-javascript package dependency vulnerability (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8803\"\u003e#8803\u003c/a\u003e) vijay ojha\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Count block separators in character limit overflow wrapping (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8840\"\u003e#8840\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-yjslexical-react Feature Customizable Yjs shared-type root name (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8841\"\u003e#8841\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Bug Fix Backspace at start of list item outdents or converts to paragraph (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8829\"\u003e#8829\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Add moveTableRow function  Add missing export for unmergeCellNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8833\"\u003e#8833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elexical-link Bug Fix disable link opening for disabled autolink in (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8839\"\u003e#8839\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-rich-textlexical-plain-text Bug Fix dont cancel dragover for text drags so native drops work again (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8842\"\u003e#8842\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eOpen playground links in a new tab (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8837\"\u003e#8837\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Merge adjacent OverflowNodes in useCharacterLimit (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8831\"\u003e#8831\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix force re-tokenize after async language load (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8830\"\u003e#8830\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Bug Fix Auto-scroll while drag-selecting cells past the visible edge (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8822\"\u003e#8822\u003c/a\u003e) Oleksandr Trukhnii\u003c/li\u003e\n\u003cli\u003elexical-mdastlexical-markdown Bug Fix Roundtrip overlapping inline formats (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8825\"\u003e#8825\u003c/a\u003e) Bob Ippolito\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/facebook/lexical/commit/ffe90924bd55b5d450c88de0f9f1c8b228c4a221\"\u003e\u003ccode\u003effe9092\u003c/code\u003e\u003c/a\u003e v0.49.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e3e9d4178a3142c01c0a06b510f49ff2b504fbc9\"\u003e\u003ccode\u003ee3e9d41\u003c/code\u003e\u003c/a\u003e [lexical-html] Bug Fix: Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/ba4d6d0f9b99268c58df853542e309bf4f2021ac\"\u003e\u003ccode\u003eba4d6d0\u003c/code\u003e\u003c/a\u003e v0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8847\"\u003e#8847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/fa1b101bab5c7b9b2c9a713392d52275043d8cb2\"\u003e\u003ccode\u003efa1b101\u003c/code\u003e\u003c/a\u003e [lexical-extension][lexical-mdast][dev-mdast-editor-example] Feature: Add Mda...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e4b7cc3f420226059c8aa30df6e89bd5fadbea90\"\u003e\u003ccode\u003ee4b7cc3\u003c/code\u003e\u003c/a\u003e v0.47.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8821\"\u003e#8821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/a7666ab11f5e8c674a3f5ca8a83d2e92f1b171d0\"\u003e\u003ccode\u003ea7666ab\u003c/code\u003e\u003c/a\u003e [*][lexical-devtools][lexical-playground] Chore: Update flow, hermes, and bab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e649ab28b7e2dd58c1b4798c446e611f54356518\"\u003e\u003ccode\u003ee649ab2\u003c/code\u003e\u003c/a\u003e [lexical][lexical-eslint-plugin] Feature: Add $getDocument() API and Shadow D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e03b0fe5d4ea9f2d7880fa0cf8f2d81a0203a833\"\u003e\u003ccode\u003ee03b0fe\u003c/code\u003e\u003c/a\u003e docs: fix duplicated words in comments and docs (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8761\"\u003e#8761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/041c8642c0c0f4d0b7e791f3c499dfeac50a4a9e\"\u003e\u003ccode\u003e041c864\u003c/code\u003e\u003c/a\u003e v0.46.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-html/issues/8748\"\u003e#8748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/abe40dabe347289681dab8ad4ae4257a4e20de45\"\u003e\u003ccode\u003eabe40da\u003c/code\u003e\u003c/a\u003e [lexical] Bug Fix: Refactor class inheritance loops to use an inheritsLoose-s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/lexical/commits/v0.49.0/packages/lexical-html\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lexical/html\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/link` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/link's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8863\"\u003e#8863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFirefox now creates a selection and shows the block cursor when clicking in the gap between block decorators (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8862\"\u003e#8862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePressing ArrowUp before a leading non-inline decorator no longer moves the selection out of the editor (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8887\"\u003e#8887\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMarkdown, HTML \u0026amp; code\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTyping a list marker at the start of a heading no longer converts the heading into a list (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTML import now evaluates unrestricted CSS selector groups (e.g. \u003ccode\u003ep, .foo\u003c/code\u003e) against all elements instead of only tag-matched ones (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8873\"\u003e#8873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConcurrent async language/theme loads in the Shiki highlighter are deduplicated and merged into a single history entry, avoiding spurious undo states (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8854\"\u003e#8854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQuoteNode.updateDOM\u003c/code\u003e now accepts the \u003ccode\u003eEditorConfig\u003c/code\u003e argument the reconciler passes to every other node, for API consistency (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8882\"\u003e#8882\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlayground \u0026amp; website\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePlayground scroll padding now accounts for the sticky toolbar so selections scrolled into view from above aren't hidden behind it (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8849\"\u003e#8849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a homepage crash caused by a minified dev build, and isolated each embedded example in its own error boundary so one failure no longer takes down the page (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8861\"\u003e#8861\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\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/facebook/lexical/blob/main/CHANGELOG.md\"\u003e@​lexical/link's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.49.0 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-markdown Bug Fix Preserve headings when typing list shortcuts (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8879\"\u003e#8879\u003c/a\u003e) Steven Dang\u003c/li\u003e\n\u003cli\u003elexical-rich-text Bug Fix Forward editorConfig to QuoteNode.updateDOM (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8882\"\u003e#8882\u003c/a\u003e) Sha Halimi\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Table alignment fails when selecting in non-TL-BR direction (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8883\"\u003e#8883\u003c/a\u003e) sahir\u003c/li\u003e\n\u003cli\u003eBreaking Changelexical Chore Remove redundant registerCommandregisterNodeTransform generics (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8877\"\u003e#8877\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-html Bug Fix Dispatch unrestricted CSS selector groups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8873\"\u003e#8873\u003c/a\u003e) Madan kumar\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix Deterministic history coalescing for flaky webkit undo tests (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8874\"\u003e#8874\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Performance Skip redundant selection restoration in removeTextFromCaretRange (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8872\"\u003e#8872\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Refactor Simplify RangeSelection.insertText via removeText decomposition (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8870\"\u003e#8870\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Remove redundant decorator-adjacent backspace handler (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8871\"\u003e#8871\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Skip colgroup element in table DOM with undefined col widths (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8850\"\u003e#8850\u003c/a\u003e) Zachary Gallafent\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Create selection when clicking between block decorators on Firefox (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8862\"\u003e#8862\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() recurses infinitely when inherited as own static (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8867\"\u003e#8867\u003c/a\u003e follow-up) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8869\"\u003e#8869\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexicallexical-website Bug Fix Homepage crash from optimized dev build (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8861\"\u003e#8861\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical Bug Fix run editor updates dispatched from a read-only context in a fresh writable update (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8863\"\u003e#8863\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical Feature Editor operation benchmarks (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8856\"\u003e#8856\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Chore Migrate LexicalSelection tests to buildEditorFromExtensions (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8865\"\u003e#8865\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003efix config() synthesized getType() inherited by subclasses causes node-type collision (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8867\"\u003e#8867\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003efix config() auto-synthesized clone() loses properties when called directly (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8864\"\u003e#8864\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-tablelexical Feature Sticky scrollbar for overflowing tables (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8790\"\u003e#8790\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix Deduplicate async loads and merge into history (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8854\"\u003e#8854\u003c/a\u003e) Alexis\u003c/li\u003e\n\u003cli\u003elexical-table Chore Remove dead code in table command handlers (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8857\"\u003e#8857\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Chore Deprecate getShape() and migrate playground (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8853\"\u003e#8853\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Chore Rename isNestedListNode to isNestedListNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8843\"\u003e#8843\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-playground Bug Fix account for sticky toolbar in scroll padding (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8849\"\u003e#8849\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eBreaking Changeslexical Refactor Port node classes to the config() protocol (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8640\"\u003e#8640\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003elexical-table Chore Deprecate createTableSelection in favor of createTableSelectionFrom (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8855\"\u003e#8855\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Bug Fix Enable DELETELINECOMMAND in table cells (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8851\"\u003e#8851\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical Bug Fix Scope bench vitest projects to exclude regular test files (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8852\"\u003e#8852\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003ev0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8847\"\u003e#8847\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003ev0.48.0 Lexical GitHub Actions Bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.48.0 (2026-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elexical-reactlexical-table Bug Fix Enable table copy in read-only mode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8845\"\u003e#8845\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-extensionlexical-mdastdev-mdast-editor-example Feature Add MdastHtmlExtension and Markdown custom-construct examples (collapsible, kbd, alerts, footnotes) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8826\"\u003e#8826\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eFix fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8846\"\u003e#8846\u003c/a\u003e) xiezhenjia-meta\u003c/li\u003e\n\u003cli\u003elexical Chore Fix serialize-javascript package dependency vulnerability (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8803\"\u003e#8803\u003c/a\u003e) vijay ojha\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Count block separators in character limit overflow wrapping (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8840\"\u003e#8840\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-yjslexical-react Feature Customizable Yjs shared-type root name (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8841\"\u003e#8841\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-list Bug Fix Backspace at start of list item outdents or converts to paragraph (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8829\"\u003e#8829\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-table Feature Add moveTableRow function  Add missing export for unmergeCellNode (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8833\"\u003e#8833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elexical-link Bug Fix disable link opening for disabled autolink in (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8839\"\u003e#8839\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-rich-textlexical-plain-text Bug Fix dont cancel dragover for text drags so native drops work again (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8842\"\u003e#8842\u003c/a\u003e) Bob Ippolito\u003c/li\u003e\n\u003cli\u003eOpen playground links in a new tab (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8837\"\u003e#8837\u003c/a\u003e) Sherry\u003c/li\u003e\n\u003cli\u003elexical-react Bug Fix Merge adjacent OverflowNodes in useCharacterLimit (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8831\"\u003e#8831\u003c/a\u003e) mayrang\u003c/li\u003e\n\u003cli\u003elexical-code-shiki Bug Fix force re-tokenize after async language load (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8830\"\u003e#8830\u003c/a\u003e) Olivier Chevallier\u003c/li\u003e\n\u003cli\u003elexical-tablelexical-playground Bug Fix Auto-scroll while drag-selecting cells past the visible edge (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8822\"\u003e#8822\u003c/a\u003e) Oleksandr Trukhnii\u003c/li\u003e\n\u003cli\u003elexical-mdastlexical-markdown Bug Fix Roundtrip overlapping inline formats (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8825\"\u003e#8825\u003c/a\u003e) Bob Ippolito\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/facebook/lexical/commit/ffe90924bd55b5d450c88de0f9f1c8b228c4a221\"\u003e\u003ccode\u003effe9092\u003c/code\u003e\u003c/a\u003e v0.49.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/5fc8eae3cdbd934ec3d0422ecaef7037771e38c2\"\u003e\u003ccode\u003e5fc8eae\u003c/code\u003e\u003c/a\u003e [Breaking Changes][lexical] Refactor: Port node classes to the $config() prot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/ba4d6d0f9b99268c58df853542e309bf4f2021ac\"\u003e\u003ccode\u003eba4d6d0\u003c/code\u003e\u003c/a\u003e v0.48.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8847\"\u003e#8847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/365516c5fcdcc141561dcbb2eb43b707b48dd5b8\"\u003e\u003ccode\u003e365516c\u003c/code\u003e\u003c/a\u003e Fix: fail closed in LinkNode.sanitizeUrl() on unparseable URLs (XSS) (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8846\"\u003e#8846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/71562324c7d2154f64d79f6d20803f67b9bd9c11\"\u003e\u003ccode\u003e7156232\u003c/code\u003e\u003c/a\u003e [lexical-link] Bug Fix: disable link opening for disabled autolink in… (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8839\"\u003e#8839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e4b7cc3f420226059c8aa30df6e89bd5fadbea90\"\u003e\u003ccode\u003ee4b7cc3\u003c/code\u003e\u003c/a\u003e v0.47.0 (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8821\"\u003e#8821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/a7666ab11f5e8c674a3f5ca8a83d2e92f1b171d0\"\u003e\u003ccode\u003ea7666ab\u003c/code\u003e\u003c/a\u003e [*][lexical-devtools][lexical-playground] Chore: Update flow, hermes, and bab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/e649ab28b7e2dd58c1b4798c446e611f54356518\"\u003e\u003ccode\u003ee649ab2\u003c/code\u003e\u003c/a\u003e [lexical][lexical-eslint-plugin] Feature: Add $getDocument() API and Shadow D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/7b76175cc96d99489c2f3c792db193cf2d9bc127\"\u003e\u003ccode\u003e7b76175\u003c/code\u003e\u003c/a\u003e [lexical-playground] Bug Fix: Support Unicode URLs in autolink matcher (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-link/issues/8787\"\u003e#8787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/lexical/commit/62a4b30f382b4dc60cacd1a9d753a2d1f44d9f5e\"\u003e\u003ccode\u003e62a4b30\u003c/code\u003e\u003c/a\u003e [lexical][*] Feature: registerEventListener / registerEventListeners DOM help...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/lexical/commits/v0.49.0/packages/lexical-link\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​lexical/link\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lexical/list` from 0.44.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/lexical/releases\"\u003e@​lexical/list's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ev0.49.0 is a monthly release headlined by the completion of the \u003ccode\u003e$config()\u003c/code\u003e protocol migration for Lexical's built-in node classes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e), a breaking change that replaces per-node \u003ccode\u003egetType()\u003c/code\u003e/\u003ccode\u003eclone()\u003c/code\u003e/\u003ccode\u003eimportJSON()\u003c/code\u003e/\u003ccode\u003eimportDOM()\u003c/code\u003e/\u003ccode\u003etransform()\u003c/code\u003e boilerplate with runtime-synthesized behavior. It ships with a cluster of follow-up fixes hardening the synthesized \u003ccode\u003egetType()\u003c/code\u003e and \u003ccode\u003eclone()\u003c/code\u003e (including a stack overflow in compiled builds), an opt-in sticky horizontal scrollbar for overflowing tables, and a broad batch of fixes across tables, Markdown, HTML, code highlighting, and selection.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Built-in node classes are ported to the \u003ca href=\"https://lexical.dev/docs/concepts/nodes\"\u003e\u003ccode\u003e$config()\u003c/code\u003e\u003c/a\u003e protocol. The static \u003ccode\u003eimportJSON()\u003c/code\u003e, \u003ccode\u003eimportDOM()\u003c/code\u003e, \u003ccode\u003eclone()\u003c/code\u003e, and \u003ccode\u003etransform()\u003c/code\u003e methods are no longer present on ported nodes; use the higher-level equivalents instead (\u003ccode\u003eLexicalEditor.parseEditorState\u003c/code\u003e/\u003ccode\u003e$generateNodesFromDOM\u003c/code\u003e, the \u003ccode\u003e$cloneWithProperties\u003c/code\u003e helper, and extensions or \u003ccode\u003e$transform\u003c/code\u003e in \u003ccode\u003e$config\u003c/code\u003e). \u003ccode\u003egetType()\u003c/code\u003e is unchanged and safe to keep using, \u003ccode\u003e__type\u003c/code\u003e is now \u003ccode\u003ereadonly\u003c/code\u003e, and node constructors require zero-argument defaults. Custom nodes may keep their static methods, but adopting \u003ccode\u003e$config()\u003c/code\u003e is recommended (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8640\"\u003e#8640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003eLexicalCommand\u0026lt;T\u0026gt;\u003c/code\u003e's payload type is now invariant to prevent unsafe structural compatibility between commands. Previously correct code (including explicit generics) needs no changes; only unsafe \u003ccode\u003eLexicalCommand\u0026lt;unknown\u0026gt;\u003c/code\u003e usage must switch to the newly exported \u003ccode\u003eAnyLexicalCommand\u003c/code\u003e alias. \u003ccode\u003edispatchCommand\u003c/code\u003e's payload argument is now optional when a command's payload type is \u003ccode\u003eundefined\u003c/code\u003e or \u003ccode\u003evoid\u003c/code\u003e, and redundant explicit type parameters were dropped from the \u003ccode\u003eregisterCommand\u003c/code\u003e/\u003ccode\u003eregisterNodeTransform\u003c/code\u003e call sites (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8877\"\u003e#8877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs \u0026amp; Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — Opt-in sticky horizontal scrollbar for tables wider than their container, so the scrollbar stays anchored at the viewport bottom instead of only being reachable at the end of the table. Enable it with \u003ccode\u003ehasStickyScrollbar: true\u003c/code\u003e in the table config; style it via the new \u003ccode\u003etableStickyScrollbar\u003c/code\u003e theme key (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8790\"\u003e#8790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — The \u003ccode\u003e\u0026lt;colgroup\u0026gt;\u003c/code\u003e element is now omitted from the table DOM when column widths are undefined, producing cleaner markup and letting the browser auto-size columns; it is created or removed dynamically as widths change (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical\"\u003e\u003ccode\u003elexical\u003c/code\u003e\u003c/a\u003e — Added an editor operation benchmark suite (paragraph split, bold formatting, range deletion, paste, select-all format) measured through full DOM reconciliation, to help contributors track core editing performance (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8856\"\u003e#8856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003e$createTableSelection\u003c/code\u003e is deprecated in favor of \u003ccode\u003e$createTableSelectionFrom\u003c/code\u003e, which takes the table node plus anchor/focus cells and validates them, instead of returning a blank selection with placeholder \u003ccode\u003e'root'\u003c/code\u003e keys that must be overwritten (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8855\"\u003e#8855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lexical.dev/docs/api/modules/lexical_table\"\u003e\u003ccode\u003e@lexical/table\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003egetShape()\u003c/code\u003e is deprecated because it computes incorrect bounds for merged cells; use the now-exported \u003ccode\u003e$computeTableCellRectBoundary\u003c/code\u003e (with \u003ccode\u003e$computeTableMap\u003c/code\u003e) instead (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8853\"\u003e#8853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable Fixes\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e$config()\u003c/code\u003e follow-ups (\u003ca href=\"https://github.com/facebook/lexical/tree/HEAD/packages/lexical-list/issues/8640\"\u003e#8640\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003eclone()\u003c/code\u003e now applies \u003ccode\u003eafterCloneFrom()\u003c/code\u003e when called directly (e.g. \u003ccode\u003eNodeClass.clone(node)\u003c/code\u003e), fixing silent property loss across 25+ core nodes (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer returns the superclass type when inherited, fixing node-type collisions during editor registration (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8867\"\u003e#8867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe synthesized \u003ccode\u003egetType()\u003c/code\u003e no longer recurses infinitely when a bundler copies it onto a subclass as an own static, fixing stack overflows in compiled/minified builds (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8869\"\u003e#8869\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTables\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDELETE_LINE_COMMAND\u003c/code\u003e (Cmd/Ctrl-based delete-line shortcuts) now works inside table cells instead of being silently swallowed (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTable alignment now works when cells are selected in any direction, not just top-left→bottom-right (\u003ca href=\"https://redirect.github.com/facebook/lexical/pull/8883\"\u003e#8883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSelection \u0026amp; editing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEditor updates dispatched from a read-only context (e.g. inside \u003ccode\u003eeditor.read()\u003c/code\u003e) now run in a fresh writable update instead of being silently dropped, with a dev warning (\u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/jasperfordesq-ai/nexus-v1/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperfordesq-ai%2Fnexus-v1/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"}},{"old_version":"26.3.1","new_version":"26.3.6","update_type":"patch","path":null,"pr_created_at":"2026-08-05T17:07:22.000Z","version_change":"26.3.1 → 26.3.6","issue":{"uuid":"5073370753","node_id":"PR_kwDOTKMvPM77MRIW","number":74,"state":"closed","title":"build(deps-dev): bump the dev-dependencies group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T17:08:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-05T17:07:22.000Z","updated_at":"2026-08-07T17:08:54.000Z","time_to_close":172888,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): bump","group_name":"dev-dependencies","update_count":28,"packages":[{"name":"@playwright/test","old_version":"1.61.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/node","old_version":"26.0.0","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/semver","old_version":"7.7.1","new_version":"7.8.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/supertest","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"eslint","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"set-cookie-parser","old_version":"3.1.0","new_version":"3.1.2","repository_url":"https://github.com/nfriedly/set-cookie-parser"},{"name":"sinon","old_version":"22.0.0","new_version":"22.1.0","repository_url":"https://github.com/sinonjs/sinon"},{"name":"@types/sinon","old_version":"21.0.1","new_version":"22.0.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"typescript","old_version":"6.0.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vitest","old_version":"4.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@radix-ui/react-dialog","old_version":"1.1.17","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-toast","old_version":"1.2.17","new_version":"1.2.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-visually-hidden","old_version":"1.2.6","new_version":"1.2.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@typescript-eslint/eslint-plugin","old_version":"8.61.1","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@typescript-eslint/parser","old_version":"8.61.1","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitejs/plugin-react","old_version":"6.0.2","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"i18next","old_version":"26.3.1","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"1.21.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.17","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.80.0","new_version":"7.84.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.18.0","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"vite","old_version":"8.0.16","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"oxc-minify","old_version":"0.137.0","new_version":"0.142.0","repository_url":"https://github.com/oxc-project/oxc"},{"name":"vitepress","old_version":"2.0.0-alpha.17","new_version":"2.0.0-alpha.19","repository_url":"https://github.com/vuejs/vitepress"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dev-dependencies group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.0` | `1.62.1` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.0.0` | `26.1.2` |\n| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver) | `7.7.1` | `7.8.0` |\n| [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) | `7.2.0` | `7.2.1` |\n| [eslint](https://github.com/eslint/eslint) | `10.5.0` | `10.8.0` |\n| [set-cookie-parser](https://github.com/nfriedly/set-cookie-parser) | `3.1.0` | `3.1.2` |\n| [sinon](https://github.com/sinonjs/sinon) | `22.0.0` | `22.1.0` |\n| [@types/sinon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sinon) | `21.0.1` | `22.0.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.9` | `4.1.10` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.17` | `1.1.23` |\n| [@radix-ui/react-toast](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/toast) | `1.2.17` | `1.2.23` |\n| [@radix-ui/react-visually-hidden](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/visually-hidden) | `1.2.6` | `1.2.11` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.61.1` | `8.65.0` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.61.1` | `8.65.0` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.2` | `6.0.5` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.1` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.21.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.80.0` | `7.84.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.0` | `7.18.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.16` | `8.2.0` |\n| [oxc-minify](https://github.com/oxc-project/oxc/tree/HEAD/napi/minify) | `0.137.0` | `0.142.0` |\n| [vitepress](https://github.com/vuejs/vitepress) | `2.0.0-alpha.17` | `2.0.0-alpha.19` |\n\n\nUpdates `@playwright/test` from 1.61.0 to 1.62.1\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.62.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41989\"\u003e#41989\u003c/a\u003e [Regression]: tsconfig \u0026quot;extends\u0026quot; bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41998\"\u003e#41998\u003c/a\u003e [Regression]: directory-form tsconfig project references (\u0026quot;path\u0026quot;: \u0026quot;../pkg\u0026quot;) fail to resolve (fatal since 1.62)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41985\"\u003e#41985\u003c/a\u003e Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42000\"\u003e#42000\u003c/a\u003e [Regression]: page.evaluate() arg of a branded primitive type (string \u0026amp; { brand }) no longer type-checks since 1.62\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42013\"\u003e#42013\u003c/a\u003e [BUG]Image-type actionable elements are not presented in the snapshot.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/26a9e470a7b3c7822084b09fb7f13902c5f37b51\"\u003e\u003ccode\u003e26a9e47\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42043\"\u003e#42043\u003c/a\u003e): docs: release notes for v1.62 Python, Java, and .NET (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0a81d5d09b10eeefe228fe745c3f80c7368a239b\"\u003e\u003ccode\u003e0a81d5d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42040\"\u003e#42040\u003c/a\u003e): docs(release-notes): mention the isolated headless clipb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/83768264e64a821bcef9e634b8e5c33897f2b032\"\u003e\u003ccode\u003e8376826\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42034\"\u003e#42034\u003c/a\u003e): fix(aria): keep icon-only clickable elements in ai snaps...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/66c5cc92a60ce20ab3abe779339e1f90d2e2e888\"\u003e\u003ccode\u003e66c5cc9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42020\"\u003e#42020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9672bc3f2a7098cb6a9791ca97222187363a3037\"\u003e\u003ccode\u003e9672bc3\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42009\"\u003e#42009\u003c/a\u003e): fix(types): support branded primitives in evaluate argum...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4325804427a214aa0c8c39bb1352f4ac4f712fd1\"\u003e\u003ccode\u003e4325804\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41988\"\u003e#41988\u003c/a\u003e): fix(aria): preserve names from collapsed text contributors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/9632f8ecbc2accba140ea342f1070ccfdd5f5d41\"\u003e\u003ccode\u003e9632f8e\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/42005\"\u003e#42005\u003c/a\u003e): fix(tsconfig): do not throw when \u0026quot;extends\u0026quot;/\u0026quot;references\u0026quot; ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.61.0...v1.62.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 26.0.0 to 26.1.2\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/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/semver` from 7.7.1 to 7.8.0\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/semver\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/supertest` from 7.2.0 to 7.2.1\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/supertest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 10.5.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.5.0...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `set-cookie-parser` from 3.1.0 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nfriedly/set-cookie-parser/blob/master/CHANGELOG.md\"\u003eset-cookie-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/tree/v3.1.1\"\u003ev3.1.2\u003c/a\u003e - 2026-07-09\u003c/h2\u003e\n\u003cp\u003eFixed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer throws when attempting to parse a set-cookie string with no name-value pair, e.g parseSetCookie(\u0026quot;;\u0026quot;)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/tree/v3.1.1\"\u003ev3.1.1\u003c/a\u003e - 2026-06-23\u003c/h2\u003e\n\u003cp\u003eFixed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWhitespace is now correctly trimmed around attribute names and values\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/nfriedly/set-cookie-parser/commit/60b9d7f2b2a029238676bb0c34cd1a324198c766\"\u003e\u003ccode\u003e60b9d7f\u003c/code\u003e\u003c/a\u003e 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/89298a1cf7ea8517a308ba9ac4e8970cc8fdf0e0\"\u003e\u003ccode\u003e89298a1\u003c/code\u003e\u003c/a\u003e v3.1.2 change log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/d79cc2c43820f241145e91bd7bb3cc77cb3aa8f6\"\u003e\u003ccode\u003ed79cc2c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/82\"\u003e#82\u003c/a\u003e from spokodev/fix/hunt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/971fe3f0ec0b529808826a32ccc3698e34421d96\"\u003e\u003ccode\u003e971fe3f\u003c/code\u003e\u003c/a\u003e fix: don't throw when a set-cookie string has no name-value-pair\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/39b7c1c5056e2b3ae25ed1e377283f2d8b318514\"\u003e\u003ccode\u003e39b7c1c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/81\"\u003e#81\u003c/a\u003e from nfriedly/dependabot/npm_and_yarn/js-yaml-4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/c3c98a490952825b633009faa617c3fe21438b85\"\u003e\u003ccode\u003ec3c98a4\u003c/code\u003e\u003c/a\u003e Bump js-yaml from 4.1.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/25a7021390b33859ebc91dc821176d7db8972661\"\u003e\u003ccode\u003e25a7021\u003c/code\u003e\u003c/a\u003e typo fix and clarity improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/185793e394bc682b49f884042eb0514a2ba7c9fc\"\u003e\u003ccode\u003e185793e\u003c/code\u003e\u003c/a\u003e 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/2f9edf18a433c7e218aef1654deb99388491b28c\"\u003e\u003ccode\u003e2f9edf1\u003c/code\u003e\u003c/a\u003e v3.1.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nfriedly/set-cookie-parser/commit/0dc9480e6da4f9554109e54ed215428cc82577fc\"\u003e\u003ccode\u003e0dc9480\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nfriedly/set-cookie-parser/issues/80\"\u003e#80\u003c/a\u003e from spokodev/fix/trim-attribute-whitespace\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nfriedly/set-cookie-parser/compare/v3.1.0...v3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sinon` from 22.0.0 to 22.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sinonjs/sinon/blob/main/CHANGES.md\"\u003esinon's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e22.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5\"\u003e\u003ccode\u003ed36e921b\u003c/code\u003e\u003c/a\u003e\nfix: let returns override returnsArg (王胜)\n\u003cblockquote\u003e\n\u003cp\u003eSigned-off-by: 王胜 \u003ca href=\"mailto:2318857637@qq.com\"\u003e2318857637@qq.com\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871\"\u003e\u003ccode\u003e40c4caa0\u003c/code\u003e\u003c/a\u003e\nfix: align restoreObject docs test with idempotent behavior (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2745\"\u003e#2745\u003c/a\u003e) (Julia Miller)\n\u003cblockquote\u003e\n\u003cp\u003erestoreObject was made idempotent in \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e — it no longer throws\nfor objects with no restorable methods. Updates the docs page\nand its corresponding test to reflect this.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab\"\u003e\u003ccode\u003ea68dac19\u003c/code\u003e\u003c/a\u003e\nfix: throw a clear error when throwArg index equals the argument count (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2743\"\u003e#2743\u003c/a\u003e) (spokodev)\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003efix: throw a clear error when throwArg index equals the argument count\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003espyCall.throwArg(pos) guarded with pos \u0026gt; this.args.length, so calling it\nwith pos equal to the number of recorded arguments slipped past the guard\nand reached throw this.args[pos], throwing undefined instead of the\nintended TypeError. A thrown undefined cannot be inspected as an Error and\nis reported by test frameworks as no exception thrown.\u003c/p\u003e\n\u003cp\u003eUse \u0026gt;= to match ensureArgs in behavior.js and the sibling callArg helpers,\nwhich already reject an out-of-range index with a clear error.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30\"\u003e\u003ccode\u003e9ea504e3\u003c/code\u003e\u003c/a\u003e\nfeat: make sinon.restoreObject idempotent (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e) (Ilia Choly)\n\u003cblockquote\u003e\n\u003cp\u003ePassing an object with no live fakes to restoreObject now restores\nnothing instead of throwing, giving it symmetry with sinon.restore()\nand sandbox.restore(). The strict \u0026quot;found no methods\u0026quot; check is retained\nfor spy(object) and stub(object), which now use a dedicated\nwalkObjectStrict export, while restoreObject uses the loose walkObject.\nPassing a falsy value still throws.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2736\"\u003e#2736\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/4db4feffe19d3f117d46b9015b4890187a282cf0\"\u003e\u003ccode\u003e4db4feff\u003c/code\u003e\u003c/a\u003e\nfix: preserve fake undefined argument validation (Vishal Kumar Singh)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/755a40d772b02a7ba7e9a1d465a5f26d486ebbdb\"\u003e\u003ccode\u003e755a40d7\u003c/code\u003e\u003c/a\u003e\nfix: isolate callId counter per sandbox for parallel test support (Vishal Kumar Singh)\n\u003cblockquote\u003e\n\u003cp\u003eThe global callId counter in proxy-invoke.js caused calledImmediatelyBefore\nand calledImmediatelyAfter to fail when tests run in parallel with separate\nsandboxes. Each sandbox now maintains its own callId counter, passed through\nthe spy/stub/fake creation chain via a context object.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eReleased by Morgan Roderick on 2026-07-20.\u003c/em\u003e\u003c/p\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/sinonjs/sinon/commit/ab289e92cdd76caf8cec2b0a8c9a391283e6c9df\"\u003e\u003ccode\u003eab289e9\u003c/code\u003e\u003c/a\u003e 22.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/bb3b75ad7422f0e2e74b10d71378598b6ea475c3\"\u003e\u003ccode\u003ebb3b75a\u003c/code\u003e\u003c/a\u003e chore: remove Jekyll steps from version hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/bb38f25179598e9306c3b8cbd76a74887e6d5836\"\u003e\u003ccode\u003ebb38f25\u003c/code\u003e\u003c/a\u003e chore: run docs tests in preversion hook\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/d36e921baf382598cfa9323cb672c87ce85e2ad5\"\u003e\u003ccode\u003ed36e921\u003c/code\u003e\u003c/a\u003e fix: let returns override returnsArg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/11db21399208b1ece7834031bbe9f86559cef79d\"\u003e\u003ccode\u003e11db213\u003c/code\u003e\u003c/a\u003e ci: run docs tests on every PR (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/40c4caa0f47b8fb184319a8873bac616c3eef871\"\u003e\u003ccode\u003e40c4caa\u003c/code\u003e\u003c/a\u003e fix: align restoreObject docs test with idempotent behavior (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2745\"\u003e#2745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/5ccb7fd4ee1556ca528b7f7168a8a5bd4cadab15\"\u003e\u003ccode\u003e5ccb7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump the action-deps group with 4 updates (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2744\"\u003e#2744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/a68dac198c6d0d9ce797dc9178d0c57ea6455aab\"\u003e\u003ccode\u003ea68dac1\u003c/code\u003e\u003c/a\u003e fix: throw a clear error when throwArg index equals the argument count (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2743\"\u003e#2743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/9ea504e317e9a27c376a9740bc04ec75f699ed30\"\u003e\u003ccode\u003e9ea504e\u003c/code\u003e\u003c/a\u003e feat: make sinon.restoreObject idempotent (\u003ca href=\"https://redirect.github.com/sinonjs/sinon/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sinonjs/sinon/commit/cf5d9e8de1a5307ed7b329b6306ee86982453db7\"\u003e\u003ccode\u003ecf5d9e8\u003c/code\u003e\u003c/a\u003e fix: remove dead link and exclude code example URLs from link check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sinonjs/sinon/compare/v22.0.0...v22.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/sinon` from 21.0.1 to 22.0.0\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/sinon\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 6.0.3 to 7.0.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/TypeScript/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~microsoft1es\"\u003emicrosoft1es\u003c/a\u003e, a new releaser for typescript since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 4.1.9 to 4.1.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vitest-dev/vitest/releases\"\u003evitest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.10\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e: Check fs access in builtin commands [backport to v4]  -  by \u003ca href=\"https://github.com/hi-ogawa\"\u003e\u003ccode\u003e@​hi-ogawa\u003c/code\u003e\u003c/a\u003e, \u003cstrong\u003eHiroshi Ogawa\u003c/strong\u003e and \u003cstrong\u003eOpenCode (claude-opus-4-8)\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10680\"\u003evitest-dev/vitest#10680\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c18dd267\"\u003e\u003c!-- raw HTML omitted --\u003e(5c18d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evm\u003c/strong\u003e: Fix external module resolve error with deps optimizer query for encoded URI [backport to v4]  -  by \u003ca href=\"https://github.com/SveLil\"\u003e\u003ccode\u003e@​SveLil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hi-ogawa\"\u003e\u003ccode\u003e@​hi-ogawa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10661\"\u003evitest-dev/vitest#10661\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bae52b511\"\u003e\u003c!-- raw HTML omitted --\u003e(bae52)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/vitest-dev/vitest/commit/db616d227b6e0cb07a94f5d1bba262ee95db7e46\"\u003e\u003ccode\u003edb616d2\u003c/code\u003e\u003c/a\u003e chore: release v4.1.10 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10718\"\u003e#10718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/bae52b5112a6fd8200101b88bf8af9685d077295\"\u003e\u003ccode\u003ebae52b5\u003c/code\u003e\u003c/a\u003e fix(vm): fix external module resolve error with deps optimizer query for enco...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.17 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-toast` from 1.2.17 to 1.2.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/toast/CHANGELOG.md\"\u003e@​radix-ui/react-toast's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eToast\u003c/code\u003e removing non-focused toasts when pressing \u003ccode\u003eEscape\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003cli\u003eCleared the close timer on unmount to prevent memory leaks and errors in test environments\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/toast\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-visually-hidden` from 1.2.6 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/visually-hidden/CHANGELOG.md\"\u003e@​radix-ui/react-visually-hidden's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/visually-hidden\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.61.1 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e@​typescript-eslint/eslint-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12552\"\u003e#12552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.64.0\u003c/h2\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport parsing \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12513\"\u003e#12513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\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/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md\"\u003e@​typescript-eslint/eslint-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.63.0 (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\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/typescript-eslint/typescript-eslint/commit/63ba81b6acfa0d663c29aa0013d4672bf3b0426c\"\u003e\u003ccode\u003e63ba81b\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.65.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/aa602bdf3f2dd460069da4f82d8acf41a7f938b8\"\u003e\u003ccode\u003eaa602bd\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [no-unnecessary-parameter-property-assignment] don't flag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/1e90d6733210f550697a062b1e79cb49ce2880e6\"\u003e\u003ccode\u003e1e90d67\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-shadow] specialized error on enum declaration and me...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/b32fb34305f685254059b8ceaf8bec15b1f1f77e\"\u003e\u003ccode\u003eb32fb34\u003c/code\u003e\u003c/a\u003e docs: fix broken code samples in no-extraneous-class and prefer-function-type...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/eaf457631ac381aadfee747c2d098c8ac4df9d63\"\u003e\u003ccode\u003eeaf4576\u003c/code\u003e\u003c/a\u003e feat: add warning when TS 7 is detected (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/18c01c7049e55aa346d84c06bd03d8e9daf48343\"\u003e\u003ccode\u003e18c01c7\u003c/code\u003e\u003c/a\u003e feat(eslint-plugin): [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12527\"\u003e#12527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/96e8fe25587a6e83a7a1cd957132a2e02b451b4b\"\u003e\u003ccode\u003e96e8fe2\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [unbound-method] report unbound methods accessed via memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/0d06406f3181f063041dbd1621d71984127ddae1\"\u003e\u003ccode\u003e0d06406\u003c/code\u003e\u003c/a\u003e chore: add attw validation to repo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12437\"\u003e#12437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/9d9973bb181a413187468a95f84f86d9998b0658\"\u003e\u003ccode\u003e9d9973b\u003c/code\u003e\u003c/a\u003e fix(eslint-plugin): [prefer-string-starts-ends-with] handle escaped $ ending ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c2386e49ec6347aa92d53a1f32143ca45984cc13\"\u003e\u003ccode\u003ec2386e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency prettier to v3.9.5 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12486\"\u003e#12486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@typescript-eslint/parser` from 8.61.1 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003e@​typescript-eslint/parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12552\"\u003e#12552\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-string-starts-ends-with] handle escaped $ ending regex literals (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12515\"\u003e#12515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [unbound-method] report unbound methods accessed via member expression on union types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12448\"\u003e#12448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-parameter-property-assignment] don't flag computed assignments with a variable key (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12568\"\u003e#12568\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerhii Leniv \u003ca href=\"https://github.com/Serhii-Leniv\"\u003e\u003ccode\u003e@​Serhii-Leniv\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.64.0\u003c/h2\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport parsing \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12513\"\u003e#12513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-loop-func] support \u003ccode\u003eusing\u003c/code\u003e / \u003ccode\u003eawait using\u003c/code\u003e declarations and deprecate the rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12500\"\u003e#12500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid definite assignment in class properties (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12543\"\u003e#12543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] handle constrained arrays (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12512\"\u003e#12512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\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/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md\"\u003e@​typescript-eslint/parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e송재욱\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.65.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.64.0 (2026-07-13)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.64.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.63.0 (2026-07-06)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.63.0\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.62.1 (2026-06-29)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for parser to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.62.0 (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove redundant package.json \u0026quot;files\u0026quot; (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444\"\u003e#12444\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\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/typescript-eslint/typescript-eslint/commit/63ba81b6acfa0d663c29aa0013d4672bf3b0426c\"\u003e\u003ccode\u003e63ba81b\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.65.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/eaf457631ac381aadfee747c2d098c8ac4df9d63\"\u003e\u003ccode\u003eeaf4576\u003c/code\u003e\u003c/a\u003e feat: add warning when TS 7 is detected (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/d8f1044702e3257ee92c0af6681c1455563009db\"\u003e\u003ccode\u003ed8f1044\u003c/code\u003e\u003c/a\u003e feat(parser): add onUnsupportedTypeScriptVersion option to error on unsupport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/0d06406f3181f063041dbd1621d71984127ddae1\"\u003e\u003ccode\u003e0d06406\u003c/code\u003e\u003c/a\u003e chore: add attw validation to repo (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12437\"\u003e#12437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/c2386e49ec6347aa92d53a1f32143ca45984cc13\"\u003e\u003ccode\u003ec2386e4\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency prettier to v3.9.5 (\u003ca href=\"https://github.com/typescript-esli...\n\n_Description has been truncated_","html_url":"https://github.com/RawshanSinde/Alikhan-S4.6/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawshanSinde%2FAlikhan-S4.6/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"}},{"old_version":"23.7.6","new_version":"26.3.6","update_type":"major","path":"/enatega-multivendor-restaurant","pr_created_at":"2026-08-03T20:13:27.000Z","version_change":"23.7.6 → 26.3.6","issue":{"uuid":"5053823031","node_id":"PR_kwDOMrheo876NC5f","number":1986,"state":"closed","title":"Bump i18next from 23.7.6 to 26.3.6 in /enatega-multivendor-restaurant","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T19:12:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T20:13:27.000Z","updated_at":"2026-08-07T19:12:14.000Z","time_to_close":341917,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"23.7.6","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/enatega-multivendor-restaurant","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 23.7.6 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v23.7.6...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=23.7.6\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/patriciaperez90/flutter-food-delivery-app-clone/pull/1986","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patriciaperez90%2Fflutter-food-delivery-app-clone/issues/1986","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1986/packages"}},{"old_version":"25.8.0","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-03T16:14:07.000Z","version_change":"25.8.0 → 26.3.6","issue":{"uuid":"5051872350","node_id":"PR_kwDOS9XEDs76GtVB","number":18,"state":"closed","title":"chore(deps): bump the version-all group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T16:09:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T16:14:07.000Z","updated_at":"2026-08-07T16:09:24.000Z","time_to_close":345312,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":42,"packages":[{"name":"@heroui/react","old_version":"2.8.7","new_version":"3.2.3","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.27.1","new_version":"1.31.25","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.90.20","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.15.2","new_version":"1.19.0","repository_url":"https://github.com/axios/axios"},{"name":"downshift","old_version":"9.0.13","new_version":"9.4.0","repository_url":"https://github.com/downshift-js/downshift"},{"name":"framer-motion","old_version":"12.29.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.8.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-browser-languagedetector","old_version":"8.2.0","new_version":"8.2.1","repository_url":"https://github.com/i18next/i18next-browser-languageDetector"},{"name":"i18next-http-backend","old_version":"3.0.2","new_version":"4.0.1","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.1.34","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lucide-react","old_version":"0.562.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.335.3","new_version":"1.409.5","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.10","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"19.2.3","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-i18next","old_version":"16.5.3","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-icons","old_version":"5.5.0","new_version":"5.7.0","repository_url":"https://github.com/react-icons/react-icons"},{"name":"react-router","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"react-syntax-highlighter","old_version":"16.1.0","new_version":"16.1.1","repository_url":"https://github.com/react-syntax-highlighter/react-syntax-highlighter"},{"name":"tailwind-merge","old_version":"3.4.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"vite","old_version":"7.3.2","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"zustand","old_version":"5.0.10","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@playwright/test","old_version":"1.58.0","new_version":"1.62.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"7.13.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/typography","old_version":"0.5.19","new_version":"0.5.20","repository_url":"https://github.com/tailwindlabs/tailwindcss-typography"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"25.0.10","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"4.0.18","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"jsdom","old_version":"27.4.0","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"16.2.7","new_version":"17.3.0","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"msw","old_version":"2.12.7","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite-plugin-svgr","old_version":"4.5.0","new_version":"5.2.0","repository_url":"https://github.com/pd4d10/vite-plugin-svgr"},{"name":"vite-tsconfig-paths","old_version":"6.0.5","new_version":"6.1.1","repository_url":"https://github.com/aleclarson/vite-tsconfig-paths"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 39 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `2.8.7` | `3.2.3` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.27.1` | `1.31.25` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `7.13.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `7.13.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.1.18` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.20` | `5.101.4` |\n| [axios](https://github.com/axios/axios) | `1.15.2` | `1.19.0` |\n| [downshift](https://github.com/downshift-js/downshift) | `9.0.13` | `9.4.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.29.2` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.8.0` | `26.3.6` |\n| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.2.0` | `8.2.1` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.2` | `4.0.1` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.1.34` | `5.2.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.562.0` | `1.28.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.335.3` | `1.409.5` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.10` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.4` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.5.3` | `17.0.11` |\n| [react-icons](https://github.com/react-icons/react-icons) | `5.5.0` | `5.7.0` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.13.0` | `8.3.0` |\n| [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) | `16.1.0` | `16.1.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.4.0` | `3.6.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.2` | `8.2.0` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.10` | `5.0.14` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.58.0` | `1.62.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `7.13.0` | `8.3.0` |\n| [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) | `0.5.19` | `0.5.20` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.10` | `26.1.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.18` | `4.1.10` |\n| [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `30.0.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `17.3.0` |\n| [msw](https://github.com/mswjs/msw) | `2.12.7` | `2.15.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) | `4.5.0` | `5.2.0` |\n| [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) | `6.0.5` | `6.1.1` |\n\n\nUpdates `@heroui/react` from 2.8.7 to 3.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/h2\u003e\n\u003ch2\u003eIntroducing HeroUI v3\u003c/h2\u003e\n\u003cp\u003eA complete rewrite for React. A brand-new library for React Native.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOne design system. Beautiful everywhere.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e🌐 \u003cstrong\u003eWeb\u003c/strong\u003e → 75+ components, 21 new\n📱 \u003cstrong\u003eNative\u003c/strong\u003e → 37+ components, built from scratch\n🎨 \u003cstrong\u003eStyling\u003c/strong\u003e → Tailwind CSS v4, CSS variables, OKLCH, BEM\n⚡ \u003cstrong\u003ePerformance\u003c/strong\u003e → CSS animations, no JS runtime\n♿ \u003cstrong\u003eAccessibility\u003c/strong\u003e → React Aria Components\n✨ \u003cstrong\u003eArchitecture\u003c/strong\u003e → Compound components, fully customizable, headless-ready\n🤖 \u003cstrong\u003eAI\u003c/strong\u003e → MCP Server, Agent Skills, LLMs.txt\n📎 \u003cstrong\u003eFigma Kit v3\u003c/strong\u003e with 1:1 component parity\u003c/p\u003e\n\u003cp\u003eEvery component rewritten. Every animation moved to CSS. Styles decoupled from implementation. And tooling that treats AI assistants as a first-class dev interface.\u003c/p\u003e\n\u003cp\u003e🔗 Post/Tweet → \u003ca href=\"https://x.com/hero_ui/status/2035353807735976374\"\u003ehttps://x.com/hero_ui/status/2035353807735976374\u003c/a\u003e\n📋 Release Notes → \u003ca href=\"https://heroui.com/docs/react/releases/v3-0-0\"\u003ehttps://heroui.com/docs/react/releases/v3-0-0\u003c/a\u003e\n🌐 Docs → \u003ca href=\"https://heroui.com/docs/react/getting-started/quick-start\"\u003ehttps://heroui.com/docs/react/getting-started/quick-start\u003c/a\u003e\n📱 Native Docs → \u003ca href=\"https://heroui.com/docs/native/getting-started/quick-start\"\u003ehttps://heroui.com/docs/native/getting-started/quick-start\u003c/a\u003e\n🖼️ Figma Kit → \u003ca href=\"https://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\"\u003ehttps://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA huge thank you to everyone who used the alpha and beta versions — your bug reports, feedback, and patience helped us find and fix issues that made v3 stable. This release wouldn't be the same without you ❤️\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(use-draggable): persist transform position across renders by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6287\"\u003eheroui-inc/heroui#6287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(select): scroll to selected item when reopening dropdown by \u003ca href=\"https://github.com/deepansh946\"\u003e\u003ccode\u003e@​deepansh946\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6269\"\u003eheroui-inc/heroui#6269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump react-aria versions (release v1.16.0) by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6281\"\u003eheroui-inc/heroui#6281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): typo in AutocompleteItem by \u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): broken example in autocomplete by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6292\"\u003eheroui-inc/heroui#6292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6288\"\u003eheroui-inc/heroui#6288\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/@heroui/react@2.8.9...@heroui/react@2.8.10\"\u003ehttps://github.com/heroui-inc/heroui/compare/@​heroui/react@2.8.9...@​heroui/react@2.8.10\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(system-rsc): extendVariants rendering behavior with as by \u003ca href=\"https://github.com/ITBoomBKStudio\"\u003e\u003ccode\u003e@​ITBoomBKStudio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6215\"\u003eheroui-inc/heroui#6215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump RA dependencies by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6221\"\u003eheroui-inc/heroui#6221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(button): correct disableRipple prop precedence by \u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6227\"\u003eheroui-inc/heroui#6227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\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/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md\"\u003e@​heroui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003c/h1\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eREADME updated\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ev3.0.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b2b19129ec5ae7bcd432bcd89f78c4c25c7ee9ae\"\u003e\u003ccode\u003eb2b1912\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e! - Types fixed and removed needless folders from dist\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTypes fixed and removed needless folders from dist\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet up alpha prerelease configuration to ensure v3 remains in alpha status and prevent accidental release of v3.0.0 stable version\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/heroui-inc/heroui/commit/b5f7ab728150f4adbb984c72c684fac65989fd30\"\u003e\u003ccode\u003eb5f7ab7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/014eeba28dfbb18263770f876d74f3096c49171e\"\u003e\u003ccode\u003e014eeba\u003c/code\u003e\u003c/a\u003e V3.2.3 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6708\"\u003e#6708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/6fa6b81f767f138f2e8665bf3dffd5209e2c1c8d\"\u003e\u003ccode\u003e6fa6b81\u003c/code\u003e\u003c/a\u003e fix(combo-box): custom indicator demo (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6728\"\u003e#6728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​heroui/react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.27.1 to 1.31.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.1.1 to 30.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/192\"\u003emicrolinkhq/react-json-view#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.101.7 to 1.102.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/193\"\u003emicrolinkhq/react-json-view#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.24...v1.31.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.108.4 to 5.109.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/191\"\u003emicrolinkhq/react-json-view#191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.23...v1.31.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/188\"\u003emicrolinkhq/react-json-view#188\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.1.2 to 22.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/166\"\u003emicrolinkhq/react-json-view#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass-loader from 16.0.8 to 17.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/167\"\u003emicrolinkhq/react-json-view#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.106.2 to 5.107.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/168\"\u003emicrolinkhq/react-json-view#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.99.0 to 1.100.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/169\"\u003emicrolinkhq/react-json-view#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/plugin-syntax-jsx\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/170\"\u003emicrolinkhq/react-json-view#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/eslint-parser\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/171\"\u003emicrolinkhq/react-json-view#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.29.3 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/172\"\u003emicrolinkhq/react-json-view#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.100.0 to 1.101.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/173\"\u003emicrolinkhq/react-json-view#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/183\"\u003emicrolinkhq/react-json-view#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.107.2 to 5.108.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/187\"\u003emicrolinkhq/react-json-view#187\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.28.6 to 7.29.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/165\"\u003emicrolinkhq/react-json-view#165\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.25 (2026-07-27)\u003c/h2\u003e\n\u003ch2\u003e1.31.24 (2026-07-24)\u003c/h2\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\u003e\n\u003ch2\u003e1.31.22 (2026-07-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.21 (2026-07-01)\u003c/h2\u003e\n\u003ch2\u003e1.31.20 (2026-05-02)\u003c/h2\u003e\n\u003ch2\u003e1.31.19 (2026-04-28)\u003c/h2\u003e\n\u003ch2\u003e1.31.18 (2026-04-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.17 (2026-04-09)\u003c/h2\u003e\n\u003ch2\u003e1.31.16 (2026-04-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.15 (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003e1.31.14 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.13 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.12 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.11 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.10 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.9 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.8 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.7 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.6 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.5 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.4 (2026-03-08)\u003c/h2\u003e\n\u003ch2\u003e1.31.3 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.2 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.1 (2026-03-05)\u003c/h2\u003e\n\u003ch2\u003e1.31.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types field to package.json (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2e6320af1cb709536355218c79357842dd64d900\"\u003e2e6320a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edev server:\u003c/strong\u003e add example of name as jsx element (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84ada17617ad1df0e748e5cf6383f9cdcefa6e02\"\u003e84ada17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance VariableEditor to support BigNumber type handling (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/98d2d1e508f7121f46c2513435949a69454a75bf\"\u003e98d2d1e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add handling namespace when is an react object (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e11b60af87fa1755554cb5c846d1d49ea12d131e\"\u003ee11b60a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eshow comma option (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/bdb39074635ee84cb2b2d18e7e5f746ae9b0883f\"\u003ebdb3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger onSelect when clicking keys (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6db9f85e3dc4a7d2ad6a04414f498d49201de284\"\u003e6db9f85\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e add JSX.Element as name prop type (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/ebd8aed8246742ebc41776a8a0bb489b8e711138\"\u003eebd8aed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e优化 rjvId 生成方式，添加随机字符串增加唯一性 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6d85757b6e51ddb9c7cbf4f99c9688cf965bd90f\"\u003e6d85757\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaction config (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e150a8a91dc655e583bc43939b0a64affa0c3bdd\"\u003ee150a8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd back build step (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0ddc2293be9edb60067065e4a1a0603dbcfcf05a\"\u003e0ddc229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd legacy ssl flag (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/4005834bb4234ddfdef66f2173a53a686641cb21\"\u003e4005834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd missed devDeps in new create-react-app (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/5275cd446f7d4202b06f4a0d048092066a6b5f5b\"\u003e5275cd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutosizeTextarea \u003ccode\u003eref\u003c/code\u003e prop (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84b8110b3ee2872ce937439f02275645fb7d17a9\"\u003e84b8110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix toggleCollapsed handling sparse arrays (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/656e2d0dda5c77cd89b3b86c8487b0fb1000d7d5\"\u003e656e2d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efunction call (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/86bbd60caef8d80b812a45c8ea9326df62fcb02f\"\u003e86bbd60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add support for functional components (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/f478f55aa2b9dbe730f9638485d9c584ccbbcc45\"\u003ef478f55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emissing quotesOnKeys props in TS typings (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/25f5205f78663a37610295268bf3f7c669592681\"\u003e25f5205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unnecessary CSS (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/990cf94da62202912baca7d1c5584daf9521a092\"\u003e990cf94\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/microlinkhq/react-json-view/commit/ca343dc1158051f64556b713a63caac2f2ac2290\"\u003e\u003ccode\u003eca343dc\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/06435066ca789cd79d8a809804a5933dc3b7783a\"\u003e\u003ccode\u003e0643506\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.101.7 to 1.102.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0c1c80f0e6b7c38e1b6f438bd4ad8358b63a0e61\"\u003e\u003ccode\u003e0c1c80f\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump jsdom from 29.1.1 to 30.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/78b335c496e5364a8cf56bf683b60427f7385a70\"\u003e\u003ccode\u003e78b335c\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/1907a5076e247bacd9f4d1f1fc73b6a445117019\"\u003e\u003ccode\u003e1907a50\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.108.4 to 5.109.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2580eedd49b56e86406941709ee48394c976cc00\"\u003e\u003ccode\u003e2580eed\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/53771e8b975f8731be9453fac2281bf6fb23a6ff\"\u003e\u003ccode\u003e53771e8\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.27.1...v1.31.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 7.13.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.16.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump dependencies (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15106\"\u003e#15106\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eBumped \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e from \u003ccode\u003e^0.13.0\u003c/code\u003e to \u003ccode\u003e^0.13.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.0\"\u003e\u003ccode\u003ereact-router@8.0.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@7.18.0\"\u003e\u003ccode\u003ereact-router@7.18.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/fdd896aadb1c470db358b4d9fe76fb53c9325f21\"\u003e\u003ccode\u003efdd896a\u003c/code\u003e\u003c/a\u003e Add tsconfigs for test files (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 7.13.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.17.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.16.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7160\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.15.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.14.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.13.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.2.0\"\u003e\u003ccode\u003e@react-router/express@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.2.0\"\u003e\u003ccode\u003e@react-router/node@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse Node's built-in networking APIs to find an available port and remove the \u003ccode\u003eget-port\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.1.0\"\u003e\u003ccode\u003e@react-router/express@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.1.0\"\u003e\u003ccode\u003e@react-router/node@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.0.1\"\u003e\u003ccode\u003e@react-router/express@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.0.1\"\u003e\u003ccode\u003e@react-router/node@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003eexpress\u003c/code\u003e from \u003ccode\u003e4.21.2\u003c/code\u003e to \u003ccode\u003e5.2.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/aa35115b85345df2bc640475a57e1b1125a8dae6\"\u003e\u003ccode\u003eaa35115\u003c/code\u003e\u003c/a\u003e Prep 8.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/6db7409d287763b625a15ba31418416c4dc25035\"\u003e\u003ccode\u003e6db7409\u003c/code\u003e\u003c/a\u003e Remove small runtime CLI dependencies (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/c89079321dc0740d7ac690f8b024824a150f90c5\"\u003e\u003ccode\u003ec890793\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.1.18 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edrop-shadow-*\u003c/code\u003e color utilities work with custom shadow values containing \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080\"\u003e#20080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 'Sourcemap is likely to be incorrect' warnings when using \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103\"\u003e#20103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/webpack\u003c/code\u003e can be installed in Rspack projects without requiring \u003ccode\u003ewebpack\u003c/code\u003e as a peer dependency (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027\"\u003e#20027\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.2] - 2026-06-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.1] - 2026-06-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f\"\u003e\u003ccode\u003e056a155\u003c/code\u003e\u003c/a\u003e 4.3.2 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20281\"\u003e#20281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bb6a10937c7e1434db39919fbb4df4a8982dba7f\"\u003e\u003ccode\u003ebb6a109\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003e.ts\u003c/code\u003e instead of \u003ccode\u003e.css\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9\"\u003e\u003ccode\u003e8a14a71\u003c/code\u003e\u003c/a\u003e 4.3.1 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20226\"\u003e#20226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/73983e1cf5bc0ae721f4568cc24a5b5067b6b90b\"\u003e\u003ccode\u003e73983e1\u003c/code\u003e\u003c/a\u003e Fix 'Sourcemap is likely to be incorrect' warnings when using `@tailwindcss/v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9\"\u003e\u003ccode\u003e588bd73\u003c/code\u003e\u003c/a\u003e 4.3.0 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20023\"\u003e#20023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd\"\u003e\u003ccode\u003ed194d4c\u003c/code\u003e\u003c/a\u003e docs: fix various typos in comments and documentation (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19878\"\u003e#19878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/db27049caaae08978995f25b61f8336f543a4640\"\u003e\u003ccode\u003edb27049\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e): include \u003ca href=\"https://github.com/variant\"\u003e\u003ccode\u003e@​variant\u003c/code\u003e\u003c/a\u003e in feature detection (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19966\"\u003e#19966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5a799900d4b43ca4902398a38c6f0a5b37a98ed9\"\u003e\u003ccode\u003e5a79990\u003c/code\u003e\u003c/a\u003e Always resolve relative files, relative to the current .css file (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19965\"\u003e#19965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.90.20 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/mohith266/openhands/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohith266%2Fopenhands/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"25.5.2","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-08-03T13:32:04.000Z","version_change":"25.5.2 → 26.3.6","issue":{"uuid":"5050355903","node_id":"PR_kwDOTskPQc76ByGo","number":6,"state":"open","title":"chore(deps): bump the frontend-deps group with 54 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-03T13:32:04.000Z","updated_at":"2026-08-03T13:32:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"frontend-deps","update_count":54,"packages":[{"name":"@codemirror/lang-javascript","old_version":"6.2.4","new_version":"6.2.5","repository_url":"https://github.com/codemirror/lang-javascript"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/lint","old_version":"6.8.5","new_version":"6.9.7","repository_url":"https://github.com/codemirror/lint"},{"name":"@codemirror/state","old_version":"6.5.2","new_version":"6.7.1","repository_url":"https://github.com/codemirror/state"},{"name":"@codemirror/view","old_version":"6.38.2","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@hookform/resolvers","old_version":"5.2.2","new_version":"5.5.7","repository_url":"https://github.com/react-hook-form/resolvers"},{"name":"@radix-ui/react-accordion","old_version":"1.2.12","new_version":"1.2.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-checkbox","old_version":"1.3.3","new_version":"1.3.11","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-collapsible","old_version":"1.1.12","new_version":"1.1.20","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dialog","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-dropdown-menu","old_version":"2.1.16","new_version":"2.1.24","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-label","old_version":"2.1.7","new_version":"2.1.15","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-popover","old_version":"1.1.15","new_version":"1.1.23","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-scroll-area","old_version":"1.2.10","new_version":"1.2.18","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-select","old_version":"2.2.6","new_version":"2.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-slot","old_version":"1.2.4","new_version":"1.3.3","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-switch","old_version":"1.2.6","new_version":"1.3.7","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tabs","old_version":"1.1.13","new_version":"1.1.21","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@radix-ui/react-tooltip","old_version":"1.2.8","new_version":"1.2.16","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@tanstack/react-query","old_version":"5.90.3","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.13.23","new_version":"3.14.9","repository_url":"https://github.com/TanStack/virtual"},{"name":"@tauri-apps/api","old_version":"2.8.0","new_version":"2.11.1","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@tauri-apps/plugin-dialog","old_version":"2.4.0","new_version":"2.7.2","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-log","old_version":"2.8.0","new_version":"2.9.0","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-process","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"@tauri-apps/plugin-updater","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/tauri-apps/plugins-workspace"},{"name":"framer-motion","old_version":"12.23.25","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.5.2","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"lucide-react","old_version":"0.542.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"react","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"18.3.23","new_version":"19.2.18","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"18.3.1","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react-dom","old_version":"18.3.7","new_version":"19.2.4","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-hook-form","old_version":"7.65.0","new_version":"7.83.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"react-i18next","old_version":"16.0.0","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"recharts","old_version":"3.5.1","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"smol-toml","old_version":"1.4.2","new_version":"1.7.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"tailwind-merge","old_version":"3.3.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"zod","old_version":"4.1.12","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"@tauri-apps/cli","old_version":"2.8.1","new_version":"2.11.4","repository_url":"https://github.com/tauri-apps/tauri"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@testing-library/react","old_version":"16.3.0","new_version":"16.3.2","repository_url":"https://github.com/testing-library/react-testing-library"},{"name":"@types/node","old_version":"20.19.9","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.5","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"autoprefixer","old_version":"10.4.22","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"code-inspector-plugin","old_version":"1.3.3","new_version":"2.0.7","repository_url":"https://github.com/zh-lx/code-inspector"},{"name":"jsdom","old_version":"25.0.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"2.11.6","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"postcss","old_version":"8.5.6","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"prettier","old_version":"3.6.2","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"3.4.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.2","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite","old_version":"7.3.0","new_version":"8.2.0","repository_url":"https://github.com/vitejs/vite"},{"name":"vitest","old_version":"2.1.9","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the frontend-deps group with 54 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@codemirror/lang-javascript](https://github.com/codemirror/lang-javascript) | `6.2.4` | `6.2.5` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/lint](https://github.com/codemirror/lint) | `6.8.5` | `6.9.7` |\n| [@codemirror/state](https://github.com/codemirror/state) | `6.5.2` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.38.2` | `6.43.7` |\n| [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.2.2` | `5.5.7` |\n| [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` |\n| [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.3` | `1.3.11` |\n| [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` |\n| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.16` | `2.1.24` |\n| [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` |\n| [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` |\n| [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.10` | `1.2.18` |\n| [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.6` | `2.3.7` |\n| [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.4` | `1.3.3` |\n| [@radix-ui/react-switch](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/switch) | `1.2.6` | `1.3.7` |\n| [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.13` | `1.1.21` |\n| [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.8` | `1.2.16` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.3` | `5.101.4` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.13.23` | `3.14.9` |\n| [@tauri-apps/api](https://github.com/tauri-apps/tauri) | `2.8.0` | `2.11.1` |\n| [@tauri-apps/plugin-dialog](https://github.com/tauri-apps/plugins-workspace) | `2.4.0` | `2.7.2` |\n| [@tauri-apps/plugin-log](https://github.com/tauri-apps/plugins-workspace) | `2.8.0` | `2.9.0` |\n| [@tauri-apps/plugin-process](https://github.com/tauri-apps/plugins-workspace) | `2.3.0` | `2.3.1` |\n| [@tauri-apps/plugin-updater](https://github.com/tauri-apps/plugins-workspace) | `2.9.0` | `2.10.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.23.25` | `12.43.0` |\n| [i18next](https://github.com/i18next/i18next) | `25.5.2` | `26.3.6` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.542.0` | `1.28.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `18.3.1` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.23` | `19.2.18` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.2.8` |\n| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `18.3.7` | `19.2.4` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.83.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.0.0` | `17.0.11` |\n| [recharts](https://github.com/recharts/recharts) | `3.5.1` | `3.10.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.4.2` | `1.7.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.6.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.1.12` | `4.4.3` |\n| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `2.8.1` | `2.11.4` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.0` | `16.3.2` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.9` | `26.1.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.5` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.22` | `10.5.4` |\n| [code-inspector-plugin](https://github.com/zh-lx/code-inspector) | `1.3.3` | `2.0.7` |\n| [jsdom](https://github.com/jsdom/jsdom) | `25.0.1` | `30.0.1` |\n| [msw](https://github.com/mswjs/msw) | `2.11.6` | `2.15.0` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.6` | `8.5.25` |\n| [prettier](https://github.com/prettier/prettier) | `3.6.2` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `7.0.2` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.0` | `8.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `2.1.9` | `4.1.10` |\n\nUpdates `@codemirror/lang-javascript` from 6.2.4 to 6.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lang-javascript/blob/main/CHANGELOG.md\"\u003e@​codemirror/lang-javascript's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eSupport code folding of JSX elements and tags.\u003c/p\u003e\n\u003cp\u003eWhen reading properties in \u003ccode\u003escopeCompletionSource\u003c/code\u003e, use the original object, not a prototype.\u003c/p\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/codemirror/lang-javascript/commit/a202a000e8d3d107d1c340db933d9f09a828308a\"\u003e\u003ccode\u003ea202a00\u003c/code\u003e\u003c/a\u003e Mark version 6.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/190b567c8066a4383826b9a32e3a53f3ed01e442\"\u003e\u003ccode\u003e190b567\u003c/code\u003e\u003c/a\u003e Fix missing inherited getters in enumeratePropertyCompletions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/a94cdcb88454738842564881d6980502f0bfc784\"\u003e\u003ccode\u003ea94cdcb\u003c/code\u003e\u003c/a\u003e Add folding for JSX elements and tags\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codemirror/lang-javascript/commit/78a85210d83c41bef23c222425f2ebf3d4353e2d\"\u003e\u003ccode\u003e78a8521\u003c/code\u003e\u003c/a\u003e Use git+https format for package.json repository field\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-javascript/compare/6.2.4...6.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lint` from 6.8.5 to 6.9.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/lint/blob/main/CHANGELOG.md\"\u003e@​codemirror/lint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.9.5 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eUse more appropriate background colors for the selected diagnostic in dark mode.\u003c/p\u003e\n\u003ch2\u003e6.9.4 (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake sure \u003ccode\u003enextDiagnostic\u003c/code\u003e selects entire diagnostics, even when they overlap with other diagnostics.\u003c/p\u003e\n\u003ch2\u003e6.9.3 (2026-01-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where the lint panel inappropriately blocks the default behavior of key combinations with Ctrl, Alt, or Cmd held.\u003c/p\u003e\n\u003ch2\u003e6.9.2 (2025-11-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an infinite loop that would occur when a diagnostic pointed beyond the end of the document.\u003c/p\u003e\n\u003ch2\u003e6.9.1 (2025-10-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eProperly display diagnostics that just cover multiple newlines as widgets.\u003c/p\u003e\n\u003ch2\u003e6.9.0 (2025-10-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMultiple configurations to \u003ccode\u003elinter\u003c/code\u003e will now be merged without raising an error.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003emarkClass\u003c/code\u003e option to actions makes it possible to style action buttons.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lint/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.5.2 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/state/blob/main/CHANGELOG.md\"\u003e@​codemirror/state's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eEditorSelection.range\u003c/code\u003e now takes an optional \u003ccode\u003eassoc\u003c/code\u003e argument.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSelectionRange.extend\u003c/code\u003e can now be given a third argument to specify associativity.\u003c/p\u003e\n\u003ch2\u003e6.5.4 (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eMake \u003ccode\u003eSelectionRange.eq\u003c/code\u003e return false when the ranges have different goal columns.\u003c/p\u003e\n\u003ch2\u003e6.5.3 (2025-12-22)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eRangeValue.eq\u003c/code\u003e could get called with a value of a different class.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eEditorState.charCategorizer\u003c/code\u003e now only uses the highest-precedence set of word characters from the language data, to allow overriding these.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.38.2 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codemirror/view/blob/main/CHANGELOG.md\"\u003e@​codemirror/view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.41.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.posAtCoords\u003c/code\u003e could incorrectly return a position near a higher element on the line, in mixed-font-size lines.\u003c/p\u003e\n\u003cp\u003eExpand the workaround for the Webkit bug that causes nonexistent selections to stay visible to be active on non-Safari Webkit browsers.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eEditorView.cursorScrollMargin\u003c/code\u003e facet can now be used to configure the extra space used when scrolling the cursor into view.\u003c/p\u003e\n\u003ch2\u003e6.40.0 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eFix a bug that caused Shift-Enter/Backspace/Delete on iOS to lose the shift modifier when delivered to key event handlers.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eEditorView.moveVertically\u003c/code\u003e could move to the wrong place in wrapped lines with a large line height.\u003c/p\u003e\n\u003cp\u003eMake sure the selection head associativity is properly set for mouse selections made with shift held down.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eWidgetType.updateDOM\u003c/code\u003e is now called with the previous widget value as third argument.\u003c/p\u003e\n\u003ch2\u003e6.39.17 (2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003eImprove touch tap-selection on line wrapping boundaries.\u003c/p\u003e\n\u003cp\u003eMake \u003ccode\u003edrawSelection\u003c/code\u003e draw our own selection handles on iOS.\u003c/p\u003e\n\u003cp\u003eFix an issue where \u003ccode\u003eposAtCoords\u003c/code\u003e, when querying line wrapping points, got confused by extra empty client rectangles produced by Safari.\u003c/p\u003e\n\u003ch2\u003e6.39.16 (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cp\u003ePerform scroll stabilization on the document or wrapping scrollable elements, when the user scrolls the editor.\u003c/p\u003e\n\u003cp\u003eFix an issue where changing decorations right before a composition could end up corrupting the visible DOM.\u003c/p\u003e\n\u003cp\u003eFix an issue where some types of text input over a selection would be read as happening in wrong position.\u003c/p\u003e\n\u003ch2\u003e6.39.15 (2026-02-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\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\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@hookform/resolvers` from 5.2.2 to 5.5.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react-hook-form/resolvers/releases\"\u003e@​hookform/resolvers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.6...v5.5.7\"\u003e5.5.7\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003enpm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4.3 and valibot versions (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/865\"\u003e#865\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e722ef6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.5...v5.5.6\"\u003e5.5.6\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodule not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e8df10b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.4...v5.5.5\"\u003e5.5.5\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eyup resolver overrides ref property in errors object with validation metadata when using checkbox input (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/863\"\u003e#863\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0f70063beb28496ffac0b5345d75826a077934ee\"\u003e0f70063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.3...v5.5.4\"\u003e5.5.4\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAJV Resolver - When ajv schema contains default for certain properties, getValues() returns the form data with properties overwritten (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/862\"\u003e#862\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/c4b6aab69c64b7a3ea95223552a7996e741aea39\"\u003ec4b6aab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.2...v5.5.3\"\u003e5.5.3\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConditional/dynamic schema resolution no longer working (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/861\"\u003e#861\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/f8d653319cedece2063140378b6d61e77bcf57b0\"\u003ef8d6533\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.1...v5.5.2\"\u003e5.5.2\u003c/a\u003e (2026-07-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eZod v4 locale and global error customization not picked up (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/860\"\u003e#860\u003c/a\u003e) (\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2126efc6e8d9325c18413534a651f7fee22ce8c8\"\u003e2126efc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.5.0...v5.5.1\"\u003e5.5.1\u003c/a\u003e (2026-07-25)\u003c/h2\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/react-hook-form/resolvers/commit/722ef6e42eb29718763a66cfea91fe79e9cae081\"\u003e\u003ccode\u003e722ef6e\u003c/code\u003e\u003c/a\u003e fix: npm install fails with ERESOLVE conflict between \u003ccode\u003e@​hookform/resolvers\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/8df10b070bb9995920424448ea824981c511abc3\"\u003e\u003ccode\u003e8df10b0\u003c/code\u003e\u003c/a\u003e fix: module not found when importing zodResolver under Zod v3 (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/75f2dcd4fb5b0723b4d46c3afd3d0a5bd5e1783f\"\u003e\u003ccode\u003e75f2dcd\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/773\"\u003e#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0d2bdbf5c5d164d609273c2585f92057f70db695\"\u003e\u003ccode\u003e0d2bdbf\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0f70063beb28496ffac0b5345d75826a077934ee\"\u003e\u003ccode\u003e0f70063\u003c/code\u003e\u003c/a\u003e fix: yup resolver overrides ref property in errors object with validation met...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/c4b6aab69c64b7a3ea95223552a7996e741aea39\"\u003e\u003ccode\u003ec4b6aab\u003c/code\u003e\u003c/a\u003e fix: AJV Resolver - When ajv schema contains default for certain properties, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/e2a8d16b92df8545025dc63472ed69f930b60c37\"\u003e\u003ccode\u003ee2a8d16\u003c/code\u003e\u003c/a\u003e close \u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/760\"\u003e#760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/f8d653319cedece2063140378b6d61e77bcf57b0\"\u003e\u003ccode\u003ef8d6533\u003c/code\u003e\u003c/a\u003e fix: Conditional/dynamic schema resolution no longer working (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/2126efc6e8d9325c18413534a651f7fee22ce8c8\"\u003e\u003ccode\u003e2126efc\u003c/code\u003e\u003c/a\u003e fix: Zod v4 locale and global error customization not picked up (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/860\"\u003e#860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react-hook-form/resolvers/commit/0721f880667aba432fb84187fec0f5f1960109bd\"\u003e\u003ccode\u003e0721f88\u003c/code\u003e\u003c/a\u003e add unit test (\u003ca href=\"https://redirect.github.com/react-hook-form/resolvers/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/react-hook-form/resolvers/compare/v5.2.2...v5.5.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md\"\u003e@​radix-ui/react-accordion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.20\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collapsible@1.1.14\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collapsible@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-accordion\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-checkbox` from 1.3.3 to 1.3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md\"\u003e@​radix-ui/react-checkbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value programmatically (eg. a \u0026quot;select all\u0026quot; control) while inside a \u003ccode\u003e\u0026lt;form\u0026gt;\u003c/code\u003e would dispatch a \u003ccode\u003eclick\u003c/code\u003e event from the hidden bubble input that propagated to ancestor \u003ccode\u003eonClick\u003c/code\u003e handlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-checkbox\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md\"\u003e@​radix-ui/react-collapsible's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-collapsible\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md\"\u003e@​radix-ui/react-dialog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed broken ARIA references in Dialogs where a title or description elements are not rendered.\u003c/li\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved dev-only warnings for dialogs when title and/or description is not rendered.\u003c/li\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed disabled pointer events in closed dialogs\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dialog\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-dropdown-menu` from 2.1.16 to 2.1.24\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md\"\u003e@​radix-ui/react-dropdown-menu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.24\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.23\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.22\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.21\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.20\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-menu@2.1.19\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where menus and submenus remained open after a window loses focus.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-menu@2.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-dropdown-menu\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-label` from 2.1.7 to 2.1.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md\"\u003e@​radix-ui/react-label's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.4\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-label\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-popover` from 1.1.15 to 1.1.23\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md\"\u003e@​radix-ui/react-popover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Dismissable Layer so outside interactions stopped by extension UI overlays do not dismiss dialogs or popovers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-popover\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-scroll-area` from 1.2.10 to 1.2.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md\"\u003e@​radix-ui/react-scroll-area's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003e--radix-scroll-area-corner-width\u003c/code\u003e and \u003ccode\u003e--radix-scroll-area-corner-height\u003c/code\u003e not resetting to \u003ccode\u003e0\u003c/code\u003e when the corner is removed (eg. when one of the scrollbars is no longer visible). Previously these values would stick around and leave a permanent gap on the remaining scrollbar.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStabilized the viewport style tag unless the nonce changes.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eDuplicate index signature\u003c/code\u003e errors that surfaced when consuming multiple packages together.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed missing \u003ccode\u003edata-state\u003c/code\u003e attribute for Scroll Area scrollbars\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-presence@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-scroll-area\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-select` from 2.2.6 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md\"\u003e@​radix-ui/react-select's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-collection@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.19\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.11\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.18\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/number@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.17\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.9\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-popper@1.3.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.16\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/number@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-direction@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-guards@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-id@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-callback-ref@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-layout-effect@1.1.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-previous@1.1.2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug in form control components to ensure their values are updated when their associated form's is reset. This affects \u003ccode\u003eRadioGroup\u003c/code\u003e, \u003ccode\u003eSlider\u003c/code\u003e, \u003ccode\u003eSelect\u003c/code\u003e, and \u003ccode\u003eSwitch\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed menu items, tab triggers, toolbar links, and select items intercepting \u003ccode\u003eSpace\u003c/code\u003e/\u003ccode\u003eEnter\u003c/code\u003e keys that originate from focusable descendants.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.15\u003c/code\u003e, \u003ccode\u003e@radix-ui/primitive@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-presence@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by unstable composed ref callback references.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.14\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.11\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed a \u003ccode\u003eSelect.Item\u003c/code\u003e with an empty string value to act as a \u0026quot;clear\u0026quot; option. Selecting it resets the selection back to the placeholder, restoring the native \u003ccode\u003e\u0026lt;select\u0026gt;\u003c/code\u003e behavior for optional selects.\u003c/li\u003e\n\u003cli\u003eFixed a bug where typeahead search resulted in focusing an element that no longer exists.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-slot@1.3.0\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-popper@1.3.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-dismissable-layer@1.1.13\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-collection@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-focus-scope@1.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-portal@1.1.12\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-visually-hidden@1.2.6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded unstable \u003ccode\u003eProvider\u003c/code\u003e and \u003ccode\u003eBubbleInput\u003c/code\u003e parts to Select. \u003ccode\u003eSelect.unstable_Provider\u003c/code\u003e sets up Select's context and state without implicitly rendering the hidden native \u003ccode\u003eselect\u003c/code\u003e, and \u003ccode\u003eSelect.unstable_BubbleInput\u003c/code\u003e exposes that previously internal native \u003ccode\u003eselect\u003c/code\u003e so consumers can recompose it explicitly. \u003ccode\u003eSelect\u003c/code\u003e continues to render both by default.\u003c/li\u003e\n\u003cli\u003eAdded support for presence-based exit animations in Select\u003c/li\u003e\n\u003cli\u003eFixed Select hidden input so it submits empty string when no value is selected\u003c/li\u003e\n\u003cli\u003eFixed placeholder rendering when a controlled Select is reset to an empty value\u003c/li\u003e\n\u003cli\u003eAdded missing \u003ccode\u003e__selectScope\u003c/code\u003e prop to \u003ccode\u003ePopperContent\u003c/code\u003e component\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSelect\u003c/code\u003e closing unexpectedly after touch-scrolling its content when rendered inside an open shadow DOM\u003c/li\u003e\n\u003cli\u003eFixed a bug where iOS text selection and editing on HTML inputs within \u003ccode\u003ereact-dialog\u003c/code\u003e were broken\u003c/li\u003e\n\u003cli\u003eFixed triggers referencing a non-existent element via \u003ccode\u003earia-controls\u003c/code\u003e when their content is removed from the DOM (credit to \u003ca href=\"https://github.com/dodomorandi\"\u003e\u003ccode\u003e@​dodomorandi\u003c/code\u003e\u003c/a\u003e for the \u003ca href=\"https://redirect.github.com/radix-ui/primitives/pull/3243\"\u003eoriginal PR\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSelectValue\u003c/code\u003e logging invalid prop errors when used with both \u003ccode\u003easChild\u003c/code\u003e and a placeholder\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-select\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-slot` from 1.2.4 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md\"\u003e@​radix-ui/react-slot's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.2, 1.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded generic type arguments for \u003ccode\u003eSlotProps\u003c/code\u003e and \u003ccode\u003ecreateSlot\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eSlotProps\u003c/code\u003e and \u003ccode\u003ecreateSlot\u003c/code\u003e now accept generic type arguments to specify the type of element a slot should render, as well as its props.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003econst Slot = createSlot\u0026lt;HTMLButtonElement, MyCustomButtonProps\u0026gt;('Slot');\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e1.2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed infinite re-render loop in React 19 caused by \u003ccode\u003eSlot\u003c/code\u003e creating a new ref callback on every render\u003c/li\u003e\n\u003cli\u003eAdded support for nested \u003ccode\u003eSlottable\u003c/code\u003e via a render prop, so a slotted element can be wrapped while still merging Slot props and refs onto it\u003c/li\u003e\n\u003cli\u003eAdded repository.directory to all package.json files\u003c/li\u003e\n\u003cli\u003eImproved error messages for invalid slot children\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.3\u003c/code\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\u003eSee full diff in \u003ca href=\"https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​radix-ui/react-slot\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@radix-ui/react-switch` from 1.2.6 to 1.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/radix-ui/primitives/blob/main/packages/react/switch/CHANGELOG.md\"\u003e@​radix-ui/react-switch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReverted breaking changes that caused compatibility issues with React Server Components.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-compose-refs@1.1.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.2\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.10\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.6\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.4\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/react-primitive@2.1.9\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRepublish through CI to attach provenance attestations. The previous versions of these packages were published manually outside of CI and therefore shipped without provenance; this patch re-releases the same code through the CI pipeline so every package includes an attestation.\u003c/li\u003e\n\u003cli\u003eUpdated dependencies: \u003ccode\u003e@radix-ui/primitive@1.1.7\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-compose-refs@1.1.4\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-context@1.2.1\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-primitive@2.1.8\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-controllable-state@1.2.5\u003c/code\u003e, \u003ccode\u003e@radix-ui/react-use-size@1.1.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved tree-shaking so bundlers can drop unused components. Component parts are now marked \u003ccode\u003e/* @__PURE__ */\u003c/code\u003e and use named render functions instead of \u003ccode\u003eComponent.displayName = ...\u003c/code\u003e assignments, which previously prevented dead-code elimination with some bundlers.\u003c/li\u003e\n\u003cli\u003eFixed a bug where updating a \u003ccode\u003eCheckbox\u003c/code\u003e, \u003ccode\u003eSwitch\u003c/code\u003e, or \u003ccode\u003eRadioGroup\u003c/code\u003e value progra...\n\n_Description has been truncated_","html_url":"https://github.com/1351468279/aiengine-switch/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1351468279%2Faiengine-switch/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"24.2.3","new_version":"26.3.6","update_type":"major","path":"/enatega-multivendor-app","pr_created_at":"2026-08-03T08:05:52.000Z","version_change":"24.2.3 → 26.3.6","issue":{"uuid":"5047643976","node_id":"PR_kwDOM5p3xs7549f6","number":1890,"state":"closed","title":"Bump i18next from 24.2.3 to 26.3.6 in /enatega-multivendor-app","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-07T18:20:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-03T08:05:52.000Z","updated_at":"2026-08-07T18:20:54.000Z","time_to_close":382492,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"i18next","old_version":"24.2.3","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"}],"path":"/enatega-multivendor-app","ecosystem":"npm"},"body":"Bumps [i18next](https://github.com/i18next/i18next) from 24.2.3 to 26.3.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.6\u003c/h2\u003e\n\u003cp\u003eSecurity release — all issues found via an internal audit. GHSA advisory filed after release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esecurity: warn when a translation string combines \u003ccode\u003eescapeValue: false\u003c/code\u003e with interpolated variables inside a \u003ccode\u003e$t(key, { ... \u0026quot;{{var}}\u0026quot; ... })\u003c/code\u003e nesting-options block. In that narrow combination, attacker-controlled string values containing \u003ccode\u003e\u0026quot;\u003c/code\u003e can break out of the JSON options literal and inject additional nesting options (e.g. redirect \u003ccode\u003elng\u003c/code\u003e/\u003ccode\u003ens\u003c/code\u003e). The default \u003ccode\u003eescapeValue: true\u003c/code\u003e configuration is unaffected because HTML-escaping neutralises the quote before \u003ccode\u003eJSON.parse\u003c/code\u003e. See the security docs for mitigation guidance (GHSA-TBD)\u003c/li\u003e\n\u003cli\u003esecurity: apply \u003ccode\u003eregexEscape\u003c/code\u003e to \u003ccode\u003eunescapePrefix\u003c/code\u003e / \u003ccode\u003eunescapeSuffix\u003c/code\u003e on par with the other interpolation delimiters. Prevents ReDoS (catastrophic-backtracking) when a misconfigured delimiter contains regex metacharacters, and fixes silent breakage of the \u003ccode\u003e{{- var}}\u003c/code\u003e syntax when the delimiter contains characters like \u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esecurity: strip CR/LF/NUL and other C0/C1 control characters from string log arguments to prevent log forging via user-controlled translation keys, language codes, namespaces, or interpolation variable names (CWE-117)\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v24.2.3...v26.3.6\"\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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next\u0026package-manager=npm_and_yarn\u0026previous-version=24.2.3\u0026new-version=26.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/patriciaperez90/online-food-ordering-app-in-react-native/pull/1890","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patriciaperez90%2Fonline-food-ordering-app-in-react-native/issues/1890","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1890/packages"}},{"old_version":"26.0.6","new_version":"26.3.6","update_type":"minor","path":null,"pr_created_at":"2026-08-02T17:16:14.000Z","version_change":"26.0.6 → 26.3.6","issue":{"uuid":"5043613192","node_id":"PR_kwDOSHjhUc75siDn","number":38,"state":"closed","title":"build(deps): Bump the minor-and-patch group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-08-09T17:15:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-02T17:16:14.000Z","updated_at":"2026-08-09T17:15:54.000Z","time_to_close":604779,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"minor-and-patch","update_count":29,"packages":[{"name":"@anthropic-ai/sdk","old_version":"0.80.0","new_version":"0.115.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@codemirror/autocomplete","old_version":"6.20.2","new_version":"6.20.3","repository_url":"https://github.com/codemirror/autocomplete"},{"name":"@codemirror/commands","old_version":"6.10.3","new_version":"6.10.4","repository_url":"https://github.com/codemirror/commands"},{"name":"@codemirror/lang-markdown","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/codemirror/lang-markdown"},{"name":"@codemirror/language","old_version":"6.12.3","new_version":"6.12.4","repository_url":"https://github.com/codemirror/language"},{"name":"@codemirror/search","old_version":"6.7.0","new_version":"6.7.1","repository_url":"https://github.com/codemirror/search"},{"name":"@codemirror/view","old_version":"6.43.0","new_version":"6.43.7","repository_url":"https://github.com/codemirror/view"},{"name":"@lezer/markdown","old_version":"1.6.3","new_version":"1.7.2","repository_url":"https://github.com/lezer-parser/markdown"},{"name":"dompurify","old_version":"3.4.5","new_version":"3.4.12","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"i18next","old_version":"26.0.6","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"katex","old_version":"0.16.45","new_version":"0.18.1","repository_url":"https://github.com/KaTeX/KaTeX"},{"name":"lucide-react","old_version":"1.7.0","new_version":"1.28.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"mermaid","old_version":"11.15.0","new_version":"11.16.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"react-i18next","old_version":"17.0.4","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.13.2","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"semver","old_version":"7.8.1","new_version":"7.8.5","repository_url":"https://github.com/npm/node-semver"},{"name":"tailwindcss","old_version":"4.2.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"zod","old_version":"4.3.6","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"zustand","old_version":"5.0.12","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@tailwindcss/vite","old_version":"4.2.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"electron-builder","old_version":"26.8.1","new_version":"26.15.3","repository_url":"https://github.com/electron-userland/electron-builder"},{"name":"eslint-plugin-react-hooks","old_version":"7.0.1","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"eslint-plugin-react-refresh","old_version":"0.4.26","new_version":"0.5.3","repository_url":"https://github.com/ArnaudBarre/eslint-plugin-react-refresh"},{"name":"prettier","old_version":"3.8.1","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"vitest","old_version":"4.1.2","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.80.0` | `0.115.0` |\n| [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) | `6.20.2` | `6.20.3` |\n| [@codemirror/commands](https://github.com/codemirror/commands) | `6.10.3` | `6.10.4` |\n| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.5.0` | `6.5.1` |\n| [@codemirror/language](https://github.com/codemirror/language) | `6.12.3` | `6.12.4` |\n| [@codemirror/search](https://github.com/codemirror/search) | `6.7.0` | `6.7.1` |\n| [@codemirror/view](https://github.com/codemirror/view) | `6.43.0` | `6.43.7` |\n| [@lezer/markdown](https://github.com/lezer-parser/markdown) | `1.6.3` | `1.7.2` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.5` | `3.4.12` |\n| [i18next](https://github.com/i18next/i18next) | `26.0.6` | `26.3.6` |\n| [katex](https://github.com/KaTeX/KaTeX) | `0.16.45` | `0.18.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.7.0` | `1.28.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `11.15.0` | `11.16.0` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.4` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.13.2` | `7.18.2` |\n| [semver](https://github.com/npm/node-semver) | `7.8.1` | `7.8.5` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.2` | `4.3.3` |\n| [zod](https://github.com/colinhacks/zod) | `4.3.6` | `4.4.3` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.12` | `5.0.14` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.2` | `4.3.3` |\n| [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) | `26.8.1` | `26.15.3` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `7.0.1` | `7.1.1` |\n| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.26` | `0.5.3` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.9.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.2` | `4.1.10` |\n\n\nUpdates `@anthropic-ai/sdk` from 0.80.0 to 0.115.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/releases\"\u003e@​anthropic-ai/sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003esdk: v0.115.0\u003c/h2\u003e\n\u003ch2\u003e0.115.0 (2026-07-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.114.0...sdk-v0.115.0\"\u003esdk-v0.114.0...sdk-v0.115.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-5 model (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add tool addition/removal blocks and tool_change events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e expand client-side fallback credit token types and add server-side fallbacks default option (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b85e902669c78a8293b5390e93e57dd2e3f6c545\"\u003eb85e902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.114.0\u003c/h2\u003e\n\u003ch2\u003e0.114.0 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.113.0...sdk-v0.114.0\"\u003esdk-v0.113.0...sdk-v0.114.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add new stop reason 'model_context_window_exceeded' (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec71c165d9737cb317e3f8fed818f7a1b8169ad\"\u003e1ec71c1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.113.0\u003c/h2\u003e\n\u003ch2\u003e0.113.0 (2026-07-22)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.5...sdk-v0.113.0\"\u003esdk-v0.112.5...sdk-v0.113.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Managed Agents model effort, initial session events, and threads delta streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/83fef1e5a65f020750b1f90c46d748a415b6f075\"\u003e83fef1e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.112.5\u003c/h2\u003e\n\u003ch2\u003e0.112.5 (2026-07-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.4...sdk-v0.112.5\"\u003esdk-v0.112.4...sdk-v0.112.5\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for new refusal category (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/479efe8ade0078966e28d754fa3085c75b6d2a58\"\u003e479efe8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/830fb7467c3cc947e31b5d83a2a31d34fc8ebac2\"\u003e830fb74\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.112.4\u003c/h2\u003e\n\u003ch2\u003e0.112.4 (2026-07-20)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.3...sdk-v0.112.4\"\u003esdk-v0.112.3...sdk-v0.112.4\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\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/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md\"\u003e@​anthropic-ai/sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.115.0 (2026-07-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.114.0...sdk-v0.115.0\"\u003esdk-v0.114.0...sdk-v0.115.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-5 model (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add tool addition/removal blocks and tool_change events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e expand client-side fallback credit token types and add server-side fallbacks default option (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/cdd3606e92745b8a6af07819469cf5dc0636edb2\"\u003ecdd3606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b85e902669c78a8293b5390e93e57dd2e3f6c545\"\u003eb85e902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.114.0 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.113.0...sdk-v0.114.0\"\u003esdk-v0.113.0...sdk-v0.114.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add new stop reason 'model_context_window_exceeded' (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec71c165d9737cb317e3f8fed818f7a1b8169ad\"\u003e1ec71c1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.113.0 (2026-07-22)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.5...sdk-v0.113.0\"\u003esdk-v0.112.5...sdk-v0.113.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Managed Agents model effort, initial session events, and threads delta streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/83fef1e5a65f020750b1f90c46d748a415b6f075\"\u003e83fef1e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.112.5 (2026-07-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.4...sdk-v0.112.5\"\u003esdk-v0.112.4...sdk-v0.112.5\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for new refusal category (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/479efe8ade0078966e28d754fa3085c75b6d2a58\"\u003e479efe8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/830fb7467c3cc947e31b5d83a2a31d34fc8ebac2\"\u003e830fb74\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.112.4 (2026-07-20)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.112.3...sdk-v0.112.4\"\u003esdk-v0.112.3...sdk-v0.112.4\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaws:\u003c/strong\u003e preserve AWS options and auth mode across withOptions() (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/214\"\u003e#214\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/3f7665c5419eb80c489546a70da799648e7d5ff2\"\u003e3f7665c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\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/anthropics/anthropic-sdk-typescript/commit/3b45cd3b69c956ac63384fdb09ce1d8109f3fa80\"\u003e\u003ccode\u003e3b45cd3\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f298e9ad78cea4c047940a33d944f20e3f3b60f2\"\u003e\u003ccode\u003ef298e9a\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-5 model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/ce8e54bc70e4e26e80bc2a8e7d9de2db9a8b5ef5\"\u003e\u003ccode\u003ece8e54b\u003c/code\u003e\u003c/a\u003e fix(client): release abort listeners when requests settle (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2d314b412701f01c2a2b1cee8974f9f9cfdec13d\"\u003e\u003ccode\u003e2d314b4\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/3d051dfe492ba4d66c25d55d5dfe86cbc8037bda\"\u003e\u003ccode\u003e3d051df\u003c/code\u003e\u003c/a\u003e feat(api): add new stop reason 'model_context_window_exceeded'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/4414d474207178886e39377d5dc166739fd1f15e\"\u003e\u003ccode\u003e4414d47\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1ec55666c8412de68836a54383d2a4b0f2df55a2\"\u003e\u003ccode\u003e1ec5566\u003c/code\u003e\u003c/a\u003e feat(api): add support for Managed Agents model effort, initial session event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c58a55b01e62a308e2ffbed01b4d5c19a97868fc\"\u003e\u003ccode\u003ec58a55b\u003c/code\u003e\u003c/a\u003e chore: release main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2fb7da58a5545533d0917de19d17ab6ee2a69af0\"\u003e\u003ccode\u003e2fb7da5\u003c/code\u003e\u003c/a\u003e chore(api): add support for new refusal category\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d6ffc3c2e87a573aa1bee53895fa86f3f405f8ca\"\u003e\u003ccode\u003ed6ffc3c\u003c/code\u003e\u003c/a\u003e chore(internal): codegen related update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.80.0...sdk-v0.115.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​anthropic-ai/sdk\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/autocomplete` from 6.20.2 to 6.20.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/autocomplete/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/commands` from 6.10.3 to 6.10.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/commands/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/lang-markdown` from 6.5.0 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/lang-markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/language` from 6.12.3 to 6.12.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/language/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/search` from 6.7.0 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/search/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/state` from 6.6.0 to 6.7.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/state/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@codemirror/view` from 6.43.0 to 6.43.7\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/codemirror/view/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lezer/markdown` from 1.6.3 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lezer-parser/markdown/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dompurify` from 3.4.5 to 3.4.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cure53/DOMPurify/releases\"\u003edompurify's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eDOMPurify 3.4.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where a hook would not get called for custom elements, thanks \u003ca href=\"https://github.com/Rikuxx0\"\u003e\u003ccode\u003e@​Rikuxx0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the handling of hooks removing elements, \u003ca href=\"https://github.com/mkrause-bee360\"\u003e\u003ccode\u003e@​mkrause-bee360\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for a few new SVG attributes, thanks \u003ca href=\"https://github.com/cbn-falias\"\u003e\u003ccode\u003e@​cbn-falias\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Develop-KIM\"\u003e\u003ccode\u003e@​Develop-KIM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the handling of declarative partial updates\u003c/li\u003e\n\u003cli\u003eUpdated the documentation is several spots, README, wiki, etc.\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with a leaky config for hooks via \u003ccode\u003esetConfig\u003c/code\u003e, thanks \u003ca href=\"https://github.com/trace37labs\"\u003e\u003ccode\u003e@​trace37labs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumped vulnerable development dependencies to arrive at plain 0 with \u003ccode\u003enpm audit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eosv-scanner\u003c/code\u003e suppression list as no vulnerable dependencies are left for now\u003c/li\u003e\n\u003cli\u003eUpdated up the linting tool-chain and removed now-redundant lint directives\u003c/li\u003e\n\u003cli\u003eUpdated the documentation is several spots, README, wiki, etc.\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactored codebase for clarity: extracted the public type declarations into \u003ccode\u003etypes.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDecomposed the three largest sanitizer functions into focused helpers\u003c/li\u003e\n\u003cli\u003eRemoved duplicated defaults and dead branches, consolidated \u003ccode\u003eSAFE_FOR_TEMPLATES\u003c/code\u003e scrubbing into single shared path\u003c/li\u003e\n\u003cli\u003eImproved per-node performance by hoisting the mXSS probe regexes and testing \u003ccode\u003etextContent\u003c/code\u003e before \u003ccode\u003einnerHTML\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded a deterministic micro-benchmark harness (\u003ccode\u003enpm run bench\u003c/code\u003e) with a \u003ccode\u003e--compare\u003c/code\u003e mode\u003c/li\u003e\n\u003cli\u003eReduced CI cost by running the full three-engine browser suite once per PR\u003c/li\u003e\n\u003cli\u003eRefreshed the \u003ccode\u003edemos/\u003c/code\u003e folder so every demo runs again, and added a SVG-via-\u003ccode\u003e\u0026lt;img\u0026gt;\u003c/code\u003e demo\u003c/li\u003e\n\u003cli\u003eDocumented the bench and \u003ccode\u003etest:happydom\u003c/code\u003e scripts in the README\u003c/li\u003e\n\u003cli\u003eCompleted the Attack Classes \u0026amp; Bypass History wiki page\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFurther improved the handling of Trusted Types config options, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFurther improved the handling of \u003ccode\u003eIN_PLACE\u003c/code\u003e sanitization, thanks \u003ca href=\"https://github.com/mozfreddyb\"\u003e\u003ccode\u003e@​mozfreddyb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded more test coverage for \u003ccode\u003eIN_PLACE\u003c/code\u003e and Trusted Types related usage\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003cli\u003eUpdated README and wiki with more accurate documentation \u0026amp; attack samples\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleaned up the repository root, renamed some and removed unneeded files\u003c/li\u003e\n\u003cli\u003eFixed an issue with handling of Trusted Types policies, thanks \u003ca href=\"https://github.com/fulstadev\"\u003e\u003ccode\u003e@​fulstadev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the node iterator for better template scrubbing, thanks \u003ca href=\"https://github.com/IamLeandrooooo\"\u003e\u003ccode\u003e@​IamLeandrooooo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded formerly missing LICENSE-MPL in published npm package, thanks \u003ca href=\"https://github.com/asamuzaK\"\u003e\u003ccode\u003e@​asamuzaK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumped several dependencies where possible\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened the handling of Shadow Roots when using \u003ccode\u003eIN_PLACE\u003c/code\u003e, thanks \u003ca href=\"https://github.com/GameZoneHacker\"\u003e\u003ccode\u003e@​GameZoneHacker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved a problem leading to permanent hook pollution, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactored the test suite and expanded test coverage significantly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDOMPurify 3.4.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed several issues with DOM Clobbering in \u003ccode\u003eIN_PLACE\u003c/code\u003e mode, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Bankde\"\u003e\u003ccode\u003e@​Bankde\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHardened the checks for cross-realm \u003ccode\u003eIN_PLACE\u003c/code\u003e and Shadow DOM sanitization, thanks \u003ca href=\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e \u0026amp; \u003ca href=\"https://github.com/Bankde\"\u003e\u003ccode\u003e@​Bankde\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/cure53/DOMPurify/commit/a9ca1e537422319a557a9a2aa61f003b23b4a197\"\u003e\u003ccode\u003ea9ca1e5\u003c/code\u003e\u003c/a\u003e release: 3.4.12 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/0cae5187403132f96a6d357649e4b15633fc210a\"\u003e\u003ccode\u003e0cae518\u003c/code\u003e\u003c/a\u003e release: 3.4.11 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1494\"\u003e#1494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/6ee5716f8336989753611beeca364957c0eb0c3e\"\u003e\u003ccode\u003e6ee5716\u003c/code\u003e\u003c/a\u003e release: 3.4.10 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/52102472d46035857c52df19e44285f8a1e102fc\"\u003e\u003ccode\u003e5210247\u003c/code\u003e\u003c/a\u003e release: 3.4.9 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1459\"\u003e#1459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/bcdd8285412dc9c4c149652aed2d712e790d6ccf\"\u003e\u003ccode\u003ebcdd828\u003c/code\u003e\u003c/a\u003e release: 3.4.8 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1439\"\u003e#1439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/ca30f070c360df162a3e3848e80e6fd3c9e74bff\"\u003e\u003ccode\u003eca30f07\u003c/code\u003e\u003c/a\u003e release: 3.4.7 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cure53/DOMPurify/commit/bb7739e5bccec7e1ab3dae3f3e42d02db3acaaae\"\u003e\u003ccode\u003ebb7739e\u003c/code\u003e\u003c/a\u003e release: 3.4.6 (\u003ca href=\"https://redirect.github.com/cure53/DOMPurify/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/cure53/DOMPurify/compare/3.4.5...3.4.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.0.6 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: when a plural lookup misses, the \u003ccode\u003emissingKey\u003c/code\u003e debug log now shows the actual plural-resolved key (e.g. \u003ccode\u003efoo.bar_many\u003c/code\u003e for Polish \u003ccode\u003ecount: 14\u003c/code\u003e) instead of the base key — making it obvious which plural category was expected and missing \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2423\"\u003e2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop \u003ccode\u003e@babel/runtime\u003c/code\u003e runtime dependency. The build no longer generates any \u003ccode\u003e@babel/runtime\u003c/code\u003e imports, so the package is unused by consumers. Rollup now uses \u003ccode\u003ebabelHelpers: 'bundled'\u003c/code\u003e so any helpers that are ever needed in the future will be inlined rather than imported externally \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: stop emitting \u003ccode\u003edist/esm/i18next.bundled.js\u003c/code\u003e. It was byte-identical to \u003ccode\u003edist/esm/i18next.js\u003c/code\u003e because no helpers were being imported \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2424\"\u003e2424\u003c/a\u003e\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): restore the pre-v25.10.4 \u003ccode\u003eExistsFunction\u003c/code\u003e shape so plain arrow functions can again be assigned to \u003ccode\u003eExistsFunction\u003c/code\u003e-typed variables (TypeScript cannot infer type predicates through multi-overload assignment). Direct \u003ccode\u003ei18next.exists(key)\u003c/code\u003e calls still narrow \u003ccode\u003ekey\u003c/code\u003e to \u003ccode\u003eSelectorKey\u003c/code\u003e — the predicate is now declared inline on \u003ccode\u003ei18n.exists\u003c/code\u003e. Custom wrappers that want the narrowing can type themselves as \u003ccode\u003etypeof i18next.exists\u003c/code\u003e \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2425\"\u003e2425\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.0.6...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `katex` from 0.16.45 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/KaTeX/KaTeX/releases\"\u003ekatex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.18.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.18.0...v0.18.1\"\u003e0.18.1\u003c/a\u003e (2026-07-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehtmlData:\u003c/strong\u003e allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e87a2b30\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4204\"\u003e#4204\u003c/a\u003e \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4218\"\u003e#4218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.18.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.17.0...v0.18.0\"\u003e0.18.0\u003c/a\u003e (2026-07-17)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eprefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e6f5c44f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eusers who apply custom styles or have allowlists targeting KaTeX's internal classes must update their selectors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.47...v0.17.0\"\u003e0.17.0\u003c/a\u003e (2026-05-22)\u003c/h1\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esimplify \u003ccode\u003edefineFunction\u003c/code\u003e to avoid destructuring, improve typing (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4222\"\u003e#4222\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/fb604e6ba63e99809e242d37f9c8359209d55431\"\u003efb604e6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe internal API for \u003ccode\u003e__defineFunction\u003c/code\u003e changed: you should no longer wrap properties in \u003ccode\u003eprops\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.47\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.46...v0.16.47\"\u003e0.16.47\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecorrect size of \u003ccode\u003e[\u003c/code\u003e big delimiter (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4217\"\u003e#4217\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/7ba0027d2f04abddd3b215362f867ab8260b09d7\"\u003e7ba0027\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4215\"\u003e#4215\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.46\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.16.46\"\u003e0.16.46\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epreserve math font in some styling commands (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4214\"\u003e#4214\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/e9ee0464ddb31da9bf9649eeb70e52236e7a974a\"\u003ee9ee046\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4213\"\u003e#4213\u003c/a\u003e\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/KaTeX/KaTeX/blob/main/CHANGELOG.md\"\u003ekatex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.18.0...v0.18.1\"\u003e0.18.1\u003c/a\u003e (2026-07-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehtmlData:\u003c/strong\u003e allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e87a2b30\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4204\"\u003e#4204\u003c/a\u003e \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4218\"\u003e#4218\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.17.0...v0.18.0\"\u003e0.18.0\u003c/a\u003e (2026-07-17)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eprefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e6f5c44f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eusers who apply custom styles or have allowlists targeting KaTeX's internal classes must update their selectors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.47...v0.17.0\"\u003e0.17.0\u003c/a\u003e (2026-05-22)\u003c/h1\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esimplify \u003ccode\u003edefineFunction\u003c/code\u003e to avoid destructuring, improve typing (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4222\"\u003e#4222\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/fb604e6ba63e99809e242d37f9c8359209d55431\"\u003efb604e6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe internal API for \u003ccode\u003e__defineFunction\u003c/code\u003e changed: you should no longer wrap properties in \u003ccode\u003eprops\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.46...v0.16.47\"\u003e0.16.47\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecorrect size of \u003ccode\u003e[\u003c/code\u003e big delimiter (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4217\"\u003e#4217\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/7ba0027d2f04abddd3b215362f867ab8260b09d7\"\u003e7ba0027\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4215\"\u003e#4215\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.16.46\"\u003e0.16.46\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epreserve math font in some styling commands (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4214\"\u003e#4214\u003c/a\u003e) (\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/e9ee0464ddb31da9bf9649eeb70e52236e7a974a\"\u003ee9ee046\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4213\"\u003e#4213\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/KaTeX/KaTeX/commit/cdf479f6749fd2a04c2ccad9be0ead2ac26c33d2\"\u003e\u003ccode\u003ecdf479f\u003c/code\u003e\u003c/a\u003e chore(release): 0.18.1 [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/87a2b304aff601ad1c3d930d47d6833d123ad210\"\u003e\u003ccode\u003e87a2b30\u003c/code\u003e\u003c/a\u003e fix(htmlData): allow escaped commas in \\htmlData (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4236\"\u003e#4236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/2318066babab2b1729bba87c983b4fdbdb206eb4\"\u003e\u003ccode\u003e2318066\u003c/code\u003e\u003c/a\u003e chore(deps): bump codecov/codecov-action from 6 to 7 (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4227\"\u003e#4227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/3b5b6a0f3d9881e75876af4b83a84a4a0fc4d948\"\u003e\u003ccode\u003e3b5b6a0\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4232\"\u003e#4232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/4e9d31a103790b2fea8777fc209cdd1a1e72132d\"\u003e\u003ccode\u003e4e9d31a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency js-yaml to v4.2.0 [security] (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4244\"\u003e#4244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/b7ca8f09180d3383077bda89608be19242077d3e\"\u003e\u003ccode\u003eb7ca8f0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency webpack-dev-server to v5.2.5 [security] (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4242\"\u003e#4242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/bf1a59fc2c19b12b50d9b627f9f530b89ef46c47\"\u003e\u003ccode\u003ebf1a59f\u003c/code\u003e\u003c/a\u003e chore: use pixel diff as fallback for byte-to-byte (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4245\"\u003e#4245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/4d9d0ae03841943ac3ccc63ad5708e15c46b187e\"\u003e\u003ccode\u003e4d9d0ae\u003c/code\u003e\u003c/a\u003e chore(release): 0.18.0 [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/6f5c44f69bae0703877a3a8d934e20c47bbbbc32\"\u003e\u003ccode\u003e6f5c44f\u003c/code\u003e\u003c/a\u003e feat: prefix css classes (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4229\"\u003e#4229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KaTeX/KaTeX/commit/2c6143a6dd7c168cef602c1e29f8add66f7fcc19\"\u003e\u003ccode\u003e2c6143a\u003c/code\u003e\u003c/a\u003e refactor: remove direct hasOwnProperty call (\u003ca href=\"https://redirect.github.com/KaTeX/KaTeX/issues/4230\"\u003e#4230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/KaTeX/KaTeX/compare/v0.16.45...v0.18.1\"\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 adds \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 `lucide-react` from 1.7.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lucide-icons/lucide/releases\"\u003elucide-react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.28.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): improve calendar icons centre of gravity by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4614\"\u003elucide-icons/lucide#4614\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lucide-icons/lucide/compare/1.27.0...1.28.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.27.0...1.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.27.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): removed brand names from tags \u0026amp; revised brand stopwords by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4575\"\u003elucide-icons/lucide#4575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): Fix site build by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4582\"\u003elucide-icons/lucide#4582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): optimised \u003ccode\u003esquare-scissors\u003c/code\u003e icons by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4581\"\u003elucide-icons/lucide#4581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(packages/angular): add more supported attributes for SVG nodes by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4570\"\u003elucide-icons/lucide#4570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003epending-cw\u003c/code\u003e icon by \u003ca href=\"https://github.com/NielsLazaroms\"\u003e\u003ccode\u003e@​NielsLazaroms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4439\"\u003elucide-icons/lucide#4439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ezap\u003c/code\u003e and \u003ccode\u003ezap-off\u003c/code\u003e icons by \u003ca href=\"https://github.com/kapowaz\"\u003e\u003ccode\u003e@​kapowaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4536\"\u003elucide-icons/lucide#4536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003esquare-off\u003c/code\u003e icon by \u003ca href=\"https://github.com/october-learns\"\u003e\u003ccode\u003e@​october-learns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4496\"\u003elucide-icons/lucide#4496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump astro from 6.4.8 to 7.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4572\"\u003elucide-icons/lucide#4572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003etoolbox\u003c/code\u003e icon by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4571\"\u003elucide-icons/lucide#4571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add scan-square by \u003ca href=\"https://github.com/samuelalake\"\u003e\u003ccode\u003e@​samuelalake\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4550\"\u003elucide-icons/lucide#4550\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003euser-shield\u003c/code\u003e icon by \u003ca href=\"https://github.com/MArtytraM99\"\u003e\u003ccode\u003e@​MArtytraM99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3099\"\u003elucide-icons/lucide#3099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003emosque\u003c/code\u003e icon by \u003ca href=\"https://github.com/iskepr\"\u003e\u003ccode\u003e@​iskepr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4494\"\u003elucide-icons/lucide#4494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(request-review): Remove pull_request_target by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4593\"\u003elucide-icons/lucide#4593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003efeather\u003c/code\u003e icon by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4584\"\u003elucide-icons/lucide#4584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ci): added custom prettier plugin for icon SVG files by \u003ca href=\"https://github.com/karsa-mistmere\"\u003e\u003ccode\u003e@​karsa-mistmere\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4576\"\u003elucide-icons/lucide#4576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci.yml): Remove concurrency in ci.yml by \u003ca href=\"https://github.com/ericfennis\"\u003e\u003ccode\u003e@​ericfennis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4595\"\u003elucide-icons/lucide#4595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons): changed \u003ccode\u003ebarrel\u003c/code\u003e icon by \u003ca href=\"https://github.com...\n\n_Description has been truncated_","html_url":"https://github.com/seethith/Ulyzer/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/seethith%2FUlyzer/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"}},{"old_version":"26.0.8","new_version":"26.3.6","update_type":"minor","path":null,"pr_created_at":"2026-07-31T15:39:02.000Z","version_change":"26.0.8 → 26.3.6","issue":{"uuid":"5031100026","node_id":"PR_kwDOTpZtzM75FkCI","number":3,"state":"open","title":"chore(deps): bump the i18next group with 3 updates","user":"dependabot[bot]","labels":["type: chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-31T15:39:02.000Z","updated_at":"2026-07-31T15:45:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"i18next","update_count":3,"packages":[{"name":"i18next","old_version":"26.0.8","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.6","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"eslint-plugin-i18next","old_version":"6.1.4","new_version":"6.1.5","repository_url":"https://github.com/edvardchen/eslint-plugin-i18next"}],"path":null,"ecosystem":"npm"},"body":"Bumps the i18next group with 3 updates: [i18next](https://github.com/i18next/i18next), [react-i18next](https://github.com/i18next/react-i18next) and [eslint-plugin-i18next](https://github.com/edvardchen/eslint-plugin-i18next).\n\nUpdates `i18next` from 26.0.8 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). Thanks to zx (Jace) for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003e$t()\u003c/code\u003e nesting options blocks that span multiple lines are now parsed. \u003ccode\u003enest()\u003c/code\u003e decided where the nested key ends by testing \u003ccode\u003ematch[1]\u003c/code\u003e with \u003ccode\u003e/{.*}/\u003c/code\u003e, whose dot does not cross line breaks — so a \u003ccode\u003e$t(key, { ... })\u003c/code\u003e options object containing a newline was treated as having no options, mis-split as formatters, and the nested lookup ran without its options (placeholders stayed unresolved). The nesting regexp itself already matches newlines inside \u003ccode\u003e$t(...)\u003c/code\u003e; adding the \u003ccode\u003es\u003c/code\u003e (dotAll) flag makes multiline options behave like the single-line form. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2440\"\u003e#2440\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003egetUsedParamsDetails\u003c/code\u003e (the \u003ccode\u003ereturnDetails: true\u003c/code\u003e path) no longer mutates the passed \u003ccode\u003ereplace\u003c/code\u003e object. It wrote \u003ccode\u003ecount\u003c/code\u003e straight onto \u003ccode\u003eoptions.replace\u003c/code\u003e so the returned \u003ccode\u003eusedParams\u003c/code\u003e would include it — a caller reusing one \u003ccode\u003ereplace\u003c/code\u003e object across \u003ccode\u003et()\u003c/code\u003e calls then carried a stale \u003ccode\u003ecount\u003c/code\u003e into later interpolations (e.g. a previous call's \u003ccode\u003ecount: 5\u003c/code\u003e rendered instead of the current call's value). The details are now built from a copy; \u003ccode\u003eusedParams\u003c/code\u003e still includes \u003ccode\u003ecount\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2441\"\u003e#2441\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efix: with the default \u003ccode\u003eskipOnVariables: true\u003c/code\u003e + \u003ccode\u003eescapeValue: true\u003c/code\u003e, a \u003ccode\u003e{{placeholder}}\u003c/code\u003e carried inside an interpolated value now stays literal even when the value contains escapable characters. The skip logic advanced the regex \u003ccode\u003elastIndex\u003c/code\u003e by the raw value length, but the escaped text written into the string is longer, so \u003ccode\u003elastIndex\u003c/code\u003e landed inside the inserted value and a trailing \u003ccode\u003e{{placeholder}}\u003c/code\u003e in it got interpolated — leaking another in-scope variable that should have stayed literal (values without escapable characters were already skipped correctly). The advance now uses the escaped length that is actually written, and the regex-safe \u003ccode\u003e$\u003c/code\u003e-doubling is applied only at the \u003ccode\u003eString.replace\u003c/code\u003e call so it can't distort the length arithmetic. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2442\"\u003e#2442\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): \u003ccode\u003edeepExtend\u003c/code\u003e (used by \u003ccode\u003eaddResourceBundle(..., deep, overwrite)\u003c/code\u003e) no longer recurses into inherited properties. It checked key existence with the \u003ccode\u003ein\u003c/code\u003e operator, which walks the prototype chain, so a source key matching an inherited built-in (e.g. \u003ccode\u003ehasOwnProperty\u003c/code\u003e, \u003ccode\u003etoString\u003c/code\u003e) caused recursion into the shared \u003ccode\u003eObject.prototype\u003c/code\u003e function and, with \u003ccode\u003eoverwrite: true\u003c/code\u003e, could overwrite e.g. \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e with a non-callable value — corrupting a shared built-in process-wide (DoS). Existence is now checked with \u003ccode\u003eObject.prototype.hasOwnProperty.call\u003c/code\u003e, so such keys are copied as plain own data instead. This complements the existing \u003ccode\u003e__proto__\u003c/code\u003e/\u003ccode\u003econstructor\u003c/code\u003e guard and is also strictly more correct for an own-property merge. Only affects applications that pass attacker-controlled data with \u003ccode\u003edeep: true\u003c/code\u003e and \u003ccode\u003eoverwrite: true\u003c/code\u003e; no standard backend/integration does this. Distinct from CVE-2026-48713 / CVE-2026-48714 (different packages, \u003ccode\u003esetPath\u003c/code\u003e mechanism). See advisory \u003ca href=\"https://github.com/i18next/i18next/security/advisories/GHSA-6jcc-5g8w-32mx\"\u003eGHSA-6jcc-5g8w-32mx\u003c/a\u003e, CVSS 5.9 (\u003ccode\u003eCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H\u003c/code\u003e). Thanks to zx (Jace) \u003ca href=\"https://github.com/manus-use\"\u003e\u003ccode\u003e@​manus-use\u003c/code\u003e\u003c/a\u003e for the responsible disclosure.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): selector \u003ccode\u003et($ =\u0026gt; $.arr, { returnObjects: true, context })\u003c/code\u003e on a JSON array of \u003cstrong\u003eheterogeneous\u003c/strong\u003e objects now preserves each element's full shape (e.g. \u003ccode\u003e{ transKey1: string; transKey2: string }[]\u003c/code\u003e) instead of collapsing to a union of partial element types. Two type-level causes: (1) \u003ccode\u003eFilterKeys\u003c/code\u003e evaluated the whole array element type at once, so \u003ccode\u003ekeyof (A | B)\u003c/code\u003e only saw the keys common to every element — it now distributes over the object union and filters each element independently; (2) when TypeScript merges mismatched array element types it injects phantom optional \u003ccode\u003eundefined\u003c/code\u003e keys (e.g. \u003ccode\u003etransKey1_withContext?: undefined\u003c/code\u003e on elements that don't define it), which the context-detection helpers mistook for real context variants — they now skip keys typed as \u003ccode\u003eundefined\u003c/code\u003e. Also adds a dedicated \u003ccode\u003econtext\u003c/code\u003e + \u003ccode\u003ereturnObjects: true\u003c/code\u003e selector overload using \u003ccode\u003econst Fn\u003c/code\u003e + \u003ccode\u003eReturnType\u0026lt;Fn\u0026gt;\u003c/code\u003e, so \u003ccode\u003eTarget\u003c/code\u003e is no longer collapsed to \u003ccode\u003eunknown\u003c/code\u003e via \u003ccode\u003eApplyTarget\u003c/code\u003e. Resolves Problem 1 of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e (Problem 2 was already fixed on master). Thanks \u003ca href=\"https://github.com/sauravgupta-dotcom\"\u003e\u003ccode\u003e@​sauravgupta-dotcom\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2438\"\u003e#2438\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2398\"\u003e#2398\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: chained formatters with a parenthesised option that contains the format separator (e.g. \u003ccode\u003ejoin(separator: ', ')\u003c/code\u003e) now work at \u003cstrong\u003eany\u003c/strong\u003e position in the chain, not just first. Previously the comma-in-parens reassembly only repaired \u003ccode\u003eformats[0]\u003c/code\u003e, so \u003ccode\u003e{{v, uppercase, join(separator: ', ')}}\u003c/code\u003e split the \u003ccode\u003ejoin(...)\u003c/code\u003e option on the inner comma and never rejoined it, producing corrupt output. Replaced the first-position-only repair with a position-independent pass that re-joins fragments until each open paren closes. Thanks \u003ca href=\"https://github.com/spokodev\"\u003e\u003ccode\u003e@​spokodev\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2437\"\u003e#2437\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003et()\u003c/code\u003e with a \u003ccode\u003ekeyPrefix\u003c/code\u003e no longer pollutes its return type with sibling keys' values. A regression in 26.3.0 — the \u003ccode\u003e[Res] extends [never]\u003c/code\u003e guards added to \u003ccode\u003eKeysBuilderWithReturnObjects\u003c/code\u003e / \u003ccode\u003eKeysBuilderWithoutReturnObjects\u003c/code\u003e turned the builders into deferred conditional types, so \u003ccode\u003eKeyPrefix\u0026lt;Ns\u0026gt;\u003c/code\u003e stopped resolving to a literal union and \u003ccode\u003ekeyPrefix\u003c/code\u003e inference widened to the whole namespace. Symptom: \u003ccode\u003euseTranslation(ns, { keyPrefix: 'a.b' })\u003c/code\u003e then \u003ccode\u003et('title')\u003c/code\u003e would resolve to \u003ccode\u003e'\u0026lt;a.b\u0026gt;.title' | '\u0026lt;other.path\u0026gt;.title' | ...\u003c/code\u003e instead of just the scoped value. Affected every \u003ccode\u003ereact-i18next\u003c/code\u003e user using \u003ccode\u003ekeyPrefix\u003c/code\u003e. Restored to the eager 26.2.0 form. The same-namespace conflict handling from \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2434\"\u003e#2434\u003c/a\u003e still works via \u003ccode\u003e_DropConflictKeys\u003c/code\u003e at the merge layer (in \u003ccode\u003eoptions.d.ts\u003c/code\u003e). Thanks \u003ca href=\"https://github.com/aaronrosenthal\"\u003e\u003ccode\u003e@​aaronrosenthal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2436\"\u003e#2436\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): introduce \u003ccode\u003eResourceNamespaceMap\u003c/code\u003e — a separate mergeable augmentation surface for namespace resource types, designed for monorepos where multiple packages each want to contribute their own namespaces. Previously, every package had to coordinate on a single \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e declaration (or fall back to typing dependency namespaces as \u003ccode\u003eany\u003c/code\u003e) because \u003ccode\u003eresources\u003c/code\u003e is a single property of an interface and TypeScript reports TS2717 when two declarations of the same property disagree. The new interface merges naturally across \u003ccode\u003edeclare module 'i18next'\u003c/code\u003e blocks, so each package can ship its own \u003ccode\u003ei18next.d.ts\u003c/code\u003e independently. Per-property merge handles same-namespace contributions from multiple packages, and same-key/different-literal conflicts are silently dropped to avoid poisoning \u003ccode\u003et()\u003c/code\u003e overload resolution. Fully backwards-compatible — existing \u003ccode\u003eCustomTypeOptions.resources\u003c/code\u003e augmentations continue to work, and both surfaces can coexist. Scalar options (\u003ccode\u003edefaultNS\u003c/code\u003e, \u003ccode\u003ereturnNull\u003c/code\u003e, \u003ccode\u003eenableSelector\u003c/code\u003e, etc.) still belong on \u003ccode\u003eCustomTypeOptions\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/sh3xu\"\u003e\u003ccode\u003e@​sh3xu\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2434\"\u003e#2434\u003c/a\u003e). Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2409\"\u003e#2409\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(types): new \u003ccode\u003eparseInterpolation\u003c/code\u003e TypeOption (default \u003ccode\u003etrue\u003c/code\u003e). When set to \u003ccode\u003efalse\u003c/code\u003e in \u003ccode\u003eCustomTypeOptions\u003c/code\u003e, the type-level extractor stops parsing translation strings for \u003ccode\u003e{{variable}}\u003c/code\u003e patterns. Required by \u003ccode\u003ei18next-icu\u003c/code\u003e users — the default extractor mistakes ICU MessageFormat nested-brace plurals like \u003ccode\u003e{count, plural, one {{count} row} other {{count} rows}}\u003c/code\u003e for an interpolation block and demands a phantom variable name. The flag is type-only; runtime interpolation is governed by \u003ccode\u003eInterpolationOptions\u003c/code\u003e and is unaffected. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next-icu/issues/85\"\u003ei18next-icu#85\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): expose \u003ccode\u003eenableSelector\u003c/code\u003e on \u003ccode\u003eInitOptions\u003c/code\u003e so \u003ccode\u003ei18next.init({ enableSelector: 'strict' })\u003c/code\u003e typechecks without a module augmentation. The runtime already reads \u003ccode\u003eopts?.enableSelector\u003c/code\u003e from init options; this lands the matching type declaration next to the other selector-resolution knobs. Accepts \u003ccode\u003efalse | true | 'optimize' | 'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/i18next/pull/2431\"\u003e#2431\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e (TypeOptions + runtime option). Opt-in mode that drops the flattened-primary form from \u003ccode\u003eNsResource\u003c/code\u003e at the type level — every namespace (primary included) is exposed only under its own key on \u003ccode\u003e$\u003c/code\u003e, uniformly across single- and multi-ns hooks. At runtime, a leading selector path segment matching the scope's namespace list is always rewritten as a namespace prefix, including the primary. Eliminates the silent-miss surface area where \u003ccode\u003et($ =\u0026gt; $.primary.foo)\u003c/code\u003e typechecks but doesn't resolve under the default mode (see \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e). Backward-compatible: default \u003ccode\u003eenableSelector: false | true | 'optimize'\u003c/code\u003e behavior is unchanged. Note: strict mode is incompatible with the \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2405\"\u003e#2405\u003c/a\u003e pattern (keys whose names match sibling namespaces) — those users should stay on default mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003egetFixedT\u003c/code\u003e accepts a fourth optional \u003ccode\u003efixedOpts\u003c/code\u003e argument carrying \u003ccode\u003escopeNs\u003c/code\u003e — the full namespace list the bound \u003ccode\u003et\u003c/code\u003e was created for. The selector API uses \u003ccode\u003escopeNs\u003c/code\u003e to detect when a path's first segment is a namespace prefix, \u003cstrong\u003ewithout\u003c/strong\u003e changing resolution scope. Resolution still uses the bound \u003ccode\u003ens\u003c/code\u003e (a single primary string in the typical react-i18next setup), so plain \u003ccode\u003et('key')\u003c/code\u003e lookups stay isolated to the primary namespace exactly as before — only \u003ccode\u003et($ =\u0026gt; $.secondaryNs.foo)\u003c/code\u003e selectors now route correctly under \u003ccode\u003euseTranslation([nsA, nsB])\u003c/code\u003e. Fixes the runtime side of \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003e#2429\u003c/a\u003e for the \u003ccode\u003ereact-i18next\u003c/code\u003e default-\u003ccode\u003ensMode\u003c/code\u003e case. The 4th argument is opt-in: existing 3-arg \u003ccode\u003egetFixedT(lng, ns, keyPrefix)\u003c/code\u003e callers see no behavior change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): unformatted interpolation values are now typed as \u003ccode\u003estring | number\u003c/code\u003e (was \u003ccode\u003estring\u003c/code\u003e). i18next stringifies values at runtime, so requiring callers to wrap numbers in \u003ccode\u003eString(...)\u003c/code\u003e for plain \u003ccode\u003e{{var}}\u003c/code\u003e placeholders was unnecessary friction — and could mask the real problem when a non-string value was passed alongside multiple interpolation slots (the \u003ccode\u003et()\u003c/code\u003e overload resolution would fall through to the 3-arg form and report a confusing \u0026quot;not assignable to string\u0026quot; error against the options object). Typed format specifiers like \u003ccode\u003e{{x, number}}\u003c/code\u003e, \u003ccode\u003e{{x, currency}}\u003c/code\u003e, \u003ccode\u003e{{x, datetime}}\u003c/code\u003e, etc. keep their precise types; this only relaxes the no-format default. The \u003ccode\u003ecount\u003c/code\u003e variable remains \u003ccode\u003enumber\u003c/code\u003e-only\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/573ae735682a082ad5a581dea3f2d5f517c53772\"\u003e\u003ccode\u003e573ae73\u003c/code\u003e\u003c/a\u003e 26.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/cc54b05b5cab9bf76cf66557c222c978bbb3c082\"\u003e\u003ccode\u003ecc54b05\u003c/code\u003e\u003c/a\u003e docs(changelog): 26.3.5 — multiline $t() options, replace mutation, escaped-l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3180d67291a8fff10950f79660420c106c047f94\"\u003e\u003ccode\u003e3180d67\u003c/code\u003e\u003c/a\u003e fix: skip interpolation of placeholders inside escaped values (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/d16f5a2da748082155007ba0677d32b877b1102e\"\u003e\u003ccode\u003ed16f5a2\u003c/code\u003e\u003c/a\u003e fix: stop mutating the passed replace object when returning details (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2441\"\u003e#2441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/bed56c115979de52bd85c46d9b7a7b13361bf736\"\u003e\u003ccode\u003ebed56c1\u003c/code\u003e\u003c/a\u003e fix: parse $t() nesting options block that spans multiple lines (\u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/c19e45864f3abbbe90e30be44cc131f2248394bf\"\u003e\u003ccode\u003ec19e458\u003c/code\u003e\u003c/a\u003e docs(changelog): link GHSA advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/7bb87d09f907b4395ed0825638d7d2c4356f7a89\"\u003e\u003ccode\u003e7bb87d0\u003c/code\u003e\u003c/a\u003e docs(changelog): reference security advisory for deepExtend fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.0.8...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.6 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans i18nKey={$ =\u0026gt; ...}\u0026gt;\u003c/code\u003e now typechecks under \u003ccode\u003eenableSelector: 'strict'\u003c/code\u003e. The \u003ccode\u003eTrans\u003c/code\u003e component's conditional type was gated on \u003ccode\u003e_EnableSelector extends true | 'optimize'\u003c/code\u003e, excluding \u003ccode\u003e'strict'\u003c/code\u003e and falling back to the legacy string-key signature. Runtime was already correct (it calls \u003ccode\u003ekeyFromSelector(i18nKey)\u003c/code\u003e whenever \u003ccode\u003etypeof i18nKey === 'function'\u003c/code\u003e); this is a type-only fix that widens the conditional to include \u003ccode\u003e'strict'\u003c/code\u003e. Thanks \u003ca href=\"https://github.com/Faithfinder\"\u003e\u003ccode\u003e@​Faithfinder\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/pull/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ccode\u003euseTranslation([nsA, nsB, ...])\u003c/code\u003e now passes its full namespace list to \u003ccode\u003egetFixedT\u003c/code\u003e via the new \u003ccode\u003escopeNs\u003c/code\u003e opt (requires \u003ccode\u003ei18next\u003c/code\u003e ≥ v26.0.10). This makes selector calls with a secondary-namespace prefix resolve correctly under default \u003ccode\u003ensMode\u003c/code\u003e: \u003ccode\u003et($ =\u0026gt; $.nsB.foo)\u003c/code\u003e previously missed silently because the bound \u003ccode\u003ens\u003c/code\u003e was the primary string only and i18next's selector rewrite needed an array. Resolution semantics are unchanged — plain \u003ccode\u003et('key')\u003c/code\u003e lookups still stay isolated to the primary namespace by default; use \u003ccode\u003ensMode: 'fallback'\u003c/code\u003e to opt into multi-ns fallback resolution as before. Fixes \u003ca href=\"https://redirect.github.com/i18next/i18next/issues/2429\"\u003ei18next#2429\u003c/a\u003e for \u003ccode\u003euseTranslation\u003c/code\u003e-based callers.\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v17.0.6...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-plugin-i18next` from 6.1.4 to 6.1.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/blob/main/CHANGELOG.md\"\u003eeslint-plugin-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/compare/v6.1.4...v6.1.5\"\u003e6.1.5\u003c/a\u003e (2026-06-28)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edetect strings ending with ellipsis (\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/a3d519819a3b272b1530d3ee46a3f409ef6cab41\"\u003ea3d5198\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/edvardchen/eslint-plugin-i18next/commit/afe9e870c2ff3355b3838a037911ab06c12fe113\"\u003e\u003ccode\u003eafe9e87\u003c/code\u003e\u003c/a\u003e chore(release): 6.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/7a6794fc60e891f1a8698debba3f7005bd7cf6e2\"\u003e\u003ccode\u003e7a6794f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/edvardchen/eslint-plugin-i18next/issues/160\"\u003e#160\u003c/a\u003e from mrginglymus/rm-lodash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/27a799629309d45b8e0e55b422178a50da4231d5\"\u003e\u003ccode\u003e27a7996\u003c/code\u003e\u003c/a\u003e chore(deps): swap lodash for native object spread\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/5ff15a85741936ec8f2aacdadcb5da3cb6499de5\"\u003e\u003ccode\u003e5ff15a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/edvardchen/eslint-plugin-i18next/issues/159\"\u003e#159\u003c/a\u003e from edvardchen/fix-ellipsis-detection-138\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/commit/a3d519819a3b272b1530d3ee46a3f409ef6cab41\"\u003e\u003ccode\u003ea3d5198\u003c/code\u003e\u003c/a\u003e fix: detect strings ending with ellipsis\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/edvardchen/eslint-plugin-i18next/compare/v6.1.4...v6.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AkshitRaiKakkar/OpenHandsAi/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshitRaiKakkar%2FOpenHandsAi/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"25.10.10","new_version":"26.3.6","update_type":"major","path":null,"pr_created_at":"2026-07-29T19:30:37.000Z","version_change":"25.10.10 → 26.3.6","issue":{"uuid":"5012980218","node_id":"PR_kwDOTS2XdM74K-Il","number":17,"state":"closed","title":"chore(deps): bump the version-all group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","javascript","type: chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-07T19:28:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-29T19:30:37.000Z","updated_at":"2026-08-07T19:29:11.000Z","time_to_close":777499,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"version-all","update_count":40,"packages":[{"name":"@heroui/react","old_version":"2.8.8","new_version":"3.2.2","repository_url":"https://github.com/heroui-inc/heroui"},{"name":"@microlink/react-json-view","old_version":"1.27.1","new_version":"1.31.23","repository_url":"https://github.com/microlinkhq/react-json-view"},{"name":"@react-router/node","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@react-router/serve","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/vite","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@tanstack/react-query","old_version":"5.90.20","new_version":"5.101.4","repository_url":"https://github.com/TanStack/query"},{"name":"axios","old_version":"1.16.0","new_version":"1.18.1","repository_url":"https://github.com/axios/axios"},{"name":"downshift","old_version":"9.3.2","new_version":"9.4.0","repository_url":"https://github.com/downshift-js/downshift"},{"name":"framer-motion","old_version":"12.38.0","new_version":"12.42.2","repository_url":"https://github.com/motiondivision/motion"},{"name":"i18next","old_version":"25.10.10","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-browser-languagedetector","old_version":"8.2.0","new_version":"8.2.1","repository_url":"https://github.com/i18next/i18next-browser-languageDetector"},{"name":"i18next-http-backend","old_version":"3.0.6","new_version":"4.0.0","repository_url":"https://github.com/i18next/i18next-http-backend"},{"name":"isbot","old_version":"5.1.34","new_version":"5.2.1","repository_url":"https://github.com/omrilotan/isbot"},{"name":"lucide-react","old_version":"0.563.0","new_version":"1.25.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"monaco-editor","old_version":"0.55.1","new_version":"0.56.0","repository_url":"https://github.com/microsoft/monaco-editor"},{"name":"posthog-js","old_version":"1.373.5","new_version":"1.407.0","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"react","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"react-dom","old_version":"19.2.4","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-i18next","old_version":"16.6.6","new_version":"17.0.10","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-icons","old_version":"5.5.0","new_version":"5.7.0","repository_url":"https://github.com/react-icons/react-icons"},{"name":"react-router","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"react-syntax-highlighter","old_version":"16.1.0","new_version":"16.1.1","repository_url":"https://github.com/react-syntax-highlighter/react-syntax-highlighter"},{"name":"tailwind-merge","old_version":"3.4.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"vite","old_version":"7.3.2","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"},{"name":"zustand","old_version":"5.0.13","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"@playwright/test","old_version":"1.60.0","new_version":"1.61.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@react-router/dev","old_version":"7.17.0","new_version":"8.3.0","repository_url":"https://github.com/remix-run/react-router"},{"name":"@tailwindcss/typography","old_version":"0.5.19","new_version":"0.5.20","repository_url":"https://github.com/tailwindlabs/tailwindcss-typography"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/node","old_version":"25.8.0","new_version":"26.1.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"jsdom","old_version":"27.4.0","new_version":"29.1.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"lint-staged","old_version":"16.2.7","new_version":"17.1.1","repository_url":"https://github.com/lint-staged/lint-staged"},{"name":"msw","old_version":"2.12.7","new_version":"2.15.0","repository_url":"https://github.com/mswjs/msw"},{"name":"prettier","old_version":"3.8.1","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"tailwindcss","old_version":"4.1.18","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"typescript","old_version":"5.9.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"vite-plugin-svgr","old_version":"4.5.0","new_version":"5.2.0","repository_url":"https://github.com/pd4d10/vite-plugin-svgr"},{"name":"vitest","old_version":"4.1.8","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the version-all group with 40 updates in the /frontend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `2.8.8` | `3.2.2` |\n| [@microlink/react-json-view](https://github.com/microlinkhq/react-json-view) | `1.27.1` | `1.31.23` |\n| [@react-router/node](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node) | `7.17.0` | `8.3.0` |\n| [@react-router/serve](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve) | `7.17.0` | `8.3.0` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.1.18` | `4.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.90.20` | `5.101.4` |\n| [axios](https://github.com/axios/axios) | `1.16.0` | `1.18.1` |\n| [downshift](https://github.com/downshift-js/downshift) | `9.3.2` | `9.4.0` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.38.0` | `12.42.2` |\n| [i18next](https://github.com/i18next/i18next) | `25.10.10` | `26.3.6` |\n| [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.2.0` | `8.2.1` |\n| [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | `3.0.6` | `4.0.0` |\n| [isbot](https://github.com/omrilotan/isbot) | `5.1.34` | `5.2.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.563.0` | `1.25.0` |\n| [monaco-editor](https://github.com/microsoft/monaco-editor) | `0.55.1` | `0.56.0` |\n| [posthog-js](https://github.com/PostHog/posthog-js) | `1.373.5` | `1.407.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.8` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.8` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `16.6.6` | `17.0.10` |\n| [react-icons](https://github.com/react-icons/react-icons) | `5.5.0` | `5.7.0` |\n| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.17.0` | `8.3.0` |\n| [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) | `16.1.0` | `16.1.1` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.4.0` | `3.6.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `7.3.2` | `8.1.5` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.13` | `5.0.14` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.60.0` | `1.61.1` |\n| [@react-router/dev](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dev) | `7.17.0` | `8.3.0` |\n| [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) | `0.5.19` | `0.5.20` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.8.0` | `26.1.1` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.8` | `4.1.10` |\n| [jsdom](https://github.com/jsdom/jsdom) | `27.4.0` | `29.1.1` |\n| [lint-staged](https://github.com/lint-staged/lint-staged) | `16.2.7` | `17.1.1` |\n| [msw](https://github.com/mswjs/msw) | `2.12.7` | `2.15.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.9.6` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.18` | `4.3.3` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.9.3` | `7.0.2` |\n| [vite-plugin-svgr](https://github.com/pd4d10/vite-plugin-svgr) | `4.5.0` | `5.2.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.8` | `4.1.10` |\n\n\nUpdates `@heroui/react` from 2.8.8 to 3.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heroui-inc/heroui/releases\"\u003e@​heroui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/h2\u003e\n\u003ch2\u003eIntroducing HeroUI v3\u003c/h2\u003e\n\u003cp\u003eA complete rewrite for React. A brand-new library for React Native.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOne design system. Beautiful everywhere.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e🌐 \u003cstrong\u003eWeb\u003c/strong\u003e → 75+ components, 21 new\n📱 \u003cstrong\u003eNative\u003c/strong\u003e → 37+ components, built from scratch\n🎨 \u003cstrong\u003eStyling\u003c/strong\u003e → Tailwind CSS v4, CSS variables, OKLCH, BEM\n⚡ \u003cstrong\u003ePerformance\u003c/strong\u003e → CSS animations, no JS runtime\n♿ \u003cstrong\u003eAccessibility\u003c/strong\u003e → React Aria Components\n✨ \u003cstrong\u003eArchitecture\u003c/strong\u003e → Compound components, fully customizable, headless-ready\n🤖 \u003cstrong\u003eAI\u003c/strong\u003e → MCP Server, Agent Skills, LLMs.txt\n📎 \u003cstrong\u003eFigma Kit v3\u003c/strong\u003e with 1:1 component parity\u003c/p\u003e\n\u003cp\u003eEvery component rewritten. Every animation moved to CSS. Styles decoupled from implementation. And tooling that treats AI assistants as a first-class dev interface.\u003c/p\u003e\n\u003cp\u003e🔗 Post/Tweet → \u003ca href=\"https://x.com/hero_ui/status/2035353807735976374\"\u003ehttps://x.com/hero_ui/status/2035353807735976374\u003c/a\u003e\n📋 Release Notes → \u003ca href=\"https://heroui.com/docs/react/releases/v3-0-0\"\u003ehttps://heroui.com/docs/react/releases/v3-0-0\u003c/a\u003e\n🌐 Docs → \u003ca href=\"https://heroui.com/docs/react/getting-started/quick-start\"\u003ehttps://heroui.com/docs/react/getting-started/quick-start\u003c/a\u003e\n📱 Native Docs → \u003ca href=\"https://heroui.com/docs/native/getting-started/quick-start\"\u003ehttps://heroui.com/docs/native/getting-started/quick-start\u003c/a\u003e\n🖼️ Figma Kit → \u003ca href=\"https://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\"\u003ehttps://www.figma.com/community/file/1546526812159103429/heroui-figma-kit-v3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA huge thank you to everyone who used the alpha and beta versions — your bug reports, feedback, and patience helped us find and fix issues that made v3 stable. This release wouldn't be the same without you ❤️\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.10\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(use-draggable): persist transform position across renders by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6287\"\u003eheroui-inc/heroui#6287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(select): scroll to selected item when reopening dropdown by \u003ca href=\"https://github.com/deepansh946\"\u003e\u003ccode\u003e@​deepansh946\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6269\"\u003eheroui-inc/heroui#6269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump react-aria versions (release v1.16.0) by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6281\"\u003eheroui-inc/heroui#6281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): typo in AutocompleteItem by \u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): broken example in autocomplete by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6292\"\u003eheroui-inc/heroui#6292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6288\"\u003eheroui-inc/heroui#6288\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/muhammad-paksi\"\u003e\u003ccode\u003e@​muhammad-paksi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6247\"\u003eheroui-inc/heroui#6247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/heroui-inc/heroui/compare/@heroui/react@2.8.9...@heroui/react@2.8.10\"\u003ehttps://github.com/heroui-inc/heroui/compare/@​heroui/react@2.8.9...@​heroui/react@2.8.10\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.8.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(system-rsc): extendVariants rendering behavior with as by \u003ca href=\"https://github.com/ITBoomBKStudio\"\u003e\u003ccode\u003e@​ITBoomBKStudio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6215\"\u003eheroui-inc/heroui#6215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump RA dependencies by \u003ca href=\"https://github.com/wingkwong\"\u003e\u003ccode\u003e@​wingkwong\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6221\"\u003eheroui-inc/heroui#6221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(button): correct disableRipple prop precedence by \u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(changesets): :package: version packages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6227\"\u003eheroui-inc/heroui#6227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KMNowak\"\u003e\u003ccode\u003e@​KMNowak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/heroui-inc/heroui/pull/6199\"\u003eheroui-inc/heroui#6199\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/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md\"\u003e@​heroui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003e@​heroui/react\u003c/code\u003e\u003c/h1\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eREADME updated\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ev3.0.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b2b19129ec5ae7bcd432bcd89f78c4c25c7ee9ae\"\u003e\u003ccode\u003eb2b1912\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/jrgarciadev\"\u003e\u003ccode\u003e@​jrgarciadev\u003c/code\u003e\u003c/a\u003e! - Types fixed and removed needless folders from dist\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​heroui/styles\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTypes fixed and removed needless folders from dist\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0-alpha.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet up alpha prerelease configuration to ensure v3 remains in alpha status and prevent accidental release of v3.0.0 stable version\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/heroui-inc/heroui/commit/79539b7bfc033942388c81d5ecb793fe467ccc57\"\u003e\u003ccode\u003e79539b7\u003c/code\u003e\u003c/a\u003e chore: release v3.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/be65af7396029ff6dbfe6737a56b098f668bf904\"\u003e\u003ccode\u003ebe65af7\u003c/code\u003e\u003c/a\u003e V3.2.2 (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6660\"\u003e#6660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/759ef8ea262b6b00aad2d1d75409d3ecf13943e6\"\u003e\u003ccode\u003e759ef8e\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/b29d1b5d8d1aa70b46e3b01a3be20d9666ebccc3\"\u003e\u003ccode\u003eb29d1b5\u003c/code\u003e\u003c/a\u003e feat(tabs): add tabs scroller to handle overflow (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6633\"\u003e#6633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/75f4c116070eb26d6e51a5efd5b2f8d4cbeb363c\"\u003e\u003ccode\u003e75f4c11\u003c/code\u003e\u003c/a\u003e chore: release v3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/c1aed65a0c9aac052323a06a8bfae5818a72cf6a\"\u003e\u003ccode\u003ec1aed65\u003c/code\u003e\u003c/a\u003e fix(switch-group): add missing switch-group-items (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6655\"\u003e#6655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/21768648d66b74498bd529005a52fa0937acad89\"\u003e\u003ccode\u003e2176864\u003c/code\u003e\u003c/a\u003e fix(react): externalize react-aria subpaths to prevent vendored copy (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6653\"\u003e#6653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/88c581f1641a3e3d76e155f7a76340b6df696dd5\"\u003e\u003ccode\u003e88c581f\u003c/code\u003e\u003c/a\u003e chore: release v3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/87a9cb6ee23d05b129a978ce76e779b15a994b7e\"\u003e\u003ccode\u003e87a9cb6\u003c/code\u003e\u003c/a\u003e fix(tooltip): avoid Focusable warning when mounted inside inert subtree (\u003ca href=\"https://github.com/heroui-inc/heroui/tree/HEAD/packages/react/issues/6628\"\u003e#6628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroui-inc/heroui/commit/48dd655228d90274a4e0e863c08e044819c692b5\"\u003e\u003ccode\u003e48dd655\u003c/code\u003e\u003c/a\u003e fix(autocomplete): wrap popover content in dialog to prevent stray focus ring...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heroui-inc/heroui/commits/v3.2.2/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​heroui/react\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@microlink/react-json-view` from 1.27.1 to 1.31.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microlinkhq/react-json-view/releases\"\u003e@​microlink/react-json-view's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.31.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/189\"\u003emicrolinkhq/react-json-view#189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 22.0.0 to 22.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/190\"\u003emicrolinkhq/react-json-view#190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.22...v1.31.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/188\"\u003emicrolinkhq/react-json-view#188\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.21...v1.31.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.1.2 to 22.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/166\"\u003emicrolinkhq/react-json-view#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass-loader from 16.0.8 to 17.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/167\"\u003emicrolinkhq/react-json-view#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.106.2 to 5.107.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/168\"\u003emicrolinkhq/react-json-view#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.99.0 to 1.100.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/169\"\u003emicrolinkhq/react-json-view#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/plugin-syntax-jsx\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/170\"\u003emicrolinkhq/react-json-view#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/eslint-parser\u003c/code\u003e from 7.28.6 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/171\"\u003emicrolinkhq/react-json-view#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.29.3 to 7.29.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/172\"\u003emicrolinkhq/react-json-view#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sass from 1.100.0 to 1.101.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/173\"\u003emicrolinkhq/react-json-view#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/183\"\u003emicrolinkhq/react-json-view#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump webpack from 5.107.2 to 5.108.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/187\"\u003emicrolinkhq/react-json-view#187\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.20...v1.31.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​babel/register\u003c/code\u003e from 7.28.6 to 7.29.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/165\"\u003emicrolinkhq/react-json-view#165\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.19...v1.31.20\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.19...v1.31.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump pnpm/action-setup from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/163\"\u003emicrolinkhq/react-json-view#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump jsdom from 29.0.2 to 29.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/164\"\u003emicrolinkhq/react-json-view#164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.31.18...v1.31.19\"\u003ehttps://github.com/microlinkhq/react-json-view/compare/v1.31.18...v1.31.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.31.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump babel-plugin-istanbul from 7.0.1 to 8.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/158\"\u003emicrolinkhq/react-json-view#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon from 21.0.3 to 21.1.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/pull/159\"\u003emicrolinkhq/react-json-view#159\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/microlinkhq/react-json-view/blob/master/CHANGELOG.md\"\u003e@​microlink/react-json-view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.31.23 (2026-07-21)\u003c/h2\u003e\n\u003ch2\u003e1.31.22 (2026-07-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.21 (2026-07-01)\u003c/h2\u003e\n\u003ch2\u003e1.31.20 (2026-05-02)\u003c/h2\u003e\n\u003ch2\u003e1.31.19 (2026-04-28)\u003c/h2\u003e\n\u003ch2\u003e1.31.18 (2026-04-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.17 (2026-04-09)\u003c/h2\u003e\n\u003ch2\u003e1.31.16 (2026-04-03)\u003c/h2\u003e\n\u003ch2\u003e1.31.15 (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003e1.31.14 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.13 (2026-03-18)\u003c/h2\u003e\n\u003ch2\u003e1.31.12 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.11 (2026-03-17)\u003c/h2\u003e\n\u003ch2\u003e1.31.10 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.9 (2026-03-16)\u003c/h2\u003e\n\u003ch2\u003e1.31.8 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.7 (2026-03-11)\u003c/h2\u003e\n\u003ch2\u003e1.31.6 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.5 (2026-03-10)\u003c/h2\u003e\n\u003ch2\u003e1.31.4 (2026-03-08)\u003c/h2\u003e\n\u003ch2\u003e1.31.3 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.2 (2026-03-07)\u003c/h2\u003e\n\u003ch2\u003e1.31.1 (2026-03-05)\u003c/h2\u003e\n\u003ch2\u003e1.31.0 (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types field to package.json (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2e6320af1cb709536355218c79357842dd64d900\"\u003e2e6320a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edev server:\u003c/strong\u003e add example of name as jsx element (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84ada17617ad1df0e748e5cf6383f9cdcefa6e02\"\u003e84ada17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance VariableEditor to support BigNumber type handling (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/98d2d1e508f7121f46c2513435949a69454a75bf\"\u003e98d2d1e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add handling namespace when is an react object (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e11b60af87fa1755554cb5c846d1d49ea12d131e\"\u003ee11b60a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eshow comma option (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/bdb39074635ee84cb2b2d18e7e5f746ae9b0883f\"\u003ebdb3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger onSelect when clicking keys (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6db9f85e3dc4a7d2ad6a04414f498d49201de284\"\u003e6db9f85\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e add JSX.Element as name prop type (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/ebd8aed8246742ebc41776a8a0bb489b8e711138\"\u003eebd8aed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e优化 rjvId 生成方式，添加随机字符串增加唯一性 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/6d85757b6e51ddb9c7cbf4f99c9688cf965bd90f\"\u003e6d85757\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaction config (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e150a8a91dc655e583bc43939b0a64affa0c3bdd\"\u003ee150a8a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd back build step (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0ddc2293be9edb60067065e4a1a0603dbcfcf05a\"\u003e0ddc229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd legacy ssl flag (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/4005834bb4234ddfdef66f2173a53a686641cb21\"\u003e4005834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd missed devDeps in new create-react-app (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/5275cd446f7d4202b06f4a0d048092066a6b5f5b\"\u003e5275cd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAutosizeTextarea \u003ccode\u003eref\u003c/code\u003e prop (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/84b8110b3ee2872ce937439f02275645fb7d17a9\"\u003e84b8110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix toggleCollapsed handling sparse arrays (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/656e2d0dda5c77cd89b3b86c8487b0fb1000d7d5\"\u003e656e2d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efunction call (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/86bbd60caef8d80b812a45c8ea9326df62fcb02f\"\u003e86bbd60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejson viewer:\u003c/strong\u003e add support for functional components (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/f478f55aa2b9dbe730f9638485d9c584ccbbcc45\"\u003ef478f55\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emissing quotesOnKeys props in TS typings (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/25f5205f78663a37610295268bf3f7c669592681\"\u003e25f5205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unnecessary CSS (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/990cf94da62202912baca7d1c5584daf9521a092\"\u003e990cf94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace class attribute by classname (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/e38bab4f5468bcd77112564ed2a34fb5b6d550a6\"\u003ee38bab4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve test failures in Node 20+ and below Node 17 (\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c00d5cc907c6200b6c7d9076c9e4a0a0bb8433b6\"\u003ec00d5cc\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/microlinkhq/react-json-view/commit/129b0043434725dabaec16842d307c4885de1755\"\u003e\u003ccode\u003e129b004\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/c0a9a4a1faf36a0583972916d21e211e755d3aad\"\u003e\u003ccode\u003ec0a9a4a\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon from 22.0.0 to 22.1.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/7acd5f3befe44ce8d46e09108eaf0290c3ff5907\"\u003e\u003ccode\u003e7acd5f3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/2580eedd49b56e86406941709ee48394c976cc00\"\u003e\u003ccode\u003e2580eed\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/53771e8b975f8731be9453fac2281bf6fb23a6ff\"\u003e\u003ccode\u003e53771e8\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/d6aa26db8a51dec8759ea964d321dd27db388689\"\u003e\u003ccode\u003ed6aa26d\u003c/code\u003e\u003c/a\u003e chore(release): 1.31.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/0e0b7791d182feb8097acb0ed661dae5471d6d93\"\u003e\u003ccode\u003e0e0b779\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump webpack from 5.107.2 to 5.108.3 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/187\"\u003e#187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/364702e5021b1b869fdf15603b29721aa53de202\"\u003e\u003ccode\u003e364702e\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/8156fca31f16d0107756775f80221eec62ddee8b\"\u003e\u003ccode\u003e8156fca\u003c/code\u003e\u003c/a\u003e build: tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microlinkhq/react-json-view/commit/96da330a2ed4e910d26ef5039393d33f43a17977\"\u003e\u003ccode\u003e96da330\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sass from 1.100.0 to 1.101.0 (\u003ca href=\"https://redirect.github.com/microlinkhq/react-json-view/issues/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microlinkhq/react-json-view/compare/v1.27.1...v1.31.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/node` from 7.17.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-node/CHANGELOG.md\"\u003e@​react-router/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003etypescript@7\u003c/code\u003e to be used (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump dependencies (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15106\"\u003e#15106\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eBumped \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e from \u003ccode\u003e^0.13.0\u003c/code\u003e to \u003ccode\u003e^0.13.3\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.0\"\u003e\u003ccode\u003ereact-router@8.0.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@7.18.0\"\u003e\u003ccode\u003ereact-router@7.18.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/687ab72dddcc19d2fc749f992fe29789ba13daad\"\u003e\u003ccode\u003e687ab72\u003c/code\u003e\u003c/a\u003e Prep release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/4680094a4baba4bc704c5bf34eb08f182f468f7b\"\u003e\u003ccode\u003e4680094\u003c/code\u003e\u003c/a\u003e feat: allow typescript@7 to be used with react-router (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15317\"\u003e#15317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/fdd896aadb1c470db358b4d9fe76fb53c9325f21\"\u003e\u003ccode\u003efdd896a\u003c/code\u003e\u003c/a\u003e Add tsconfigs for test files (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-node/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/node@8.3.0/packages/react-router-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@react-router/serve` from 7.17.0 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/remix-run/react-router/releases\"\u003e@​react-router/serve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v820\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v801\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v800\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.2\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.1\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\"\u003ehttps://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.18.0\u003c/h2\u003e\n\u003cp\u003eSee the changelog for release notes: \u003ca href=\"https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\"\u003ehttps://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7180\u003c/a\u003e\u003c/p\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/remix-run/react-router/blob/main/packages/react-router-serve/CHANGELOG.md\"\u003e@​react-router/serve's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.3.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.3.0\"\u003e\u003ccode\u003ereact-router@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.3.0\"\u003e\u003ccode\u003e@react-router/express@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.3.0\"\u003e\u003ccode\u003e@react-router/node@8.3.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.2.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0\"\u003e\u003ccode\u003ereact-router@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.2.0\"\u003e\u003ccode\u003e@react-router/express@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.2.0\"\u003e\u003ccode\u003e@react-router/node@8.2.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.1.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse Node's built-in networking APIs to find an available port and remove the \u003ccode\u003eget-port\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0\"\u003e\u003ccode\u003ereact-router@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.1.0\"\u003e\u003ccode\u003e@react-router/express@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.1.0\"\u003e\u003ccode\u003e@react-router/node@8.1.0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/react-router@8.0.1\"\u003e\u003ccode\u003ereact-router@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.0.1\"\u003e\u003ccode\u003e@react-router/express@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.0.1\"\u003e\u003ccode\u003e@react-router/node@8.0.1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch from \u003ccode\u003e@mjackson/node-fetch-server\u003c/code\u003e to \u003ccode\u003e@remix-run/node-fetch-server\u003c/code\u003e now that we can directly use ESM-only packages (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14930\"\u003e#14930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate minimum Node version to 22.22.0 (\u003ca href=\"https://redirect.github.com/remix-run/react-router/pull/14928\"\u003e#14928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003eexpress\u003c/code\u003e from \u003ccode\u003e4.21.2\u003c/code\u003e to \u003ccode\u003e5.2.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\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/remix-run/react-router/commit/2edaca7a4f12a50cad002d55d84f73b0cdd462b6\"\u003e\u003ccode\u003e2edaca7\u003c/code\u003e\u003c/a\u003e Release v8.3.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15294\"\u003e#15294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/05180441b118d26da4df94bacc2211923d87e4c1\"\u003e\u003ccode\u003e0518044\u003c/code\u003e\u003c/a\u003e Release v8.2.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15264\"\u003e#15264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/32876147fd414d9115ecdc344f6fef24ccf8a087\"\u003e\u003ccode\u003e3287614\u003c/code\u003e\u003c/a\u003e Release v8.1.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15227\"\u003e#15227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/aa35115b85345df2bc640475a57e1b1125a8dae6\"\u003e\u003ccode\u003eaa35115\u003c/code\u003e\u003c/a\u003e Prep 8.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/6db7409d287763b625a15ba31418416c4dc25035\"\u003e\u003ccode\u003e6db7409\u003c/code\u003e\u003c/a\u003e Remove small runtime CLI dependencies (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15239\"\u003e#15239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/d10df2d4ae58c98660414db15c4b506013cb8c3c\"\u003e\u003ccode\u003ed10df2d\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15210\"\u003e#15210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/c89079321dc0740d7ac690f8b024824a150f90c5\"\u003e\u003ccode\u003ec890793\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/36122b36a8c183dfbe4bcd278c585a80617c921e\"\u003e\u003ccode\u003e36122b3\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-serve/issues/15198\"\u003e#15198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/8fc707d399c521830e391fc02f421e04f23b9cf3\"\u003e\u003ccode\u003e8fc707d\u003c/code\u003e\u003c/a\u003e chore: format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/remix-run/react-router/commit/7e9be69e0843cf381a112fe04ef8bff76215e67e\"\u003e\u003ccode\u003e7e9be69\u003c/code\u003e\u003c/a\u003e Version 8.0.0-pre.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/remix-run/react-router/commits/@react-router/serve@8.3.0/packages/react-router-serve\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.1.18 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edrop-shadow-*\u003c/code\u003e color utilities work with custom shadow values containing \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20080\"\u003e#20080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 'Sourcemap is likely to be incorrect' warnings when using \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20103\"\u003e#20103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/webpack\u003c/code\u003e can be installed in Rspack projects without requiring \u003ccode\u003ewebpack\u003c/code\u003e as a peer dependency (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20027\"\u003e#20027\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.2] - 2026-06-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport bare spacing values for \u003ccode\u003eauto-rows-*\u003c/code\u003e and \u003ccode\u003eauto-cols-*\u003c/code\u003e utilities (e.g. \u003ccode\u003eauto-rows-12\u003c/code\u003e and \u003ccode\u003eauto-cols-16\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20229\"\u003e#20229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode from crashing on Windows when \u003ccode\u003e@source\u003c/code\u003e points to a directory that doesn't exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20242\"\u003e#20242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing in Deno v2.8.x when \u003ccode\u003econtext.parentURL\u003c/code\u003e is not a valid URL (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e in \u003ccode\u003e--watch\u003c/code\u003e mode rebuilds when the input CSS file changes in an ignored directory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20246\"\u003e#20246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@variant\u003c/code\u003e rules used in \u003ccode\u003eaddBase(…)\u003c/code\u003e to use custom variants defined later (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20247\"\u003e#20247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from crashing during HMR when scanned files or directories are deleted (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20259\"\u003e#20259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate \u003ccode\u003efont-size\u003c/code\u003e instead of \u003ccode\u003ecolor\u003c/code\u003e declarations for \u003ccode\u003etext-[--spacing(…)]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20260\"\u003e#20260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@source\u003c/code\u003e patterns from scanning unrelated sibling files and folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates adjacent to Template Toolkit delimiters like \u003ccode\u003e%]…[%\u003c/code\u003e in \u003ccode\u003e.tt\u003c/code\u003e, \u003ccode\u003e.tt2\u003c/code\u003e, and \u003ccode\u003e.tx\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExtract class candidates from conditional Maud syntax like \u003ccode\u003ep.text-black[condition]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20269\"\u003e#20269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@position-try\u003c/code\u003e rules from triggering unknown at-rule warnings when optimizing CSS (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport class suggestions for named opacity modifiers from \u003ccode\u003e--opacity\u003c/code\u003e theme values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20287\"\u003e#20287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent type errors in \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e when used with newer PostCSS patch releases (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20289\"\u003e#20289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.3.1] - 2026-06-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--silent\u003c/code\u003e option to suppress output in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20100\"\u003e#20100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecation warnings by using \u003ccode\u003eModule#registerHooks\u003c/code\u003e instead of \u003ccode\u003eModule#register\u003c/code\u003e on Node 26+ (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20028\"\u003e#20028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: don't crash when plugin utilities throw for unsupported values (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20052\"\u003e#20052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003e@apply\u003c/code\u003e to be used with CSS mixins (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/19427\"\u003e#19427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003enot-*\u003c/code\u003e correctly negates \u003ccode\u003e@container\u003c/code\u003e queries, including \u003ccode\u003estyle(…)\u003c/code\u003e queries (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20059\"\u003e#20059\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/056a1550721d4bf79ff732d5ab9414fa83f7064f\"\u003e\u003ccode\u003e056a155\u003c/code\u003e\u003c/a\u003e 4.3.2 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20281\"\u003e#20281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bb6a10937c7e1434db39919fbb4df4a8982dba7f\"\u003e\u003ccode\u003ebb6a109\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003e.ts\u003c/code\u003e instead of \u003ccode\u003e.css\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/8a14a710102cae195f6811e8578bef9477bc6be9\"\u003e\u003ccode\u003e8a14a71\u003c/code\u003e\u003c/a\u003e 4.3.1 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20226\"\u003e#20226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/73983e1cf5bc0ae721f4568cc24a5b5067b6b90b\"\u003e\u003ccode\u003e73983e1\u003c/code\u003e\u003c/a\u003e Fix 'Sourcemap is likely to be incorrect' warnings when using `@tailwindcss/v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/588bd7371f4cae96426e1387819b7fd1d99765f9\"\u003e\u003ccode\u003e588bd73\u003c/code\u003e\u003c/a\u003e 4.3.0 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20023\"\u003e#20023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/d194d4c3e656313421f1cfa1954db8f58eec0fcd\"\u003e\u003ccode\u003ed194d4c\u003c/code\u003e\u003c/a\u003e docs: fix various typos in comments and documentation (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19878\"\u003e#19878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/db27049caaae08978995f25b61f8336f543a4640\"\u003e\u003ccode\u003edb27049\u003c/code\u003e\u003c/a\u003e fix(\u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e): include \u003ca href=\"https://github.com/variant\"\u003e\u003ccode\u003e@​variant\u003c/code\u003e\u003c/a\u003e in feature detection (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19966\"\u003e#19966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5a799900d4b43ca4902398a38c6f0a5b37a98ed9\"\u003e\u003ccode\u003e5a79990\u003c/code\u003e\u003c/a\u003e Always resolve relative files, relative to the current .css file (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19965\"\u003e#19965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new releaser for \u003ccode\u003e@​tailwindcss/vite\u003c/code\u003e since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tanstack/react-query` from 5.90.20 to 5.101.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/TanStack/query/releases\"\u003e@​tanstack/react-query's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-devtools\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-next-experimental\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query-persist-client\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-persist-client-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​tanstack/react-query\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\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/TanStack/query/blob/main/packages/react-query/CHANGELOG.md\"\u003e@​tanstack/react-query's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.101.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/7e3c822a10896f41a8f1031c16b85096277af677\"\u003e\u003ccode\u003e7e3c822\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/9eff92ed86e284ec0125b3a3539d028688235bd1\"\u003e\u003ccode\u003e9eff92e\u003c/code\u003e\u003c/a\u003e]:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.101.0\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies []:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.101.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.14\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003efix(react-query): do not go into optimistic fetching state when not subscribed (\u003ca href=\"https://redirect.github.com/TanStack/query/pull/10759\"\u003e#10759\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies []:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​tanstack/query-core\u003c/code\u003e\u003ca href=\"https://github.com/5\"\u003e\u003ccode\u003e@​5\u003c/code\u003e\u003c/a\u003e.100.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.100.13\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanSta...\n\n_Description has been truncated_","html_url":"https://github.com/lvxq333/CodingAgent/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvxq333%2FCodingAgent/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"26.2.0","new_version":"26.3.6","update_type":"minor","path":null,"pr_created_at":"2026-07-29T03:28:49.000Z","version_change":"26.2.0 → 26.3.6","issue":{"uuid":"5005103516","node_id":"PR_kwDOSaIDb873xQky","number":32,"state":"closed","title":"chore(deps): bump the dependencies group across 1 directory with 49 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-08-02T01:59:01.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-29T03:28:49.000Z","updated_at":"2026-08-02T01:59:03.000Z","time_to_close":340212,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":49,"packages":[{"name":"@changesets/cli","old_version":"2.31.0","new_version":"2.31.1","repository_url":"https://github.com/changesets/changesets"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"10.0.1","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.62.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@types/node","old_version":"20.19.40","new_version":"26.1.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"eslint","old_version":"9.39.4","new_version":"10.8.0","repository_url":"https://github.com/eslint/eslint"},{"name":"eslint-config-prettier","old_version":"9.1.2","new_version":"10.1.8","repository_url":"https://github.com/prettier/eslint-config-prettier"},{"name":"prettier","old_version":"3.8.3","new_version":"3.9.6","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript","old_version":"5.6.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.59.2","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@isomorphic-git/lightning-fs","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/isomorphic-git/lightning-fs"},{"name":"isomorphic-git","old_version":"1.37.6","new_version":"1.40.0","repository_url":"https://github.com/isomorphic-git/isomorphic-git"},{"name":"vitest","old_version":"3.2.7","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@fastify/cors","old_version":"10.1.0","new_version":"11.3.0","repository_url":"https://github.com/fastify/fastify-cors"},{"name":"@fastify/jwt","old_version":"9.1.0","new_version":"10.2.1","repository_url":"https://github.com/fastify/fastify-jwt"},{"name":"@fastify/swagger-ui","old_version":"5.2.6","new_version":"6.1.1","repository_url":"https://github.com/fastify/fastify-swagger-ui"},{"name":"@prisma/client","old_version":"6.19.3","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"bcryptjs","old_version":"2.4.3","new_version":"3.0.3","repository_url":"https://github.com/dcodeIO/bcrypt.js"},{"name":"@types/bcryptjs","old_version":"2.4.6","new_version":"3.0.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jose","old_version":"6.2.3","new_version":"6.2.5","repository_url":"https://github.com/panva/jose"},{"name":"zod","old_version":"3.25.76","new_version":"4.4.3","repository_url":"https://github.com/colinhacks/zod"},{"name":"prisma","old_version":"6.19.3","new_version":"7.9.1","repository_url":"https://github.com/prisma/prisma"},{"name":"tsx","old_version":"4.23.0","new_version":"4.23.1","repository_url":"https://github.com/privatenumber/tsx"},{"name":"@rollup/rollup-darwin-arm64","old_version":"4.40.1","new_version":"4.62.3","repository_url":"https://github.com/rollup/rollup"},{"name":"@vitest/coverage-v8","old_version":"1.6.0","new_version":"4.1.10","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"lucide-react","old_version":"0.460.0","new_version":"1.27.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"tailwind-merge","old_version":"2.6.1","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"@testing-library/jest-dom","old_version":"6.9.1","new_version":"7.0.0","repository_url":"https://github.com/testing-library/jest-dom"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.17","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"jsdom","old_version":"29.1.1","new_version":"30.0.1","repository_url":"https://github.com/jsdom/jsdom"},{"name":"@vitejs/plugin-react","old_version":"4.7.0","new_version":"6.0.4","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"concurrently","old_version":"9.2.4","new_version":"10.0.4","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"electron","old_version":"39.8.10","new_version":"43.2.0","repository_url":"https://github.com/electron/electron"},{"name":"vite","old_version":"6.4.3","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"},{"name":"wait-on","old_version":"8.0.5","new_version":"9.1.0","repository_url":"https://github.com/jeffbski/wait-on"},{"name":"@types/vscode","old_version":"1.118.0","new_version":"1.125.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@xyflow/react","old_version":"12.10.2","new_version":"12.11.2","repository_url":"https://github.com/xyflow/xyflow"},{"name":"i18next","old_version":"26.2.0","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"react-router-dom","old_version":"7.18.1","new_version":"7.18.2","repository_url":"https://github.com/remix-run/react-router"},{"name":"zustand","old_version":"5.0.13","new_version":"5.0.14","repository_url":"https://github.com/pmndrs/zustand"},{"name":"autoprefixer","old_version":"10.5.0","new_version":"10.5.4","repository_url":"https://github.com/postcss/autoprefixer"},{"name":"eslint-plugin-react-hooks","old_version":"5.2.0","new_version":"7.1.1","repository_url":"https://github.com/facebook/react"},{"name":"eslint-plugin-react-refresh","old_version":"0.4.26","new_version":"0.5.3","repository_url":"https://github.com/ArnaudBarre/eslint-plugin-react-refresh"},{"name":"postcss","old_version":"8.5.23","new_version":"8.5.25","repository_url":"https://github.com/postcss/postcss"},{"name":"tailwindcss","old_version":"3.4.19","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"framer-motion","old_version":"12.42.2","new_version":"12.43.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"react-is","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"recharts","old_version":"3.9.2","new_version":"3.10.1","repository_url":"https://github.com/recharts/recharts"},{"name":"globals","old_version":"17.7.0","new_version":"17.8.0","repository_url":"https://github.com/sindresorhus/globals"}],"path":null,"ecosystem":"npm"},"body":"Bumps the dependencies group with 49 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@changesets/cli](https://github.com/changesets/changesets) | `2.31.0` | `2.31.1` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `10.0.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.62.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.40` | `26.1.2` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.8.0` |\n| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `9.1.2` | `10.1.8` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.3` | `3.9.6` |\n| [typescript](https://github.com/microsoft/TypeScript) | `5.6.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.2` | `8.65.0` |\n| [@isomorphic-git/lightning-fs](https://github.com/isomorphic-git/lightning-fs) | `4.6.2` | `4.7.0` |\n| [isomorphic-git](https://github.com/isomorphic-git/isomorphic-git) | `1.37.6` | `1.40.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `3.2.7` | `4.1.10` |\n| [@fastify/cors](https://github.com/fastify/fastify-cors) | `10.1.0` | `11.3.0` |\n| [@fastify/jwt](https://github.com/fastify/fastify-jwt) | `9.1.0` | `10.2.1` |\n| [@fastify/swagger-ui](https://github.com/fastify/fastify-swagger-ui) | `5.2.6` | `6.1.1` |\n| [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client) | `6.19.3` | `7.9.1` |\n| [bcryptjs](https://github.com/dcodeIO/bcrypt.js) | `2.4.3` | `3.0.3` |\n| [@types/bcryptjs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bcryptjs) | `2.4.6` | `3.0.0` |\n| [jose](https://github.com/panva/jose) | `6.2.3` | `6.2.5` |\n| [zod](https://github.com/colinhacks/zod) | `3.25.76` | `4.4.3` |\n| [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) | `6.19.3` | `7.9.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.23.0` | `4.23.1` |\n| [@rollup/rollup-darwin-arm64](https://github.com/rollup/rollup) | `4.40.1` | `4.62.3` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `1.6.0` | `4.1.10` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.460.0` | `1.27.0` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `2.6.1` | `3.6.0` |\n| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` |\n| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `4.7.0` | `6.0.4` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `9.2.4` | `10.0.4` |\n| [electron](https://github.com/electron/electron) | `39.8.10` | `43.2.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `6.4.3` | `8.1.5` |\n| [wait-on](https://github.com/jeffbski/wait-on) | `8.0.5` | `9.1.0` |\n| [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) | `1.118.0` | `1.125.0` |\n| [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) | `12.10.2` | `12.11.2` |\n| [i18next](https://github.com/i18next/i18next) | `26.2.0` | `26.3.6` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.1` | `7.18.2` |\n| [zustand](https://github.com/pmndrs/zustand) | `5.0.13` | `5.0.14` |\n| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.5.0` | `10.5.4` |\n| [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `5.2.0` | `7.1.1` |\n| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.26` | `0.5.3` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.23` | `8.5.25` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `3.4.19` | `4.3.3` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` |\n| [react-is](https://github.com/react/react/tree/HEAD/packages/react-is) | `19.2.7` | `19.2.8` |\n| [recharts](https://github.com/recharts/recharts) | `3.9.2` | `3.10.1` |\n| [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` |\n\n\nUpdates `@changesets/cli` from 2.31.0 to 2.31.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/changesets/changesets/releases\"\u003e@​changesets/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​changesets/cli\u003c/code\u003e\u003ca href=\"https://github.com/2\"\u003e\u003ccode\u003e@​2\u003c/code\u003e\u003c/a\u003e.31.1\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/changesets/changesets/pull/2159\"\u003e#2159\u003c/a\u003e \u003ca href=\"https://github.com/changesets/changesets/commit/15cf5928fb9968ba20b59ed6c794013c52c92d09\"\u003e\u003ccode\u003e15cf592\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/ingvaldlorentzen\"\u003e\u003ccode\u003e@​ingvaldlorentzen\u003c/code\u003e\u003c/a\u003e! - Fixed already-published version detection with npm 12, which always wraps successful \u003ccode\u003enpm info --json\u003c/code\u003e output in an array. The unwrapped output made \u003ccode\u003echangeset publish\u003c/code\u003e treat every package as unpublished and fail attempting to republish existing versions.\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/changesets/changesets/commit/a897bb8ac115fa65343a8bfe53654040c1542a80\"\u003e\u003ccode\u003ea897bb8\u003c/code\u003e\u003c/a\u003e Use a different publish tag for \u003ccode\u003emaintenance/v2\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/e8650b9bf45560ca7642a1e043ac92111b886073\"\u003e\u003ccode\u003ee8650b9\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/15cf5928fb9968ba20b59ed6c794013c52c92d09\"\u003e\u003ccode\u003e15cf592\u003c/code\u003e\u003c/a\u003e Fixed handling of the npm 12 info output (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/9f2cb2ad87061ba1715691b7ebef7e192ccede58\"\u003e\u003ccode\u003e9f2cb2a\u003c/code\u003e\u003c/a\u003e Configure Changesets for \u003ccode\u003emaintenance/v2\u003c/code\u003e line (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2076\"\u003e#2076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/97247cb56a2746b6a73b65746547456e83c3f44c\"\u003e\u003ccode\u003e97247cb\u003c/code\u003e\u003c/a\u003e Change allowed publish pattern to \u003ccode\u003emaintenance/v*\u003c/code\u003e given rulesets behavior (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/13286a8d89be5293ec8c6634ae981b4ed261e7a1\"\u003e\u003ccode\u003e13286a8\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the github-actions group across 1 directory with 3 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/8f6acd658891ca4d4d7e458c67cf704c87ac46a1\"\u003e\u003ccode\u003e8f6acd6\u003c/code\u003e\u003c/a\u003e Update dependabot group to exclude major (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2067\"\u003e#2067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/c70c675c2a22062aeae881f78f436bf793e26f35\"\u003e\u003ccode\u003ec70c675\u003c/code\u003e\u003c/a\u003e Setup backport workflow and sync next setup (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2057\"\u003e#2057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/96720197013d2d49e5b32c30803e4653660348b6\"\u003e\u003ccode\u003e9672019\u003c/code\u003e\u003c/a\u003e Remove SECURITY.md to defer to .github (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/changesets/changesets/commit/18e1661e3ad9bc4ab7bcd770ae172c560af44acc\"\u003e\u003ccode\u003e18e1661\u003c/code\u003e\u003c/a\u003e Use internal bot for versioning (\u003ca href=\"https://redirect.github.com/changesets/changesets/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/changesets/changesets/compare/@changesets/cli@2.31.0...@changesets/cli@2.31.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.4 to 10.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.0.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c87d5bded54c5cf491eb04c24c9d09bbbd42c23e\"\u003e\u003ccode\u003ec87d5bd\u003c/code\u003e\u003c/a\u003e fix: update eslint (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20531\"\u003e#20531\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d84100115c14691691058f00779c94e74fca946a\"\u003e\u003ccode\u003ed841001\u003c/code\u003e\u003c/a\u003e fix: update \u003ccode\u003eminimatch\u003c/code\u003e to \u003ccode\u003e10.2.1\u003c/code\u003e to address security vulnerabilities (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20519\"\u003e#20519\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/04c21475b3004904948f02049f2888b401d82c78\"\u003e\u003ccode\u003e04c2147\u003c/code\u003e\u003c/a\u003e fix: update error message for unused suppressions (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20496\"\u003e#20496\u003c/a\u003e) (fnx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/38b089c1726feac0e31a31d47941bd99e29ce003\"\u003e\u003ccode\u003e38b089c\u003c/code\u003e\u003c/a\u003e fix: update dependency \u003ccode\u003e@​eslint/config-array\u003c/code\u003e to ^0.23.1 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20484\"\u003e#20484\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5b3dbce50a1404a9f118afe810cefeee79388a2a\"\u003e\u003ccode\u003e5b3dbce\u003c/code\u003e\u003c/a\u003e docs: add AI acknowledgement section to templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20431\"\u003e#20431\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6f23076037d5879f20fb3be2ef094293b1e8d38c\"\u003e\u003ccode\u003e6f23076\u003c/code\u003e\u003c/a\u003e docs: toggle nav in no-JS mode (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20476\"\u003e#20476\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b69cfb32a16c5d5e9986390d484fae1d21e406f9\"\u003e\u003ccode\u003eb69cfb3\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e5c281ffd038a3a7a3e5364db0b9378e0ad83020\"\u003e\u003ccode\u003ee5c281f\u003c/code\u003e\u003c/a\u003e chore: updates for v9.39.3 release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8c3832adb77cd993b4a24891900d5eeaaf093cdc\"\u003e\u003ccode\u003e8c3832a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​typescript-eslint/parser\u003c/code\u003e to ^8.56.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20514\"\u003e#20514\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8330d238ae6adb68bb6a1c9381e38cfedd990d94\"\u003e\u003ccode\u003e8330d23\u003c/code\u003e\u003c/a\u003e test: add tests for config-api (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20493\"\u003e#20493\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/37d6e91e88fa6a2ca6d8726679096acff21ba6cc\"\u003e\u003ccode\u003e37d6e91\u003c/code\u003e\u003c/a\u003e chore: remove eslint v10 prereleases from eslint-config-eslint deps (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20494\"\u003e#20494\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/da7cd0e79197ad16e17052eef99df141de6dbfb1\"\u003e\u003ccode\u003eda7cd0e\u003c/code\u003e\u003c/a\u003e refactor: cleanup error message templates (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20479\"\u003e#20479\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f9e54f43a5e497cdfa179338b431093245cb787b\"\u003e\u003ccode\u003ef9e54f4\u003c/code\u003e\u003c/a\u003e feat!: estimate rule-tester failure location (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20420\"\u003e#20420\u003c/a\u003e) (ST-DDT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a176319d8ade1a7d9b2d7fb8f038f55a2662325f\"\u003e\u003ccode\u003ea176319\u003c/code\u003e\u003c/a\u003e feat!: replace \u003ccode\u003echalk\u003c/code\u003e with \u003ccode\u003estyleText\u003c/code\u003e and add \u003ccode\u003ecolor\u003c/code\u003e to \u003ccode\u003eResultsMeta\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20227\"\u003e#20227\u003c/a\u003e) (루밀LuMir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c7046e6c1e03c4ca0eee4888a1f2eba4c6454f84\"\u003e\u003ccode\u003ec7046e6\u003c/code\u003e\u003c/a\u003e feat!: enable JSX reference tracking (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20152\"\u003e#20152\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e) (Kirk Waiblinger)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3383e7ec9028166cafc8ea7986c2f7498d0049f0\"\u003e\u003ccode\u003e3383e7e\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eSourceCode\u003c/code\u003e methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20137\"\u003e#20137\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/501abd0e916a35554c58b7c0365537f1fa3880ce\"\u003e\u003ccode\u003e501abd0\u003c/code\u003e\u003c/a\u003e feat!: update dependency minimatch to v10 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20246\"\u003e#20246\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ca4d3b40085de47561f89656a2207d09946ed45e\"\u003e\u003ccode\u003eca4d3b4\u003c/code\u003e\u003c/a\u003e fix!: stricter rule tester assertions for valid test cases (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20125\"\u003e#20125\u003c/a\u003e) (唯然)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/96512a66c86402fb0538cdcb6cd30b9073f6bf3b\"\u003e\u003ccode\u003e96512a6\u003c/code\u003e\u003c/a\u003e fix!: Remove deprecated rule context methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20086\"\u003e#20086\u003c/a\u003e) (Nicholas C. Zakas)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c69fdacdb2e886b9d965568a397aa8220db3fe90\"\u003e\u003ccode\u003ec69fdac\u003c/code\u003e\u003c/a\u003e feat!: remove eslintrc support (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20037\"\u003e#20037\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/208b5cc34a8374ff81412b5bec2e0800eebfbd04\"\u003e\u003ccode\u003e208b5cc\u003c/code\u003e\u003c/a\u003e feat!: Use \u003ccode\u003eScopeManager#addGlobals()\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20132\"\u003e#20132\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a2ee188ea7a38a0c6155f3d39e2b00e1d0f36e14\"\u003e\u003ccode\u003ea2ee188\u003c/code\u003e\u003c/a\u003e fix!: add \u003ccode\u003euniqueItems: true\u003c/code\u003e in \u003ccode\u003eno-invalid-regexp\u003c/code\u003e option (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20155\"\u003e#20155\u003c/a\u003e) (Tanuj Kanti)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a89059dbf2832d417dd493ee81483227ec44e4ab\"\u003e\u003ccode\u003ea89059d\u003c/code\u003e\u003c/a\u003e feat!: Program range span entire source text (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20133\"\u003e#20133\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39a6424373d915fa9de0d7b0caba9a4dc3da9b53\"\u003e\u003ccode\u003e39a6424\u003c/code\u003e\u003c/a\u003e fix!: assert 'text' is a string across all RuleFixer methods (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20082\"\u003e#20082\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f28fbf846244e043c92b355b224d121b06140b44\"\u003e\u003ccode\u003ef28fbf8\u003c/code\u003e\u003c/a\u003e fix!: Deprecate \u003ccode\u003e\u0026quot;always\u0026quot;\u003c/code\u003e and \u003ccode\u003e\u0026quot;as-needed\u0026quot;\u003c/code\u003e options of the \u003ccode\u003eradix\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20223\"\u003e#20223\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/aa3fb2b233e929b37220be940575f42c280e0b98\"\u003e\u003ccode\u003eaa3fb2b\u003c/code\u003e\u003c/a\u003e fix!: tighten \u003ccode\u003efunc-names\u003c/code\u003e schema (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20119\"\u003e#20119\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f6c0ed0311dcfee853367d5068c765d066e6b756\"\u003e\u003ccode\u003ef6c0ed0\u003c/code\u003e\u003c/a\u003e feat!: report \u003ccode\u003eeslint-env\u003c/code\u003e comments as errors (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20128\"\u003e#20128\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bf739fb533e59f7f0a66b65f7bc80be0f37d8db\"\u003e\u003ccode\u003e4bf739f\u003c/code\u003e\u003c/a\u003e fix!: remove deprecated \u003ccode\u003eLintMessage#nodeType\u003c/code\u003e and \u003ccode\u003eTestCaseError#type\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20096\"\u003e#20096\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/523c076866400670fb2192a3f55dbf7ad3469247\"\u003e\u003ccode\u003e523c076\u003c/code\u003e\u003c/a\u003e feat!: drop support for jiti \u0026lt; 2.2.0 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20016\"\u003e#20016\u003c/a\u003e) (michael faith)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e) (Pixel998)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4f880ee02992e1bf0e96ebaba679985e2d1295f1\"\u003e\u003ccode\u003e4f880ee\u003c/code\u003e\u003c/a\u003e feat!: remove \u003ccode\u003ev10_*\u003c/code\u003e and inactive \u003ccode\u003eunstable_*\u003c/code\u003e flags (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20225\"\u003e#20225\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f18115c363a4ac7671a4c7f30ee13d57ebba330f\"\u003e\u003ccode\u003ef18115c\u003c/code\u003e\u003c/a\u003e feat!: \u003ccode\u003eno-shadow-restricted-names\u003c/code\u003e report \u003ccode\u003eglobalThis\u003c/code\u003e by default (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20027\"\u003e#20027\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bff9091927811497dbf066b0e3b85ecb37d43822\"\u003e\u003ccode\u003ebff9091\u003c/code\u003e\u003c/a\u003e feat: handle \u003ccode\u003eArray.fromAsync\u003c/code\u003e in \u003ccode\u003earray-callback-return\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20457\"\u003e#20457\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/290c594bb50c439fb71bc75521ee5360daa8c222\"\u003e\u003ccode\u003e290c594\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eself\u003c/code\u003e to \u003ccode\u003eno-implied-eval\u003c/code\u003e rule (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20468\"\u003e#20468\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/43677de07ebd6e14bfac40a46ad749ba783c45f2\"\u003e\u003ccode\u003e43677de\u003c/code\u003e\u003c/a\u003e feat: fix handling of function and class expression names in \u003ccode\u003eno-shadow\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20432\"\u003e#20432\u003c/a\u003e) (Milos Djermanovic)\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/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5\"\u003e\u003ccode\u003e84fb885\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d\"\u003e\u003ccode\u003e1f66734\u003c/code\u003e\u003c/a\u003e chore: add \u003ccode\u003eeslint\u003c/code\u003e to \u003ccode\u003epeerDependencies\u003c/code\u003e of \u003ccode\u003e@eslint/js\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20467\"\u003e#20467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f3fbc2f60cbe2c718364feb8c3fc0452c0df3c56\"\u003e\u003ccode\u003ef3fbc2f\u003c/code\u003e\u003c/a\u003e chore: set \u003ccode\u003e@eslint/js\u003c/code\u003e version to 10.0.0 to skip releasing it (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20466\"\u003e#20466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b4b3127f8542c599ce2dea804b6582ebc40c993d\"\u003e\u003ccode\u003eb4b3127\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0b14059491d830a49b3577931f4f68fbcfce6be5\"\u003e\u003ccode\u003e0b14059\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa\"\u003e\u003ccode\u003efa31a60\u003c/code\u003e\u003c/a\u003e feat!: add \u003ccode\u003ename\u003c/code\u003e to configs (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20015\"\u003e#20015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/1e2cad5f6fa47ed6ed89d2a29798dda926d50990\"\u003e\u003ccode\u003e1e2cad5\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64\"\u003e\u003ccode\u003e454a292\u003c/code\u003e\u003c/a\u003e feat!: update \u003ccode\u003eeslint:recommended\u003c/code\u003e configuration (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20210\"\u003e#20210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e\"\u003e\u003ccode\u003ec6358c3\u003c/code\u003e\u003c/a\u003e feat!: Require Node.js \u003ccode\u003e^20.19.0 || ^22.13.0 || \u0026gt;=24\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20160\"\u003e#20160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v10.0.1/packages/js\"\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.62.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.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props, and use \u003ccode\u003eupdate(props)\u003c/code\u003e / \u003ccode\u003eunmount()\u003c/code\u003e on the returned locator to re-render or tear down within a test.\u003c/p\u003e\n\u003ch2\u003e🛑 Cancel operations with AbortSignal\u003c/h2\u003e\n\u003cp\u003eMost operations and web-first assertions now accept a \u003ccode\u003esignal\u003c/code\u003e option that takes an \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal\"\u003e\u003ccode\u003eAbortSignal\u003c/code\u003e\u003c/a\u003e, letting you cancel long-running actions, navigations, waits, and assertions:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003econst controller = new AbortController();\r\nsetTimeout(() =\u0026gt; controller.abort(), 1000);\r\n\u003cp\u003eawait page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });\u003cbr /\u003e\nawait expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eProviding a signal does not disable the default timeout; pass \u003ccode\u003etimeout: 0\u003c/code\u003e to disable it.\u003c/p\u003e\n\u003ch2\u003e🖼️ WebP screenshots\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1\"\u003eexpect(page).toHaveScreenshot()\u003c/a\u003e and \u003ca href=\"https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1\"\u003eexpect(locator).toHaveScreenshot()\u003c/a\u003e can now store snapshots in the WebP format — just give the snapshot a \u003ccode\u003e.webp\u003c/code\u003e name:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Visual comparisons store the golden snapshot as lossless WebP.\r\nawait expect(page).toHaveScreenshot('homepage.webp');\r\n\u003cp\u003e// Standalone screenshots can trade quality for size with lossy WebP.\u003cbr /\u003e\nawait page.screenshot({ path: 'homepage.webp', quality: 50 });\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/api/class-page#page-screenshot\"\u003epage.screenshot()\u003c/a\u003e and [locator.screenshot() (https://playwright.dev/docs/api/class-locator#locator-screenshot) also accept \u003ccode\u003ewebp\u003c/code\u003e as a \u003ccode\u003etype\u003c/code\u003e, where quality \u003ccode\u003e100\u003c/code\u003e (the default) is lossless and lower values use lossy compression.\u003c/p\u003e\n\u003ch2\u003e🧩 Custom test filtering with Reporter.preprocess()\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/docs/api/class-reporter#reporter-preprocess\"\u003ereporter.preprocess()\u003c/a\u003e hook runs after the configuration is resolved and before \u003ca href=\"https://playwright.dev/docs/api/class-reporter#reporter-on-begin\"\u003ereporter.onBegin()\u003c/a\u003e, letting a reporter mark individual tests as skipped, excluded, fixed, or failing through a \u003ca href=\"https://playwright.dev/docs/api/class-testrun\"\u003eTestRun\u003c/a\u003e object:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/e3950d9c140d007bd52853b45813c6274b24e36f\"\u003e\u003ccode\u003ee3950d9\u003c/code\u003e\u003c/a\u003e chore: mark v1.62.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41981\"\u003e#41981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f07e0f720fbe6691cc3d3d66ff9f3e58139e804c\"\u003e\u003ccode\u003ef07e0f7\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41940\"\u003e#41940\u003c/a\u003e): docs: release notes for v1.62 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41967\"\u003e#41967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/05a306c78f11767535fd986eebab5d4c4dad4614\"\u003e\u003ccode\u003e05a306c\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41964\"\u003e#41964\u003c/a\u003e): Revert \u0026quot;feat(routeFromHar): add interceptAPIRequests opt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/2934858481d267df729eecb206ce45d497958015\"\u003e\u003ccode\u003e2934858\u003c/code\u003e\u003c/a\u003e fix: correct pending navigation log spacing (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41949\"\u003e#41949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/4b0cc996cc7b9d5b087214e8514d6b85abb03f91\"\u003e\u003ccode\u003e4b0cc99\u003c/code\u003e\u003c/a\u003e fix(test): unflake screencast backpressure test on slow macOS runner (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41951\"\u003e#41951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/bbbae6dce735d9751ff7b879555b7a0a64078266\"\u003e\u003ccode\u003ebbbae6d\u003c/code\u003e\u003c/a\u003e test: fixme WebSocket locale test in Chromium 150 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41944\"\u003e#41944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/15c4f55879e49159e766fe1aa3dd9f9d87ba5fc1\"\u003e\u003ccode\u003e15c4f55\u003c/code\u003e\u003c/a\u003e fix(mcp): identify downloads explicitly (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41933\"\u003e#41933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/f5fa967ff581f4263e2b1eec60d887b8c412fd52\"\u003e\u003ccode\u003ef5fa967\u003c/code\u003e\u003c/a\u003e fix(network): request.postData() returns null for empty string body override ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/0edafe4baab7fd20122939d3cfe1acabd8ed84a9\"\u003e\u003ccode\u003e0edafe4\u003c/code\u003e\u003c/a\u003e fix(mcp): launch the Chrome profile that has the extension installed (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41939\"\u003e#41939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/244a1ffdd8746b1418b4eedb95ff72687115ddb4\"\u003e\u003ccode\u003e244a1ff\u003c/code\u003e\u003c/a\u003e feat(firefox): roll to r1538 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/41938\"\u003e#41938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.59.1...v1.62.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/node` from 20.19.40 to 26.1.2\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/node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint` from 9.39.4 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003eeslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.8.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/90910715011211a20d011d807d398a7005127f35\"\u003e\u003ccode\u003e9091071\u003c/code\u003e\u003c/a\u003e fix: prevent \u003ccode\u003eno-unreachable-loop\u003c/code\u003e crash when all loop types are ignored (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21116\"\u003e#21116\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e23fafe8d4b15355adef6cdebef414c3a2019454\"\u003e\u003ccode\u003ee23fafe\u003c/code\u003e\u003c/a\u003e fix: prefer-object-spread add semicolon when adding parenthesis (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21081\"\u003e#21081\u003c/a\u003e) (synthex-byte)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/20b5ad052360a443786a202e94624a3f81846511\"\u003e\u003ccode\u003e20b5ad0\u003c/code\u003e\u003c/a\u003e fix: quadratic-time regex in \u003ccode\u003eprefer-template\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21096\"\u003e#21096\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8b6f6c0b33411f34485512456d94f221daf7321f\"\u003e\u003ccode\u003e8b6f6c0\u003c/code\u003e\u003c/a\u003e fix: apply ignore configs to computed methods in class-methods-use-this (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21094\"\u003e#21094\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b2c608c014a396800a24a89343265d0616bee2d8\"\u003e\u003ccode\u003eb2c608c\u003c/code\u003e\u003c/a\u003e fix: NewExpression with parenthesized callee in \u003ccode\u003epreserve-caught-error\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21083\"\u003e#21083\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7ec733a3ba5acb053a73ac656030a3879aa48fda\"\u003e\u003ccode\u003e7ec733a\u003c/code\u003e\u003c/a\u003e docs: Fix typos and grammar in glossary (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21095\"\u003e#21095\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/92bb13f13065db72d62454b9830d3ae52db15c76\"\u003e\u003ccode\u003e92bb13f\u003c/code\u003e\u003c/a\u003e docs: replace quake link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21108\"\u003e#21108\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/68eb4a57572409dbdcfeb3bc5c92ddbba46bc770\"\u003e\u003ccode\u003e68eb4a5\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Globals anchor links in rule pages (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21103\"\u003e#21103\u003c/a\u003e) (Minsu)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d28f697e0d32d7446c825fd89c362db028450134\"\u003e\u003ccode\u003ed28f697\u003c/code\u003e\u003c/a\u003e docs: replace Code Climate CLI links with Qlty CLI links (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21099\"\u003e#21099\u003c/a\u003e) (Jung Hyeon Jun)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccc68d42564e46bc9020d19ec52d2988f3b7bfa\"\u003e\u003ccode\u003eeccc68d\u003c/code\u003e\u003c/a\u003e docs: correct --suppressions-location option description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21093\"\u003e#21093\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c5963f74bfa82a5b7ccc0607dcdcc695b8c97a31\"\u003e\u003ccode\u003ec5963f7\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e) (Bo Hyun Kim)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e9d66d0cde1a7752c29dee53ab7b62632835a87a\"\u003e\u003ccode\u003ee9d66d0\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21119\"\u003e#21119\u003c/a\u003e) (dependabot[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/ee225b60c26f0cc5f4d71641888a5bd2ec5626d6\"\u003e\u003ccode\u003eee225b6\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-eq-null\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21117\"\u003e#21117\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/044a627fa3e28ee1410d515acc5378eb4b49f8ba\"\u003e\u003ccode\u003e044a627\u003c/code\u003e\u003c/a\u003e chore: update minimatch to ^10.2.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21107\"\u003e#21107\u003c/a\u003e) (김채영)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/fb09aa8ff09730d3ccf68859e065f99666b52466\"\u003e\u003ccode\u003efb09aa8\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21115\"\u003e#21115\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5abd878740fe417fd8a910cac3741f2a0317b365\"\u003e\u003ccode\u003e5abd878\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-proto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21114\"\u003e#21114\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/9715887ec94a5ff936447d7b680d039fbe2f0541\"\u003e\u003ccode\u003e9715887\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-div-regex\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21110\"\u003e#21110\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a746ec6ea4a2249b1eb3f512264da5f4d5f7c886\"\u003e\u003ccode\u003ea746ec6\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-new-wrappers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21109\"\u003e#21109\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8dde64570e240f3ef8af873d59a752db6d8519aa\"\u003e\u003ccode\u003e8dde645\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-ex-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21102\"\u003e#21102\u003c/a\u003e) (devoil)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/13ab0ec447650c079d8a5e5d67222f79e69c741e\"\u003e\u003ccode\u003e13ab0ec\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-label-var\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21098\"\u003e#21098\u003c/a\u003e) (Gihyeon Jeong / 정기현)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/a99906ffb8342dde03336b5c6372b5658f21d5f2\"\u003e\u003ccode\u003ea99906f\u003c/code\u003e\u003c/a\u003e test: Add error location details to \u003ccode\u003eno-delete-var\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21105\"\u003e#21105\u003c/a\u003e) (Park Harin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/c47e8dc9bbfba797430db45ae08cb6f7392cfc9d\"\u003e\u003ccode\u003ec47e8dc\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003elanguages/js/index.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21104\"\u003e#21104\u003c/a\u003e) (beeen)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/0174428dd7543d118cf67a823b98dd97032fe68c\"\u003e\u003ccode\u003e0174428\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003etranslate-cli-options.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21097\"\u003e#21097\u003c/a\u003e) (dongkyu lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d36589a4917326500f0707bb41745160f387d00\"\u003e\u003ccode\u003e3d36589\u003c/code\u003e\u003c/a\u003e chore: add missing backticks to \u003ccode\u003eserialization.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21091\"\u003e#21091\u003c/a\u003e) (이규환)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/dcc9312c1081931de0fe1b555fbb6aa82fe696b9\"\u003e\u003ccode\u003edcc9312\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eeqeqeq\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21090\"\u003e#21090\u003c/a\u003e) (Ga eun Lee)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2710b182472cd1a95e4aff6186cb2c4fbadb4ee0\"\u003e\u003ccode\u003e2710b18\u003c/code\u003e\u003c/a\u003e ci: Add explicit permissions to rebuild-docs-sites workflow (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21089\"\u003e#21089\u003c/a\u003e) (Marry (Subin Yang))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5d2f8663ee60701e9036b0b0933a12efd9d93269\"\u003e\u003ccode\u003e5d2f866\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.5 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21086\"\u003e#21086\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d584e31098f262563b97dc5d5f23a63a187879a0\"\u003e\u003ccode\u003ed584e31\u003c/code\u003e\u003c/a\u003e chore: fix failing ecosystem test for \u003ccode\u003eeslint-plugin-unicorn\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21084\"\u003e#21084\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bf3eda049bd690f1e9a5a0c4520a6329b3e4ec85\"\u003e\u003ccode\u003ebf3eda0\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21079\"\u003e#21079\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.7.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/cf2a9bf2d982642f760370c15f1196f4658f4e27\"\u003e\u003ccode\u003ecf2a9bf\u003c/code\u003e\u003c/a\u003e feat: add errorClassNames option to preserve-caught-error rule (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21032\"\u003e#21032\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f8b873aae53610b80b5c1005606716e05ed3b91f\"\u003e\u003ccode\u003ef8b873a\u003c/code\u003e\u003c/a\u003e feat: max-nested-callbacks option for constructor callbacks (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21063\"\u003e#21063\u003c/a\u003e) (fnx)\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/eslint/eslint/commit/749dfed106f44d77bf3af2402ebfae20cdbf59ee\"\u003e\u003ccode\u003e749dfed\u003c/code\u003e\u003c/a\u003e 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4bd0d75b22ffd44809a92659f113c972c5be0770\"\u003e\u003ccode\u003e4bd0d75\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4fbf46d140120ae838db08cbe49544c985956490\"\u003e\u003ccode\u003e4fbf46d\u003c/code\u003e\u003c/a\u003e test: pin \u003ccode\u003ewebpack\u003c/code\u003e version to 5.108.4 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21137\"\u003e#21137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6ddf8587e5cfeeb7328332601bb76d98b8a198ea\"\u003e\u003ccode\u003e6ddf858\u003c/code\u003e\u003c/a\u003e docs: fix broken Specify Parser Options anchor link (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21106\"\u003e#21106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/784dfbe98f0222426fd200153a5ce2e5624151f0\"\u003e\u003ccode\u003e784dfbe\u003c/code\u003e\u003c/a\u003e docs: Clarify \u003ccode\u003eno-eq-null\u003c/code\u003e description (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21120\"\u003e#21120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/6b8d2f7589b8a7c8b91b8ca2a2ef6d46178760d8\"\u003e\u003ccode\u003e6b8d2f7\u003c/code\u003e\u003c/a\u003e fix: escape reserved characters in rule id in \u003ccode\u003ehtml\u003c/code\u003e formatter (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21129\"\u003e#21129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2d063e224e9bb0ccb0a28c120f7e380a8d62f320\"\u003e\u003ccode\u003e2d063e2\u003c/code\u003e\u003c/a\u003e chore: update HTTP URLs to HTTPS in JSDoc and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eccbe7bc9257a6c99880468e452c8dfafbf47f74\"\u003e\u003ccode\u003eeccbe7b\u003c/code\u003e\u003c/a\u003e test: add error locations to \u003ccode\u003eno-class-assign\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21123\"\u003e#21123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/2fee9bb7416116cbed4d8c8100b1ae713b6356a1\"\u003e\u003ccode\u003e2fee9bb\u003c/code\u003e\u003c/a\u003e feat: export \u003ccode\u003eConfigObject\u003c/code\u003e from \u003ccode\u003eeslint/config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21082\"\u003e#21082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/e7d1e4373bf626f8da76d62ce024c28928bc99bc\"\u003e\u003ccode\u003ee7d1e43\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-go from 6 to 7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21118\"\u003e#21118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v9.39.4...v10.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `eslint-config-prettier` from 9.1.2 to 10.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/eslint-config-prettier/releases\"\u003eeslint-config-prettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.1.8\u003c/h2\u003e\n\u003cp\u003erepublish latest version\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/332\"\u003e#332\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/60fef02574467d31d10ff47ecb567d378483c9d4\"\u003e\u003ccode\u003e60fef02\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - chore: add \u003ccode\u003efunding\u003c/code\u003e field into \u003ccode\u003epackage.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.4...v10.1.5\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.4...v10.1.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/328\"\u003e#328\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/94b47999e7eb13b703835729331376cef598b850\"\u003e\u003ccode\u003e94b4799\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/silvenon\"\u003e\u003ccode\u003e@​silvenon\u003c/code\u003e\u003c/a\u003e! - fix(cli): do not crash on no rules configured\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.3...v10.1.4\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.3...v10.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003e#325\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/4e95a1d50073f1a24f004239ad6e1a4ffa8476df\"\u003e\u003ccode\u003e4e95a1d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e! - fix: this package is \u003ccode\u003ecommonjs\u003c/code\u003e, align its types correctly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003eprettier/eslint-config-prettier#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.3\"\u003ehttps://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev10.1.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/a8768bfe54a91d08f0cef8705f91de2883436bb0\"\u003e\u003ccode\u003ea8768bf\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e! - chore(package): add homepage for some 3rd-party registry - see \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e for more details\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.1\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/prettier/eslint-config-prettier/pull/309\"\u003e#309\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/eb56a5e09964e49045bccde3c616275eb0a0902d\"\u003e\u003ccode\u003eeb56a5e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - fix: separate the \u003ccode\u003e/flat\u003c/code\u003e entry for compatibility\u003c/p\u003e\n\u003cp\u003eFor flat config users, the previous \u003ccode\u003e\u0026quot;eslint-config-prettier\u0026quot;\u003c/code\u003e entry still works, but \u003ccode\u003e\u0026quot;eslint-config-prettier/flat\u0026quot;\u003c/code\u003e adds a new \u003ccode\u003ename\u003c/code\u003e property for \u003ca href=\"https://eslint.org/blog/2024/04/eslint-config-inspector/\"\u003econfig-inspector\u003c/a\u003e, we just can't add it for the default entry for compatibility.\u003c/p\u003e\n\u003cp\u003eSee also \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/issues/308\"\u003eprettier/eslint-config-prettier#308\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003e// before\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier\u0026quot;;\n\u003cp\u003e// after\u003cbr /\u003e\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier/flat\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/prettier/eslint-config-prettier/blob/main/CHANGELOG.md\"\u003eeslint-config-prettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eeslint-config-prettier\u003c/h1\u003e\n\u003ch2\u003e10.1.5\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/332\"\u003e#332\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/60fef02574467d31d10ff47ecb567d378483c9d4\"\u003e\u003ccode\u003e60fef02\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - chore: add \u003ccode\u003efunding\u003c/code\u003e field into \u003ccode\u003epackage.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/328\"\u003e#328\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/94b47999e7eb13b703835729331376cef598b850\"\u003e\u003ccode\u003e94b4799\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/silvenon\"\u003e\u003ccode\u003e@​silvenon\u003c/code\u003e\u003c/a\u003e! - fix(cli): do not crash on no rules configured\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.3\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/325\"\u003e#325\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/4e95a1d50073f1a24f004239ad6e1a4ffa8476df\"\u003e\u003ccode\u003e4e95a1d\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/pilikan\"\u003e\u003ccode\u003e@​pilikan\u003c/code\u003e\u003c/a\u003e! - fix: this package is \u003ccode\u003ecommonjs\u003c/code\u003e, align its types correctly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.2\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/a8768bfe54a91d08f0cef8705f91de2883436bb0\"\u003e\u003ccode\u003ea8768bf\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e! - chore(package): add homepage for some 3rd-party registry - see \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/321\"\u003e#321\u003c/a\u003e for more details\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.1\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/prettier/eslint-config-prettier/pull/309\"\u003e#309\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/eb56a5e09964e49045bccde3c616275eb0a0902d\"\u003e\u003ccode\u003eeb56a5e\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - fix: separate the \u003ccode\u003e/flat\u003c/code\u003e entry for compatibility\u003c/p\u003e\n\u003cp\u003eFor flat config users, the previous \u003ccode\u003e\u0026quot;eslint-config-prettier\u0026quot;\u003c/code\u003e entry still works, but \u003ccode\u003e\u0026quot;eslint-config-prettier/flat\u0026quot;\u003c/code\u003e adds a new \u003ccode\u003ename\u003c/code\u003e property for \u003ca href=\"https://eslint.org/blog/2024/04/eslint-config-inspector/\"\u003econfig-inspector\u003c/a\u003e, we just can't add it for the default entry for compatibility.\u003c/p\u003e\n\u003cp\u003eSee also \u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/issues/308\"\u003eprettier/eslint-config-prettier#308\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003e// before\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier\u0026quot;;\n\u003cp\u003e// after\u003cbr /\u003e\nimport eslintConfigPrettier from \u0026quot;eslint-config-prettier/flat\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.1.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-config-prettier/pull/306\"\u003e#306\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commit/56e2e3466391d0fdfc200e42130309c687aaab53\"\u003e\u003ccode\u003e56e2e34\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - feat: migrate to exports field\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\u003eSee full diff in \u003ca href=\"https://github.com/prettier/eslint-config-prettier/commits/v10.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.3 to 3.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003eprettier/prettier#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eimport defer\u003c/code\u003e in \u003ccode\u003etypescript\u003c/code\u003e parser (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003eprettier/prettier#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003eprettier/prettier#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a new official plugin \u003ca href=\"https://github.com/prettier/prettier/tree/3.9.6/packages/plugin-yuku\"\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e 🚀\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003eprettier/prettier#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003eprettier/prettier#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.6/CHANGELOG.md#396\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.5\u003c/h2\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.5/CHANGELOG.md#395\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAngular: Format \u003ccode\u003e@content(name)\u003c/code\u003e -\u0026gt; \u003ccode\u003e@content (name)\u003c/code\u003e to align with other block syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19499\"\u003e#19499\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix unexpected removal of characters in liquid syntax (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19489\"\u003eprettier/prettier#19489\u003c/a\u003e by \u003ca href=\"https://github.com/seiyab\"\u003e\u003ccode\u003e@​seiyab\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeScript: Allow decorators to be used with declare on class fields (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19492\"\u003eprettier/prettier#19492\u003c/a\u003e by \u003ca href=\"https://github.com/evoactivity\"\u003e\u003ccode\u003e@​evoactivity\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Fix ignored file has been cached incorrectly (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19483\"\u003e#19483\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.5...3.9.0\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://prettier.io/blog/2026/06/27/3.9.0\"\u003ePrettier 3.9: Major parser upgrades and Formatting improvements\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Flow variance annotation print (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19022\"\u003e#19022\u003c/a\u003e by \u003ca href=\"https://github.com/marcoww6\"\u003e\u003ccode\u003e@​marcoww6\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Fix blank lines between list items and nested sub-lists being removed in Markdown/MDX (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/17746\"\u003eprettier/prettier#17746\u003c/a\u003e by \u003ca href=\"https://github.com/byplayer\"\u003e\u003ccode\u003e@​byplayer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.4/CHANGELOG.md#384\"\u003eChangelog\u003c/a\u003e\u003c/p\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/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.9.6\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.5...3.9.6\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Preserve quotes for methods named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19621\"\u003e#19621\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\ninterface Container {\n  \u0026quot;new\u0026quot;(id: string): number;\n}\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\nnew(id: string): number;\u003cbr /\u003e\n}\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\ninterface Container {\u003cbr /\u003e\n\u0026quot;new\u0026quot;(id: string): number;\u003cbr /\u003e\n}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eTypeScript: Support \u003ccode\u003eimport defer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19624\"\u003e#19624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19675\"\u003e#19675\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003e// Input\nimport defer * as foo from \u0026quot;foo\u0026quot;;\n\u003cp\u003e// Prettier 3.9.5\u003cbr /\u003e\nimport * as foo from \u0026quot;foo\u0026quot;;\u003c/p\u003e\n\u003cp\u003e// Prettier 3.9.6\u003cbr /\u003e\nimport defer * as foo from \u0026quot;foo\u0026quot;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch4\u003eJavaScript: Added a new official plugin \u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19628\"\u003e#19628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19629\"\u003e#19629\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003e@prettier/plugin-yuku\u003c/code\u003e is powered by \u003ca href=\"https://yuku.fyi/\"\u003eYuku\u003c/a\u003e (A high-performance JavaScript/TypeScript compiler toolchain written in Zig).\u003c/p\u003e\n\u003cp\u003eThis plugin includes two new parsers: \u003ccode\u003eyuku\u003c/code\u003e (JavaScript syntax) and \u003ccode\u003eyuku-ts\u003c/code\u003e (TypeScript syntax).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTo use this plugin:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInstall the plugin:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eyarn add --dev prettier @prettier/plugin-yuku\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\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/prettier/prettier/commit/8f0c95057cc91d5836409466cd9d9af3bb901e84\"\u003e\u003ccode\u003e8f0c950\u003c/code\u003e\u003c/a\u003e Release 3.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/e9107647d0497d8ff1cacbb0f970d4543df77c1c\"\u003e\u003ccode\u003ee910764\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ec3f1c7bd74495992bc6954323a1a7fc8368808e\"\u003e\u003ccode\u003eec3f1c7\u003c/code\u003e\u003c/a\u003e Update typescript-eslint to v8.65.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19675\"\u003e#19675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/73d2efc2c6cba6f579585c88ef171132d90834ec\"\u003e\u003ccode\u003e73d2efc\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.7.0 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19664\"\u003e#19664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dd5e24eabeab1f75ad573c79781e5fd408bcfad3\"\u003e\u003ccode\u003edd5e24e\u003c/code\u003e\u003c/a\u003e Preserve quotes for \u003ccode\u003eTSMethodSignature\u003c/code\u003e nodes named \u003ccode\u003enew\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19621\"\u003e#19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/c03ab4e71c23154d6b11537eee3c938f0d0f67d3\"\u003e\u003ccode\u003ec03ab4e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-unicorn to v72 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19633\"\u003e#19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b74dd53076c7208291a6b2e585c310844b41d35f\"\u003e\u003ccode\u003eb74dd53\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.5 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19654\"\u003e#19654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/f1b594ea1db1520c383d0e281d623551f671f824\"\u003e\u003ccode\u003ef1b594e\u003c/code\u003e\u003c/a\u003e Update dependency eslint-plugin-simple-import-sort to v14 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19655\"\u003e#19655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/0d9dfb61530986373000dd107ea58ceebb79e233\"\u003e\u003ccode\u003e0d9dfb6\u003c/code\u003e\u003c/a\u003e Update Yuku parser to v0.6.4 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19650\"\u003e#19650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/3bbb8159eb55575d4042653aa99f5f92a1416c19\"\u003e\u003ccode\u003e3bbb815\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etypescript-only\u003c/code\u003e directory (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/19636\"\u003e#19636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/prettier/compare/3.8.3...3.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript` from 5.6.3 to 7.0.2\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\u003ch2\u003eTypeScript 5.9\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\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\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/TypeScript/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca href=\"https://www.npmjs.com/~microsoft1es\"\u003emicrosoft1es\u003c/a\u003e, a new releaser for typescript since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.59.2 to 8.65.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.65.0\u003c/h2\u003e\n\u003ch2\u003e8.65.0 (2026-07-20)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd warning when TS 7 is detected (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12529\"\u003e#12529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-restricted-imports] deprecate extension rule (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12527\"\u003e#12527\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/19562\"\u003e#19562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11889\"\u003e#11889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-shadow] specialized error on enum declaration and member shadowing (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12578\"\u003e#12578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eparser:\u003c/strong\u003e add onUnsupportedTypeScriptVersion option to error on unsupported TypeScript versions (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12465\"\u003e#12465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-estree:\u003c/strong\u003e throw for invalid import defer syntax (\u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/frisky1985/yuleASR-Configurator/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frisky1985%2FyuleASR-Configurator/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"}},{"old_version":"26.3.5","new_version":"26.3.6","update_type":"patch","path":null,"pr_created_at":"2026-07-27T21:10:29.000Z","version_change":"26.3.5 → 26.3.6","issue":{"uuid":"4992360473","node_id":"PR_kwDOSI1do873IR8W","number":103,"state":"open","title":"chore(deps): Bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-27T21:10:29.000Z","updated_at":"2026-07-27T21:13:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"@capacitor/android","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/app","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/ionic-team/capacitor-plugins"},{"name":"@capacitor/cli","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/core","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/ionic-team/capacitor"},{"name":"@capacitor/push-notifications","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/ionic-team/capacitor-plugins"},{"name":"@supabase/ssr","old_version":"0.12.0","new_version":"0.12.3","repository_url":"https://github.com/supabase/ssr"},{"name":"@tailwindcss/vite","old_version":"4.3.2","new_version":"4.3.3","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"i18next","old_version":"26.3.5","new_version":"26.3.6","repository_url":"https://github.com/i18next/i18next"},{"name":"react","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.7","new_version":"19.2.8","repository_url":"https://github.com/react/react"},{"name":"react-i18next","old_version":"17.0.8","new_version":"17.0.11","repository_url":"https://github.com/i18next/react-i18next"},{"name":"@eslint/js","old_version":"9.39.4","new_version":"9.39.5","repository_url":"https://github.com/eslint/eslint"},{"name":"@playwright/test","old_version":"1.61.1","new_version":"1.62.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"@vitejs/plugin-legacy","old_version":"8.1.0","new_version":"8.2.2","repository_url":"https://github.com/vitejs/vite"},{"name":"@vitejs/plugin-react","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"eslint","old_version":"9.39.4","new_version":"9.39.5","repository_url":"https://github.com/eslint/eslint"},{"name":"globals","old_version":"17.7.0","new_version":"17.8.0","repository_url":"https://github.com/sindresorhus/globals"},{"name":"typescript-eslint","old_version":"8.63.0","new_version":"8.65.0","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vite","old_version":"8.1.3","new_version":"8.1.5","repository_url":"https://github.com/vitejs/vite"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@capacitor/android](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/app](https://github.com/ionic-team/capacitor-plugins) | `8.1.0` | `8.1.1` |\n| [@capacitor/cli](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/core](https://github.com/ionic-team/capacitor) | `8.4.1` | `8.4.2` |\n| [@capacitor/push-notifications](https://github.com/ionic-team/capacitor-plugins) | `8.1.1` | `8.1.2` |\n| [@supabase/ssr](https://github.com/supabase/ssr) | `0.12.0` | `0.12.3` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.2` | `4.3.3` |\n| [i18next](https://github.com/i18next/i18next) | `26.3.5` | `26.3.6` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |\n| [react-i18next](https://github.com/i18next/react-i18next) | `17.0.8` | `17.0.11` |\n| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.4` | `9.39.5` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.0` |\n| [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/HEAD/packages/plugin-legacy) | `8.1.0` | `8.2.2` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.4` |\n| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `9.39.5` |\n| [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.63.0` | `8.65.0` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | `8.1.5` |\n\n\nUpdates `@capacitor/android` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/app` from 8.1.0 to 8.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/releases\"\u003e@​capacitor/app's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​capacitor/app\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.1.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/app@8.1.0...@capacitor/app@8.1.1\"\u003e8.1.1\u003c/a\u003e (2026-07-15)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​capacitor/app\u003c/code\u003e\u003c/p\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/ionic-team/capacitor-plugins/commit/0bfde98313dbd0312224c0a4896648b9fa6d57c3\"\u003e\u003ccode\u003e0bfde98\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/2be8127d580a847c832698169893079b3960b9f3\"\u003e\u003ccode\u003e2be8127\u003c/code\u003e\u003c/a\u003e docs(motion): add orientation listener example to README (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/060e41c5fbbcd602a218439f52e3fd7866b0c89b\"\u003e\u003ccode\u003e060e41c\u003c/code\u003e\u003c/a\u003e chore: add dist to root gitignore (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2560\"\u003e#2560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/5b652926feff2721204ca72792724aa50a11e988\"\u003e\u003ccode\u003e5b65292\u003c/code\u003e\u003c/a\u003e docs(browser): remove Web/iOS specific warning for close() (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/ee3475836b66f2f4ebf3522bf3dfdc6a2caab0f2\"\u003e\u003ccode\u003eee34758\u003c/code\u003e\u003c/a\u003e chore(android): format code for latest prettier (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2553\"\u003e#2553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/e84bf954b303bb6f93334c22ba19c0a606f44937\"\u003e\u003ccode\u003ee84bf95\u003c/code\u003e\u003c/a\u003e chore(status-bar): format Package.swift (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/0b4e735cfdeab7ff8bfaa526b9bf443b272f1903\"\u003e\u003ccode\u003e0b4e735\u003c/code\u003e\u003c/a\u003e docs(README): remove watch plugin and add local-llm (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2544\"\u003e#2544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/d32b1c6608e1caead377783b05503256e1ee5509\"\u003e\u003ccode\u003ed32b1c6\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2536\"\u003e#2536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/265ca0b1b5294121c35f3e6a3407a2570ecea8fb\"\u003e\u003ccode\u003e265ca0b\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2535\"\u003e#2535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/63c874c25367d20d68d0d1cc44427ba49b1af79b\"\u003e\u003ccode\u003e63c874c\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/app@8.1.0...@capacitor/app@8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/cli` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/core` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor/releases\"\u003e@​capacitor/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\u003c/a\u003e)\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/ionic-team/capacitor/blob/main/CHANGELOG.md\"\u003e@​capacitor/core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003e8.4.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eandroid:\u003c/strong\u003e explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e) (\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e6f2d328\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/ionic-team/capacitor/commit/1834b9740e200fd96f866975d54515d49ef1aa97\"\u003e\u003ccode\u003e1834b97\u003c/code\u003e\u003c/a\u003e Release 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530\"\u003e\u003ccode\u003e6f2d328\u003c/code\u003e\u003c/a\u003e fix(android): explicitly grant URI permissions for image capture intent (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor/commit/b789b683f04863e65c66d630890f00561c0d5b7a\"\u003e\u003ccode\u003eb789b68\u003c/code\u003e\u003c/a\u003e chore: run \u003ccode\u003enpm run fmt\u003c/code\u003e to fix lint errors (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor/issues/8516\"\u003e#8516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@capacitor/push-notifications` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/releases\"\u003e@​capacitor/push-notifications's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​capacitor/push-notifications\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/push-notifications@8.1.1...@capacitor/push-notifications@8.1.2\"\u003e8.1.2\u003c/a\u003e (2026-07-15)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​capacitor/push-notifications\u003c/code\u003e\u003c/p\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/ionic-team/capacitor-plugins/commit/0bfde98313dbd0312224c0a4896648b9fa6d57c3\"\u003e\u003ccode\u003e0bfde98\u003c/code\u003e\u003c/a\u003e chore(release): publish [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/2be8127d580a847c832698169893079b3960b9f3\"\u003e\u003ccode\u003e2be8127\u003c/code\u003e\u003c/a\u003e docs(motion): add orientation listener example to README (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2558\"\u003e#2558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/060e41c5fbbcd602a218439f52e3fd7866b0c89b\"\u003e\u003ccode\u003e060e41c\u003c/code\u003e\u003c/a\u003e chore: add dist to root gitignore (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2560\"\u003e#2560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/5b652926feff2721204ca72792724aa50a11e988\"\u003e\u003ccode\u003e5b65292\u003c/code\u003e\u003c/a\u003e docs(browser): remove Web/iOS specific warning for close() (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/ee3475836b66f2f4ebf3522bf3dfdc6a2caab0f2\"\u003e\u003ccode\u003eee34758\u003c/code\u003e\u003c/a\u003e chore(android): format code for latest prettier (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2553\"\u003e#2553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/e84bf954b303bb6f93334c22ba19c0a606f44937\"\u003e\u003ccode\u003ee84bf95\u003c/code\u003e\u003c/a\u003e chore(status-bar): format Package.swift (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/0b4e735cfdeab7ff8bfaa526b9bf443b272f1903\"\u003e\u003ccode\u003e0b4e735\u003c/code\u003e\u003c/a\u003e docs(README): remove watch plugin and add local-llm (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2544\"\u003e#2544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/d32b1c6608e1caead377783b05503256e1ee5509\"\u003e\u003ccode\u003ed32b1c6\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2536\"\u003e#2536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/capacitor-plugins/commit/265ca0b1b5294121c35f3e6a3407a2570ecea8fb\"\u003e\u003ccode\u003e265ca0b\u003c/code\u003e\u003c/a\u003e chore: format java code (\u003ca href=\"https://redirect.github.com/ionic-team/capacitor-plugins/issues/2535\"\u003e#2535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/push-notifications@8.1.1...@capacitor/push-notifications@8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@supabase/ssr` from 0.12.0 to 0.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/ssr/releases\"\u003e@​supabase/ssr's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.12.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3\"\u003e0.12.3\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003ed3a8a98\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/256\"\u003e#256\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.3-rc.135\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(cookies): keep domain-scoped deletion in name-keyed cookie stores by \u003ca href=\"https://github.com/thribhuvan003\"\u003e\u003ccode\u003e@​thribhuvan003\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/258\"\u003esupabase/ssr#258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thribhuvan003\"\u003e\u003ccode\u003e@​thribhuvan003\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/258\"\u003esupabase/ssr#258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3-rc.135\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.2...v0.12.3-rc.135\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2\"\u003e0.12.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ealign parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003ee8fe1d5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/115\"\u003e#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.2-rc.133\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.5 by \u003ca href=\"https://github.com/supabase-libs-pr-manager\"\u003e\u003ccode\u003e@​supabase-libs-pr-manager\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/263\"\u003esupabase/ssr#263\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2-rc.132...v0.12.2-rc.133\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.2-rc.132...v0.12.2-rc.133\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.2-rc.132\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: align parseCookieHeader return type with getAll cookie method by \u003ca href=\"https://github.com/TheSeydiCharyyev\"\u003e\u003ccode\u003e@​TheSeydiCharyyev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/239\"\u003esupabase/ssr#239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheSeydiCharyyev\"\u003e\u003ccode\u003e@​TheSeydiCharyyev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/supabase/ssr/pull/239\"\u003esupabase/ssr#239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2-rc.132\"\u003ehttps://github.com/supabase/ssr/compare/v0.12.1...v0.12.2-rc.132\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.1\"\u003e0.12.1\u003c/a\u003e (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e035eabe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.1-rc.130\u003c/h2\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/supabase/ssr/blob/main/CHANGELOG.md\"\u003e@​supabase/ssr's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.2...v0.12.3\"\u003e0.12.3\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003ed3a8a98\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/256\"\u003e#256\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.1...v0.12.2\"\u003e0.12.2\u003c/a\u003e (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ealign parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003ee8fe1d5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/supabase/ssr/issues/115\"\u003e#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.1\"\u003e0.12.1\u003c/a\u003e (2026-07-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecookies:\u003c/strong\u003e deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e035eabe\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/supabase/ssr/commit/dd2b20b97c8dac4f52e3dd84fed49a66db3fbdd8\"\u003e\u003ccode\u003edd2b20b\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.3 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/d3a8a982b496a68e039a99fb64ebc6bc31f91fb9\"\u003e\u003ccode\u003ed3a8a98\u003c/code\u003e\u003c/a\u003e fix(cookies): keep domain-scoped deletion in name-keyed cookie stores (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/bd7c8c8b5e64c8438ae6b9a1887528bacd4c05a4\"\u003e\u003ccode\u003ebd7c8c8\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.2 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/21e185ac2fe2504a12dcfdfd307e6ee5571dd56b\"\u003e\u003ccode\u003e21e185a\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.5 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/e8fe1d51a99b2e27d51f7aa1fb0fb7efac7f6581\"\u003e\u003ccode\u003ee8fe1d5\u003c/code\u003e\u003c/a\u003e fix: align parseCookieHeader return type with getAll cookie method (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/d06ca2112890cc520c3448bbd9a73c467d81e504\"\u003e\u003ccode\u003ed06ca21\u003c/code\u003e\u003c/a\u003e chore(main): release 0.12.1 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/1c175c1d2de2688a4c63f3b1d148fa0b957a9bf4\"\u003e\u003ccode\u003e1c175c1\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.3 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/7e1c519cc134fb04a71c79c31a7fe29af1e362f7\"\u003e\u003ccode\u003e7e1c519\u003c/code\u003e\u003c/a\u003e docs: align getSession/getUser/getClaims guidance with docs (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/509fc8e5532e9de19afbb35df69bb54bafd3341a\"\u003e\u003ccode\u003e509fc8e\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to v2.110.2 (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/ssr/commit/035eabe77385f36fbd744b50e08db2e21df0400b\"\u003e\u003ccode\u003e035eabe\u003c/code\u003e\u003c/a\u003e fix(cookies): deduplicate server cookie writes (\u003ca href=\"https://redirect.github.com/supabase/ssr/issues/246\"\u003e#246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/ssr/compare/v0.12.0...v0.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@supabase/supabase-js` from 2.110.1 to 2.110.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-js/releases\"\u003e@​supabase/supabase-js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.110.9\u003c/h2\u003e\n\u003ch2\u003e2.110.9 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e downgrade stale refresh token console noise (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e preserve presence refs (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e override sharp to \u0026gt;=0.35.0 to clear libvips advisory (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e populate symbols in sdk-compliance so capabilities are verifiable (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2547\"\u003e#2547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e bump postcss, babel, next to clear audit advisories (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.3\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.3 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e preserve presence refs (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.2\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.2 (2026-07-27)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e downgrade stale refresh token console noise (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erepo:\u003c/strong\u003e bump postcss, babel, next to clear audit advisories (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.110.9-canary.1\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.1 (2026-07-23)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only, there were no code changes.\u003c/p\u003e\n\u003ch2\u003ev2.110.9-canary.0\u003c/h2\u003e\n\u003ch2\u003e2.110.9-canary.0 (2026-07-22)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\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/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md\"\u003e@​supabase/supabase-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.110.9 (2026-07-27)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for \u003ccode\u003e@​supabase/supabase-js\u003c/code\u003e to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003ch2\u003e2.110.8 (2026-07-21)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e skip Node warning in Deno (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.7 (2026-07-16)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e trigger set auth on INITIAL_SESSION event (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2531\"\u003e#2531\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilipe Cabaço \u003ca href=\"https://github.com/filipecabaco\"\u003e\u003ccode\u003e@​filipecabaco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.6 (2026-07-15)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e warn instead of throw for unrecognized sb_ API key subtypes (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2526\"\u003e#2526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKaterina Skroumpelou \u003ca href=\"https://github.com/mandarini\"\u003e\u003ccode\u003e@​mandarini\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.5 (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e avoid edge runtime warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2522\"\u003e#2522\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVaibhav \u003ca href=\"https://github.com/7ttp\"\u003e\u003ccode\u003e@​7ttp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.110.4 (2026-07-14)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e stop sending API key in Authorization header for function calls (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2511\"\u003e#2511\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/supabase/supabase-js/commit/fc2e61ebf411a85dc6ecb8c3341cc61cc5a67919\"\u003e\u003ccode\u003efc2e61e\u003c/code\u003e\u003c/a\u003e chore(repo): bump postcss override and fix playwright 1.62 tsconfig failure (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/22050de60bb075848d9479704d927c0491c89d12\"\u003e\u003ccode\u003e22050de\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.8 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2546\"\u003e#2546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/01dbb53a050c477e17beebb882d0d371384344c7\"\u003e\u003ccode\u003e01dbb53\u003c/code\u003e\u003c/a\u003e fix(supabase): skip Node warning in Deno (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/150b00cd11dbe0268c9c911d48959bd7356acc87\"\u003e\u003ccode\u003e150b00c\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.7 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2533\"\u003e#2533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/130fa11ac61dbed695f75ea8fb88a796e15db985\"\u003e\u003ccode\u003e130fa11\u003c/code\u003e\u003c/a\u003e fix(realtime): trigger set auth on INITIAL_SESSION event (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2531\"\u003e#2531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c90b1cdec7fecaaf0f959d22e7b40f98aa06ec6b\"\u003e\u003ccode\u003ec90b1cd\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.6 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2527\"\u003e#2527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c23e1ab3834d039d6df6417f72636910359a26c8\"\u003e\u003ccode\u003ec23e1ab\u003c/code\u003e\u003c/a\u003e fix(supabase): warn instead of throw for unrecognized sb_ API key subtypes (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/8af3c3a2abedcc6e2408e7ef1e907db108e23afe\"\u003e\u003ccode\u003e8af3c3a\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.5 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2524\"\u003e#2524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/25da0976e9f01c25c36b6123050f5450ff49e012\"\u003e\u003ccode\u003e25da097\u003c/code\u003e\u003c/a\u003e chore(release): version 2.110.4 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2523\"\u003e#2523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/dafa7f536f1cb99f2df5795a088e8c5449c45927\"\u003e\u003ccode\u003edafa7f5\u003c/code\u003e\u003c/a\u003e fix(supabase): avoid edge runtime warning (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2522\"\u003e#2522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-js/commits/v2.110.9/packages/core/supabase-js\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@tailwindcss/vite` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003e@​tailwindcss/vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003e@​tailwindcss/vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/bdcd7087b332d263353d46ed366b7b08040ded7a\"\u003e\u003ccode\u003ebdcd708\u003c/code\u003e\u003c/a\u003e Don't trigger a full page reload for scanned files that Vite processes as mod...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-vite\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.3.5 to 26.3.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next/releases\"\u003ei18next's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\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/i18next/i18next/blob/master/CHANGELOG.md\"\u003ei18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. The published types are TS7-compatible as-is: every \u003ccode\u003etest/typescript\u003c/code\u003e suite produces identical results under 6.0 and 7.0.2. Reported in \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003ereact-i18next#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\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/i18next/i18next/commit/e1c60d4dd28a16f91be7f55b3685ffcf9760619b\"\u003e\u003ccode\u003ee1c60d4\u003c/code\u003e\u003c/a\u003e 26.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/04da43e08cb799f2e6f9a5578f3674fe2ef49595\"\u003e\u003ccode\u003e04da43e\u003c/code\u003e\u003c/a\u003e fix: allow typescript 7 in optional peerDependencies range (react-i18next#1927)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8eed4accc6c69398e9e25f79b617249fd3f7b1ec\"\u003e\u003ccode\u003e8eed4ac\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.3.5...v26.3.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react` from 19.2.7 to 19.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react/react/releases\"\u003ereact's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e19.2.8 (July 21st, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements when decoding\n(\u003ca href=\"https://redirect.github.com/facebook/react/pull/37087\"\u003e#37087\u003c/a\u003e by \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\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/react/react/commit/1dd4ecbdabf826f527fc9a58c05ea70375b7d170\"\u003e\u003ccode\u003e1dd4ecb\u003c/code\u003e\u003c/a\u003e [FlightReply] Performance improvements when decoding (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/37087\"\u003e#37087\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react/react/commit/b0d2fdb78bdfae075a7fa02ddcebbf25f90952c2\"\u003e\u003ccode\u003eb0d2fdb\u003c/code\u003e\u003c/a\u003e [19.2.x] Update required references to GitHub repo (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/36753\"\u003e#36753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.2.8/packages/react\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-dom` from 19.2.7 to 19.2.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/react/react/releases\"\u003ereact-dom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e19.2.8 (July 21st, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements when decoding\n(\u003ca href=\"https://redirect.github.com/facebook/react/pull/37087\"\u003e#37087\u003c/a\u003e by \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\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/react/react/commit/1dd4ecbdabf826f527fc9a58c05ea70375b7d170\"\u003e\u003ccode\u003e1dd4ecb\u003c/code\u003e\u003c/a\u003e [FlightReply] Performance improvements when decoding (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/37087\"\u003e#37087\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/react/react/commit/b0d2fdb78bdfae075a7fa02ddcebbf25f90952c2\"\u003e\u003ccode\u003eb0d2fdb\u003c/code\u003e\u003c/a\u003e [19.2.x] Update required references to GitHub repo (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/36753\"\u003e#36753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.2.8/packages/react-dom\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react-i18next` from 17.0.8 to 17.0.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md\"\u003ereact-i18next's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.0.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: \u003ccode\u003ehtml-parse-stringify\u003c/code\u003e updated to \u003ccode\u003e^4.0.1\u003c/code\u003e. The parser powering \u003ccode\u003e\u0026lt;Trans\u0026gt;\u003c/code\u003e is now actively maintained under the i18next org (\u003ca href=\"https://github.com/i18next/html-parse-stringify\"\u003ei18next/html-parse-stringify\u003c/a\u003e) after years without upstream releases. 4.x brings modern dual ESM/CJS packaging with an \u003ccode\u003eexports\u003c/code\u003e map, zero runtime dependencies, reworked TypeScript types and a long list of parser fixes (literal \u003ccode\u003e\u0026lt;\u003c/code\u003e in text, multiline/CRLF attribute values, comments containing \u003ccode\u003e\u0026gt;\u003c/code\u003e, doctype handling, quote-aware bracket handling).\u003c/li\u003e\n\u003cli\u003erefactor(Trans): the internal \u003ccode\u003eescapeLiteralLessThan\u003c/code\u003e scanner (~80 lines) is replaced by the parser's new \u003ccode\u003eallowedTags\u003c/code\u003e option with identical semantics: only numbered tags, kept basic HTML tags and known component names are parsed as markup, any other tag-shaped sequence in the translation stays literal text. Rendered output is unchanged (all 493 tests pass, including the \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1880\"\u003e#1880\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1893\"\u003e#1893\u003c/a\u003e escaping cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(warnings): the \u003ccode\u003euseTranslation\u003c/code\u003e and \u003ccode\u003eTrans\u003c/code\u003e \u0026quot;You will need to pass in an i18next instance\u0026quot; warnings now match the \u003ccode\u003euseSSR\u003c/code\u003e wording, mentioning the props/context alternatives and the most common unexplained cause at scale: duplicate react-i18next copies in monorepo setups. The \u003ccode\u003eTrans\u003c/code\u003e variant also referenced the internal \u003ccode\u003ei18nextReactModule\u003c/code\u003e name; it now points to the public \u003ccode\u003einitReactI18next\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003efeat(warnings): development-only warning (\u003ccode\u003eSUSPENDED_WHILE_LOADING\u003c/code\u003e, logged once) right before \u003ccode\u003euseTranslation\u003c/code\u003e suspends while translations are loading. With the default \u003ccode\u003euseSuspense: true\u003c/code\u003e and no \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary this previously surfaced as a blank screen or a cryptic React error; the warning now names both fixes (add a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary or set \u003ccode\u003ereact.useSuspense: false\u003c/code\u003e). No-op in production builds; the \u003ccode\u003eprocess.env.NODE_ENV\u003c/code\u003e check is wrapped so runtimes without a \u003ccode\u003eprocess\u003c/code\u003e global (raw ESM in the browser, some edge runtimes) stay silent instead of throwing.\u003c/li\u003e\n\u003cli\u003eci: weekly workflow typechecking the test suite against \u003ccode\u003e@types/react@next\u003c/code\u003e / \u003ccode\u003e@types/react-dom@next\u003c/code\u003e, so the next React major's type changes (like the React 18 \u003ccode\u003eTFunctionResult\u003c/code\u003e/children wave) surface before user reports.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e17.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow TypeScript 7 in the optional \u003ccode\u003etypescript\u003c/code\u003e peer dependency range (\u003ccode\u003e^5 || ^6 || ^7\u003c/code\u003e). With \u003ccode\u003etypescript@7.0.2\u003c/code\u003e in a project, \u003ccode\u003enpm install\u003c/code\u003e failed with an \u003ccode\u003eERESOLVE\u003c/code\u003e peer conflict. Fixes \u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1927\"\u003e#1927\u003c/a\u003e, thanks \u003ca href=\"https://github.com/andikapradanaarif\"\u003e\u003ccode\u003e@​andikapradanaarif\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003efix(types): \u003ccode\u003e\u0026lt;Trans t={t} ns=\u0026quot;ns\u0026quot; …\u0026gt;\u003c/code\u003e with a \u003ccode\u003et\u003c/code\u003e from \u003ccode\u003euseTranslation(['ns'])\u003c/code\u003e now typechecks under TypeScript 7. TS7 intersects the \u003ccode\u003eNs\u003c/code\u003e inference candidates coming from the \u003ccode\u003et\u003c/code\u003e prop (\u003ccode\u003ereadonly ['ns']\u003c/code\u003e) and the \u003ccode\u003ens\u003c/code\u003e prop (\u003ccode\u003e'ns'\u003c/code\u003e) into an unsatisfiable \u003ccode\u003e'ns' \u0026amp; readonly ['ns']\u003c/code\u003e, where TS6 resolved them. The \u003ccode\u003ens\u003c/code\u003e prop on \u003ccode\u003eTransProps\u003c/code\u003e, \u003ccode\u003eTransSelectorProps\u003c/code\u003e and \u003ccode\u003eIcuTransWithoutContextProps\u003c/code\u003e now also accepts a single namespace out of an array-typed \u003ccode\u003eNs\u003c/code\u003e (\u003ccode\u003eNs | (Ns extends readonly (infer S extends string)[] ? S : never)\u003c/code\u003e) — which matches runtime behavior and is unchanged under TS5/TS6.\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/i18next/react-i18next/commit/274e2e60785514388495466137c195c72d6749fb\"\u003e\u003ccode\u003e274e2e6\u003c/code\u003e\u003c/a\u003e 17.0.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3c4c5631150080453d5f63aac71575694fabef7c\"\u003e\u003ccode\u003e3c4c563\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/1e7ccae22a755ea8471f0cab5cd3d94c925c527c\"\u003e\u003ccode\u003e1e7ccae\u003c/code\u003e\u003c/a\u003e chore: html-parse-stringify ^4.0.1 + 17.0.11 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/4412e25621ec9d0f45f7137e3a5cb7207bcfd8b0\"\u003e\u003ccode\u003e4412e25\u003c/code\u003e\u003c/a\u003e html-parse-stringify ^4.0.0: replace escapeLiteralLessThan with the parser's ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/5787979e38d03c2affb05cec0bf23daa6f2ad3ec\"\u003e\u003ccode\u003e5787979\u003c/code\u003e\u003c/a\u003e ci: types-compat falls back to latest when no \u003ccode\u003e@​types/react\u003c/code\u003e pre-release tag ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/3b71c2766c2507781ccfb7b2b7a638b3ab339958\"\u003e\u003ccode\u003e3b71c27\u003c/code\u003e\u003c/a\u003e 17.0.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/57c3500e6a18764eb30ef433f0899ea781c99bad\"\u003e\u003ccode\u003e57c3500\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/c62476f4d10d7a8d77d6eb5b70ece5c960c978a0\"\u003e\u003ccode\u003ec62476f\u003c/code\u003e\u003c/a\u003e chore: sync package-lock with i18next ^26.2.0 devDependency bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/0126bd1cada6bcf98aa764f32e9f17e5f690e431\"\u003e\u003ccode\u003e0126bd1\u003c/code\u003e\u003c/a\u003e improve instance warnings (monorepo hint) + dev-only suspense warning + weekl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/react-i18next/commit/8b4a9ea139b73309471737e5ba9c423f82d5c0cc\"\u003e\u003ccode\u003e8b4a9ea\u003c/code\u003e\u003c/a\u003e 17.0.9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/i18next/react-i18next/compare/v17.0.8...v17.0.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tailwindcss` from 4.3.2 to 4.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/releases\"\u003etailwindcss's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\u003c/a\u003e)\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/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md\"\u003etailwindcss's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.3] - 2026-07-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e--watch --poll[=ms]\u003c/code\u003e in \u003ccode\u003e@tailwindcss/cli\u003c/code\u003e when filesystem events are unreliable or unavailable (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20297\"\u003e#20297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. \u003ccode\u003ebg-[#fff]\u003c/code\u003e and \u003ccode\u003ebg-[#FFF]\u003c/code\u003e → \u003ccode\u003ebg-white\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20298\"\u003e#20298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent Preflight from overriding Firefox's native \u003ccode\u003eiframe:focus-visible\u003c/code\u003e outline styles (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etheme('colors.foo')\u003c/code\u003e in JS plugins resolves correctly when both \u003ccode\u003e--color-foo\u003c/code\u003e and \u003ccode\u003e--color-foo-bar\u003c/code\u003e exist (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20299\"\u003e#20299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure fractional opacity modifiers work with named shadow sizes like \u003ccode\u003eshadow-sm/12.5\u003c/code\u003e, \u003ccode\u003etext-shadow-sm/12.5\u003c/code\u003e, \u003ccode\u003edrop-shadow-sm/12.5\u003c/code\u003e, and \u003ccode\u003einset-shadow-sm/12.5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse selectors like \u003ccode\u003e[data-foo]div\u003c/code\u003e as two selectors instead of one (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e@tailwindcss/postcss\u003c/code\u003e rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20310\"\u003e#20310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure CSS nesting is handled even when Lightning CSS isn't run, such as in \u003ccode\u003e@tailwindcss/browser\u003c/code\u003e and Tailwind Play (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent achromatic theme colors from shifting hue when mixed in polar color spaces like \u003ccode\u003eoklch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e--spacing(0)\u003c/code\u003e is optimized to \u003ccode\u003e0px\u003c/code\u003e instead of \u003ccode\u003e0\u003c/code\u003e so it remains a \u003ccode\u003e\u0026lt;length\u0026gt;\u003c/code\u003e when used in \u003ccode\u003ecalc(…)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLoad \u003ccode\u003e@parcel/watcher\u003c/code\u003e only when needed in \u003ccode\u003e@tailwindcss/cli --watch\u003c/code\u003e mode, so one-off builds and \u003ccode\u003e--watch --poll\u003c/code\u003e work when \u003ccode\u003e@parcel/watcher\u003c/code\u003e can't be loaded (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit platform fonts instead of \u003ccode\u003esystem-ui\u003c/code\u003e and \u003ccode\u003eui-sans-serif\u003c/code\u003e so CJK text respects the page's \u003ccode\u003elang\u003c/code\u003e attribute on Windows (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/upgrade\u003c/code\u003e from rewriting ignored files when run from a subdirectory (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20329\"\u003e#20329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure earlier \u003ccode\u003e@source\u003c/code\u003e rules pointing to nested files are scanned when later \u003ccode\u003e@source\u003c/code\u003e rules point to files in parent folders (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20335\"\u003e#20335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e@tailwindcss/vite\u003c/code\u003e from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (\u003ca href=\"https://redirect.github.com/tailwindlabs/tailwindcss/pull/20336\"\u003e#20336\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/tailwindlabs/tailwindcss/commit/c2b24dd15fed1c59dd521bd86082f520c9f5ad0d\"\u003e\u003ccode\u003ec2b24dd\u003c/code\u003e\u003c/a\u003e 4.3.3 (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20334\"\u003e#20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/e48c5e80473c25fe5a27fe267fbaf4f6512424a3\"\u003e\u003ccode\u003ee48c5e8\u003c/code\u003e\u003c/a\u003e Fix weird character rendering on Windows with Japanese locale (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/35a3e9c5159bea77af0d48f0c8849279211cc7e9\"\u003e\u003ccode\u003e35a3e9c\u003c/code\u003e\u003c/a\u003e Always produce \u003ccode\u003e\\\u0026lt;length\u0026gt;\u003c/code\u003e value when optimizing \u003ccode\u003e--spacing(0)\u003c/code\u003e (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20319\"\u003e#20319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/4af47fbe942245fd05ad8cd4776c2dbd27237bee\"\u003e\u003ccode\u003e4af47fb\u003c/code\u003e\u003c/a\u003e Fix hues in achromatic theme colors to be \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20314\"\u003e#20314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/5835691d210b1c530160c844a562c36fa5fcbdb3\"\u003e\u003ccode\u003e5835691\u003c/code\u003e\u003c/a\u003e Handle CSS nesting natively (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20124\"\u003e#20124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/67c745efde4c6b36879e812b4c3d9250f7e0b31e\"\u003e\u003ccode\u003e67c745e\u003c/code\u003e\u003c/a\u003e Fix bug in attribute selector parsing (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20303\"\u003e#20303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/2683903b86d695f9c2647a06eb58bd96ade1eaee\"\u003e\u003ccode\u003e2683903\u003c/code\u003e\u003c/a\u003e Support fractional opacity modifiers for named shadow sizes (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/04588b1e8f3dbc856d8a3fad97c460bee689dbf3\"\u003e\u003ccode\u003e04588b1\u003c/code\u003e\u003c/a\u003e Fix theme() in JS plugins returning unresolved object instead of DEFAULT valu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/b53fa096c92d830fc64b7cf69581496242583446\"\u003e\u003ccode\u003eb53fa09\u003c/code\u003e\u003c/a\u003e fix: exclude iframes from focus-visible auto outline in Preflight (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20292\"\u003e#20292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commit/ef79119d4e2b8b0f37710e736605bd0b3419afb7\"\u003e\u003ccode\u003eef79119\u003c/code\u003e\u003c/a\u003e Bump dependencies (\u003ca href=\"https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@eslint/js` from 9.39.4 to 9.39.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/eslint/eslint/releases\"\u003e@​eslint/js's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.39.5\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/253be16a79a4c78eec4e0eb461b574d60dbf6b11\"\u003e\u003ccode\u003e253be16\u003c/code\u003e\u003c/a\u003e fix: handle unavailable require cache (backport of \u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20812\"\u003e#20812\u003c/a\u003e to v9.x) (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21065\"\u003e#21065\u003c/a\u003e) (Eric)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/74930edd1ce0d246819edc72705101ec271da50b\"\u003e\u003ccode\u003e74930ed\u003c/code\u003e\u003c/a\u003e docs: switch build to Node.js 24 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20894\"\u003e#20894\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/eaec8bb6b1ca4b36985ee0222c457d4730d47a20\"\u003e\u003ccode\u003eeaec8bb\u003c/code\u003e\u003c/a\u003e docs: Add ESLint v9.x EOL notice (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20828\"\u003e#20828\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/458205f7d7a4769f32bec006eecc45c6a71be16a\"\u003e\u003ccode\u003e458205f\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@eslint/eslintrc\u003c/code\u003e and \u003ccode\u003e@eslint/js\u003c/code\u003e for v9.39.5 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21077\"\u003e#21077\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/202117be549534715d687f988e17f29e1dcd0622\"\u003e\u003ccode\u003e202117b\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release (Jenkins)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d9eb6edcc93c1319ff1d2bb9aeb6d7d47bd73a79\"\u003e\u003ccode\u003ed9eb6ed\u003c/code\u003e\u003c/a\u003e test: disable warning for \u003ccode\u003evm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21074\"\u003e#21074\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/7b431a7b19c345b8db56040b1888a3b531c3e64c\"\u003e\u003ccode\u003e7b431a7\u003c/code\u003e\u003c/a\u003e chore: override \u003ccode\u003ere2\u003c/code\u003e dependency for \u003ccode\u003e@metascraper/helpers\u003c/code\u003e (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/21068\"\u003e#21068\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/daf77911de33be163503c6568ccb159741f4b018\"\u003e\u003ccode\u003edaf7791\u003c/code\u003e\u003c/a\u003e chore: pin fflate@0.8.2 (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20895\"\u003e#20895\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/daee8ba3082afbc94d3b69ddc129d4dc664716f2\"\u003e\u003ccode\u003edaee8ba\u003c/code\u003e\u003c/a\u003e ci: use pnpm in \u003ccode\u003eeslint-flat-config-utils\u003c/code\u003e type integration test (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20829\"\u003e#20829\u003c/a\u003e) (Milos Djermanovic)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/116d4bec7c0ddaeaa75f92fb1271a4ab70d24ce3\"\u003e\u003ccode\u003e116d4be\u003c/code\u003e\u003c/a\u003e ci: unpin Node.js 25.x in CI (\u003ca href=\"https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20619\"\u003e#20619\u003c/a\u003e) (Copilot)\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/eslint/eslint/commit/202117be549534715d687f988e17f29e1dcd0622\"\u003e\u003ccode\u003e202117b\u003c/code\u003e\u003c/a\u003e chore: package.json update for \u003ccode\u003e@​eslint/js\u003c/code\u003e release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/eslint/eslint/commits/v9.39.5/packages/js\"\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.61.1 to 1.62.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.62.0\u003c/h2\u003e\n\u003ch2\u003e🧱 New component testing model\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/docs/test-components\"\u003eComponent testing\u003c/a\u003e moves to a \u003cstrong\u003estories and galleries\u003c/strong\u003e model.\nA \u003cstrong\u003estory\u003c/strong\u003e wraps your component in one specific scenario — hard-coded props, mock data, providers — and a \u003cstrong\u003egallery\u003c/strong\u003e page that you serve renders stories on demand.\nThe new \u003ca href=\"https://playwright.dev/docs/api/class-fixtures#fixtures-mount\"\u003efixtures.mount()\u003c/a\u003e fixture navigates to the gallery, mounts a story by id, and returns a \u003ca href=\"https://playwright.dev/docs/api/class-locator\"\u003eLocator\u003c/a\u003e scoped to the story's root element:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003etest('click should expand', async ({ mount }) =\u0026gt; {\r\n  const component = await mount('components/Expandable/Stateful');\r\n  await component.getByRole('button').click();\r\n  await expect(component.getByTestId('expanded')).toHaveValue('true');\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePass a story type as a template argument to type-check its props,...\n\n_Description has been truncated_","html_url":"https://github.com/selimmujdeci/Car-launcher-pro/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/selimmujdeci%2FCar-launcher-pro/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"}}]}