{"id":300,"name":"express","ecosystem":"npm","repository_url":"https://github.com/expressjs/express","issues_count":32537,"created_at":"2025-06-06T15:01:33.638Z","updated_at":"2025-06-06T15:01:33.638Z","purl":"pkg:npm/express","metadata":{"id":1696248,"name":"express","ecosystem":"npm","description":"Fast, unopinionated, minimalist web framework","homepage":"https://expressjs.com/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/expressjs/express","keywords_array":["express","framework","sinatra","web","http","rest","restful","router","app","api"],"namespace":null,"versions_count":283,"first_release_published_at":"2010-12-29T19:38:25.450Z","latest_release_published_at":"2025-03-31T14:01:22.509Z","latest_release_number":"5.1.0","last_synced_at":"2025-06-06T17:00:54.318Z","created_at":"2022-04-09T15:17:51.968Z","updated_at":"2025-06-06T17:02:32.585Z","registry_url":"https://www.npmjs.com/package/express","install_command":"npm install express","documentation_url":null,"metadata":{"funding":{"url":"https://opencollective.com/express","type":"opencollective"},"dist-tags":{"latest-4":"4.21.2","latest":"5.1.0"}},"repo_metadata":{"id":601206,"uuid":"237159","full_name":"expressjs/express","owner":"expressjs","description":"Fast, unopinionated, minimalist web framework for node.","archived":false,"fork":false,"pushed_at":"2025-06-01T09:12:48.000Z","size":9590,"stargazers_count":67086,"open_issues_count":191,"forks_count":18770,"subscribers_count":1691,"default_branch":"master","last_synced_at":"2025-06-04T07:07:40.667Z","etag":null,"topics":["express","javascript","nodejs","server"],"latest_commit_sha":null,"homepage":"https://expressjs.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"xanzy/go-pathspec","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/expressjs.png","metadata":{"files":{"readme":"Readme-Guide.md","changelog":"History.md","contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"Code-Of-Conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"express"}},"created_at":"2009-06-26T18:56:01.000Z","updated_at":"2025-06-04T01:54:12.000Z","dependencies_parsed_at":"2024-03-14T12:43:39.320Z","dependency_job_id":"bc272046-0eec-475e-922b-002fe66a91cc","html_url":"https://github.com/expressjs/express","commit_stats":{"total_commits":5509,"total_committers":348,"mean_commits":"15.830459770114942","dds":0.3597749137774551,"last_synced_commit":"b31910c542c7079d8a763aff346400b6f4c0eaee"},"previous_names":["strongloop/express","visionmedia/express"],"tags_count":300,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/expressjs","download_url":"https://codeload.github.com/expressjs/express/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258030837,"owners_count":22639300,"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":"expressjs","name":"expressjs","uuid":"5658226","kind":"organization","description":"Express.js: the fast, unopinionated, minimalist web framework for node","email":null,"website":"https://expressjs.com/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5658226?v=4","repositories_count":44,"last_synced_at":"2024-04-14T06:44:27.360Z","metadata":{"has_sponsors_listing":false,"funding":{"open_collective":"express"}},"html_url":"https://github.com/expressjs","funding_links":["https://opencollective.com/express"],"total_stars":122430,"followers":1481,"following":0,"created_at":"2022-11-02T16:18:58.194Z","updated_at":"2024-04-14T06:44:39.104Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/expressjs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/expressjs/repositories"},"tags":[{"name":"v5.0.1","sha":"d14b2de782c16fbef39541c9009b01bd6ae90b92","kind":"tag","published_at":"2025-04-20T14:28:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/v5.0.1","html_url":"https://github.com/expressjs/express/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.1/manifests"},{"name":"v5.1.0","sha":"cd7d4397c398a3f3ecadeaf9ef6ac1377bd414c4","kind":"tag","published_at":"2025-03-28T18:29:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/v5.1.0","html_url":"https://github.com/expressjs/express/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.1.0/manifests"},{"name":"4.21.2","sha":"1faf228935aa0a13111f92c28ee795be64ce3f0f","kind":"commit","published_at":"2024-12-05T22:27:56.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.21.2","html_url":"https://github.com/expressjs/express/releases/tag/4.21.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.2/manifests"},{"name":"5.0.1","sha":"d14b2de782c16fbef39541c9009b01bd6ae90b92","kind":"commit","published_at":"2024-10-08T19:31:10.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.1","html_url":"https://github.com/expressjs/express/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.1/manifests"},{"name":"4.21.1","sha":"8e229f92752ad51462c868b99f6e6c2e559801b0","kind":"commit","published_at":"2024-10-08T18:36:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.21.1","html_url":"https://github.com/expressjs/express/releases/tag/4.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.1/manifests"},{"name":"4.21.0","sha":"7e562c6d8daddff4604f8efaaf9db2cf98c6dcff","kind":"tag","published_at":"2024-09-11T22:32:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.21.0","html_url":"https://github.com/expressjs/express/releases/tag/4.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.21.0/manifests"},{"name":"v5.0.0","sha":"344b022fc7ed95cf07b46e097935e61151fd585f","kind":"commit","published_at":"2024-09-10T04:37:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/v5.0.0","html_url":"https://github.com/expressjs/express/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0/manifests"},{"name":"4.20.0","sha":"21df421ebc7a5249bb31101da666bbf22adc3f18","kind":"commit","published_at":"2024-09-10T02:01:43.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.20.0","html_url":"https://github.com/expressjs/express/releases/tag/4.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.20.0/manifests"},{"name":"v5.0.0-beta.3","sha":"cd7d79f92a7209b09aa9b065b0643c1bec55ed1d","kind":"tag","published_at":"2024-03-25T14:41:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/v5.0.0-beta.3","html_url":"https://github.com/expressjs/express/releases/tag/v5.0.0-beta.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0-beta.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0-beta.3/manifests"},{"name":"4.19.2","sha":"04bc62787be974874bc1467b23606c36bc9779ba","kind":"tag","published_at":"2024-03-25T14:26:10.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.19.2","html_url":"https://github.com/expressjs/express/releases/tag/4.19.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.2/manifests"},{"name":"5.0.0-beta.2","sha":"7091ec17f046a12a294155e6584f8da699fa160d","kind":"tag","published_at":"2024-03-21T03:00:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-beta.2","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-beta.2/manifests"},{"name":"4.19.1","sha":"4f0f6cc67d531431c096ea006c2191b92931bbc3","kind":"tag","published_at":"2024-03-20T22:18:05.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.19.1","html_url":"https://github.com/expressjs/express/releases/tag/4.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.1/manifests"},{"name":"4.19.0","sha":"084e36506a18774f85206a65d8da04dc1107fc1b","kind":"tag","published_at":"2024-03-20T16:39:49.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.19.0","html_url":"https://github.com/expressjs/express/releases/tag/4.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.19.0/manifests"},{"name":"4.18.3","sha":"1b51edac7c5f2844e23602164a52643bb625993a","kind":"tag","published_at":"2024-02-29T11:42:09.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.18.3","html_url":"https://github.com/expressjs/express/releases/tag/4.18.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.3/manifests"},{"name":"4.18.2","sha":"8368dc178af16b91b576c4c1d135f701a0007e5d","kind":"commit","published_at":"2022-10-08T20:11:42.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.18.2","html_url":"https://github.com/expressjs/express/releases/tag/4.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.2/manifests"},{"name":"4.18.1","sha":"d854c43ea177d1faeea56189249fff8c24a764bd","kind":"commit","published_at":"2022-04-29T19:32:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.18.1","html_url":"https://github.com/expressjs/express/releases/tag/4.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.1/manifests"},{"name":"4.18.0","sha":"547fdd41dca9ae9c49956748cc0bd1f011310fb6","kind":"commit","published_at":"2022-04-25T18:53:28.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.18.0","html_url":"https://github.com/expressjs/express/releases/tag/4.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.18.0/manifests"},{"name":"4.17.3","sha":"3d7fce56a35f4f73fa437866cd1401587a212334","kind":"commit","published_at":"2022-02-17T02:03:42.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.17.3","html_url":"https://github.com/expressjs/express/releases/tag/4.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.3/manifests"},{"name":"v5.0.0-beta.1","sha":"6faf26d59f00637e5c09c1d320df966ee28349ad","kind":"tag","published_at":"2022-02-15T00:13:14.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/v5.0.0-beta.1","html_url":"https://github.com/expressjs/express/releases/tag/v5.0.0-beta.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0-beta.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/v5.0.0-beta.1/manifests"},{"name":"4.17.2","sha":"ea537d907d61dc693587fd41aab024e9df2e14b1","kind":"commit","published_at":"2021-12-17T03:40:49.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.17.2","html_url":"https://github.com/expressjs/express/releases/tag/4.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.2/manifests"},{"name":"5.0.0-alpha.8","sha":"bd04d8a87fbe22e6fabaa6a5451a885c0790043a","kind":"commit","published_at":"2020-03-26T00:14:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.8","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.8/manifests"},{"name":"4.17.1","sha":"e1b45ebd050b6f06aa38cda5aaf0c21708b0c71e","kind":"commit","published_at":"2019-05-26T04:24:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.17.1","html_url":"https://github.com/expressjs/express/releases/tag/4.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.1/manifests"},{"name":"4.17.0","sha":"10c7756764fbe969b307b15a72fd074479c00f8d","kind":"commit","published_at":"2019-05-17T01:25:42.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.17.0","html_url":"https://github.com/expressjs/express/releases/tag/4.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.17.0/manifests"},{"name":"5.0.0-alpha.7","sha":"5f0c829d7ca7da746ee859f13a54631000f8a9b5","kind":"commit","published_at":"2018-10-27T02:29:15.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.7","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.7/manifests"},{"name":"4.16.4","sha":"dc538f6e810bd462c98ee7e6aae24c64d4b1da93","kind":"commit","published_at":"2018-10-11T03:50:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.16.4","html_url":"https://github.com/expressjs/express/releases/tag/4.16.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.4/manifests"},{"name":"4.16.3","sha":"3ed5090ca91f6a387e66370d57ead94d886275e1","kind":"commit","published_at":"2018-03-12T17:38:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.16.3","html_url":"https://github.com/expressjs/express/releases/tag/4.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.3/manifests"},{"name":"4.16.2","sha":"351396f971280ab79faddcf9782ea50f4e88358d","kind":"commit","published_at":"2017-10-10T02:55:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.16.2","html_url":"https://github.com/expressjs/express/releases/tag/4.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.2/manifests"},{"name":"4.16.1","sha":"e3f7f51f5f5475ca1ad091b1f8b7293f79467d29","kind":"commit","published_at":"2017-09-29T20:23:23.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.16.1","html_url":"https://github.com/expressjs/express/releases/tag/4.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.1/manifests"},{"name":"4.16.0","sha":"f974d22c66d3cd91634ddaba1ef8bcaa8e49daf4","kind":"commit","published_at":"2017-09-28T17:57:23.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.16.0","html_url":"https://github.com/expressjs/express/releases/tag/4.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.16.0/manifests"},{"name":"5.0.0-alpha.6","sha":"f4120a645301366891775d1f03925449239a2cb7","kind":"commit","published_at":"2017-09-25T05:28:00.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.6","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.6/manifests"},{"name":"4.15.5","sha":"ea3d60565242c47be97088ead2708d7b88390858","kind":"commit","published_at":"2017-09-25T05:04:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.5","html_url":"https://github.com/expressjs/express/releases/tag/4.15.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.5/manifests"},{"name":"4.15.4","sha":"a4bd4373b2c3b2521ee4c499cb8e90e98f78bfa5","kind":"commit","published_at":"2017-08-07T02:03:53.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.4","html_url":"https://github.com/expressjs/express/releases/tag/4.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.4/manifests"},{"name":"4.15.3","sha":"6da454c7fb37e68ed65ffe0371aa688b89f5bd6e","kind":"commit","published_at":"2017-05-17T06:14:11.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.3","html_url":"https://github.com/expressjs/express/releases/tag/4.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.3/manifests"},{"name":"5.0.0-alpha.5","sha":"21f725e0ef9e1e9a8ea51e8486e9cadeae956774","kind":"commit","published_at":"2017-03-06T13:43:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.5","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.5/manifests"},{"name":"4.15.2","sha":"d43b074f0b3b56a91f240e62798c932ba104b79a","kind":"commit","published_at":"2017-03-06T13:34:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.2","html_url":"https://github.com/expressjs/express/releases/tag/4.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.2/manifests"},{"name":"4.15.1","sha":"d32ed68b2995e0322100ace29d86e7a86b9c6378","kind":"commit","published_at":"2017-03-06T04:19:32.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.1","html_url":"https://github.com/expressjs/express/releases/tag/4.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.1/manifests"},{"name":"5.0.0-alpha.4","sha":"a3a9166c521008576da724e83221c05a1aa92245","kind":"commit","published_at":"2017-03-01T23:51:29.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.4","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.4/manifests"},{"name":"4.15.0","sha":"504a51c040f22c80c7e52377c0ef00b1c8b2a76b","kind":"commit","published_at":"2017-03-01T22:22:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.15.0","html_url":"https://github.com/expressjs/express/releases/tag/4.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.15.0/manifests"},{"name":"5.0.0-alpha.3","sha":"c8d9223e93ee0c08490e4840f3278314ccb221a5","kind":"commit","published_at":"2017-01-29T03:21:29.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.3","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.3/manifests"},{"name":"4.14.1","sha":"0437c513f2dbc8d1dfc5a3e35fe35182bd3a671e","kind":"commit","published_at":"2017-01-28T22:21:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.14.1","html_url":"https://github.com/expressjs/express/releases/tag/4.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.14.1/manifests"},{"name":"4.14.0","sha":"9375a9afa9d7baa814b454c7a6818a7471aaef00","kind":"commit","published_at":"2016-06-16T15:03:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.14.0","html_url":"https://github.com/expressjs/express/releases/tag/4.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.14.0/manifests"},{"name":"4.13.4","sha":"193bed2649c55c1fd362e46cd4702c773f3e7434","kind":"commit","published_at":"2016-01-22T02:10:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.13.4","html_url":"https://github.com/expressjs/express/releases/tag/4.13.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.4/manifests"},{"name":"4.13.3","sha":"ef7ad681b245fba023843ce94f6bcb8e275bbb8e","kind":"commit","published_at":"2015-08-03T05:02:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.13.3","html_url":"https://github.com/expressjs/express/releases/tag/4.13.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.3/manifests"},{"name":"4.13.2","sha":"97b2d70d8adfb4649fd8ca9adc73c47ffcc4bf5b","kind":"commit","published_at":"2015-07-31T21:09:15.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.13.2","html_url":"https://github.com/expressjs/express/releases/tag/4.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.2/manifests"},{"name":"3.21.2","sha":"cb59086305367d9fcd7d63b53cfca1a3e4ef77d7","kind":"commit","published_at":"2015-07-31T20:15:06.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.21.2","html_url":"https://github.com/expressjs/express/releases/tag/3.21.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.2/manifests"},{"name":"5.0.0-alpha.2","sha":"2c668f87c7c14245d9400cd1357b7dbb38526a3c","kind":"commit","published_at":"2015-07-07T05:33:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.2","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.2/manifests"},{"name":"4.13.1","sha":"2ac25098548f739c4f2b526b2a00aa60a74c8e75","kind":"commit","published_at":"2015-07-06T05:38:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.13.1","html_url":"https://github.com/expressjs/express/releases/tag/4.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.1/manifests"},{"name":"3.21.1","sha":"3c0ff8133bace4a0dc1356b8d8e6e83b38d2dd95","kind":"commit","published_at":"2015-07-06T04:53:25.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.21.1","html_url":"https://github.com/expressjs/express/releases/tag/3.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.1/manifests"},{"name":"4.13.0","sha":"6c7a36733891ddd6089ee4f267d731383bf58ea9","kind":"commit","published_at":"2015-06-21T05:46:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.13.0","html_url":"https://github.com/expressjs/express/releases/tag/4.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.13.0/manifests"},{"name":"3.21.0","sha":"115dbe1a4d817d925d2dc87731a7ceb1663152ed","kind":"commit","published_at":"2015-06-19T01:14:56.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.21.0","html_url":"https://github.com/expressjs/express/releases/tag/3.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.21.0/manifests"},{"name":"4.12.4","sha":"e9c9f95ade0f20a048861ac886d4767a839d5286","kind":"commit","published_at":"2015-05-18T04:38:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.12.4","html_url":"https://github.com/expressjs/express/releases/tag/4.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.4/manifests"},{"name":"3.20.3","sha":"b149430114b42299be84b5c1dfe25a8303605db5","kind":"commit","published_at":"2015-05-18T04:04:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.20.3","html_url":"https://github.com/expressjs/express/releases/tag/3.20.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.3/manifests"},{"name":"4.12.3","sha":"f56463f8bf24015736978d0dc4d398fa22a9d758","kind":"commit","published_at":"2015-03-17T14:59:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.12.3","html_url":"https://github.com/expressjs/express/releases/tag/4.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.3/manifests"},{"name":"3.20.2","sha":"011e5dc24185eb213cfc09e027498ca34c742103","kind":"commit","published_at":"2015-03-17T05:03:53.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.20.2","html_url":"https://github.com/expressjs/express/releases/tag/3.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.2/manifests"},{"name":"4.12.2","sha":"dee9fbbbda2f2483c657cf912f68db1a5ba1fcac","kind":"commit","published_at":"2015-03-03T05:06:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.12.2","html_url":"https://github.com/expressjs/express/releases/tag/4.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.2/manifests"},{"name":"4.12.1","sha":"1e6d2654a284f00c4bb92e201d87982e3dfb9a7c","kind":"commit","published_at":"2015-03-02T00:11:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.12.1","html_url":"https://github.com/expressjs/express/releases/tag/4.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.1/manifests"},{"name":"3.20.1","sha":"b2311c74024ceeb90cd7f4c473b856593106ba65","kind":"commit","published_at":"2015-03-01T04:16:27.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.20.1","html_url":"https://github.com/expressjs/express/releases/tag/3.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.1/manifests"},{"name":"4.12.0","sha":"51f960f2977566f8d671fc0e8154466a1b3d78ca","kind":"commit","published_at":"2015-02-23T05:56:49.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.12.0","html_url":"https://github.com/expressjs/express/releases/tag/4.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.12.0/manifests"},{"name":"3.20.0","sha":"85755e32d9d262db702bee84830462b5275c27e4","kind":"commit","published_at":"2015-02-19T02:25:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.20.0","html_url":"https://github.com/expressjs/express/releases/tag/3.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.20.0/manifests"},{"name":"4.11.2","sha":"63ab25579bda70b4927a179b580a9c580b6c7ada","kind":"commit","published_at":"2015-02-01T20:39:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.11.2","html_url":"https://github.com/expressjs/express/releases/tag/4.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.2/manifests"},{"name":"3.19.2","sha":"86328767fe6b253bdbf99343049cc57f1c3a1fbb","kind":"commit","published_at":"2015-02-01T20:15:53.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.19.2","html_url":"https://github.com/expressjs/express/releases/tag/3.19.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.2/manifests"},{"name":"4.11.1","sha":"45ebb6cdf45710f4fba93ae41c9dbd16afae83fe","kind":"commit","published_at":"2015-01-21T08:31:11.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.11.1","html_url":"https://github.com/expressjs/express/releases/tag/4.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.1/manifests"},{"name":"3.19.1","sha":"0c567b3282821c98a84640956e7fb4bf236be30e","kind":"commit","published_at":"2015-01-21T08:18:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.19.1","html_url":"https://github.com/expressjs/express/releases/tag/3.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.1/manifests"},{"name":"4.11.0","sha":"40f7a8eaa297c26f74c1a5dbc13ab705b6f97b45","kind":"commit","published_at":"2015-01-14T03:51:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.11.0","html_url":"https://github.com/expressjs/express/releases/tag/4.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.11.0/manifests"},{"name":"4.10.8","sha":"08939683c7a2e5d7dc928d310ebab65878bffff3","kind":"commit","published_at":"2015-01-13T17:38:09.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.8","html_url":"https://github.com/expressjs/express/releases/tag/4.10.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.8/manifests"},{"name":"3.19.0","sha":"ee3f2b073cbd947a5108b0ed68faf8172a4af2ca","kind":"commit","published_at":"2015-01-09T06:07:12.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.19.0","html_url":"https://github.com/expressjs/express/releases/tag/3.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.19.0/manifests"},{"name":"4.10.7","sha":"ff5e96c88b23ebf0bb9bf99f9195b5b40215502f","kind":"commit","published_at":"2015-01-05T00:33:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.7","html_url":"https://github.com/expressjs/express/releases/tag/4.10.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.7/manifests"},{"name":"4.10.6","sha":"b78bd3d1fd6caf8228a1875078fecce936cb2e46","kind":"commit","published_at":"2014-12-13T04:13:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.6","html_url":"https://github.com/expressjs/express/releases/tag/4.10.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.6/manifests"},{"name":"3.18.6","sha":"4405b849a9ea62dfa76f32031e187c844f8e217d","kind":"commit","published_at":"2014-12-13T02:39:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.6","html_url":"https://github.com/expressjs/express/releases/tag/3.18.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.6/manifests"},{"name":"3.18.5","sha":"262b60537fd39c76420246d38c813a1743bf223e","kind":"commit","published_at":"2014-12-12T04:10:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.5","html_url":"https://github.com/expressjs/express/releases/tag/3.18.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.5/manifests"},{"name":"4.10.5","sha":"4d8093302f752725874d6b31b57720d4cab6d078","kind":"commit","published_at":"2014-12-11T04:53:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.5","html_url":"https://github.com/expressjs/express/releases/tag/4.10.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.5/manifests"},{"name":"4.10.4","sha":"656e214937889536b0faa73097422061315496f2","kind":"commit","published_at":"2014-11-25T05:17:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.4","html_url":"https://github.com/expressjs/express/releases/tag/4.10.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.4/manifests"},{"name":"4.10.3","sha":"7fcc8b190d7a8a3f3743bc19b4ec0d349e50cc20","kind":"commit","published_at":"2014-11-23T23:48:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.3","html_url":"https://github.com/expressjs/express/releases/tag/4.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.3/manifests"},{"name":"3.18.4","sha":"6c8bcd5c4e049b5c212036a2e6cfe9ac98d5b9f8","kind":"commit","published_at":"2014-11-23T20:42:03.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.4","html_url":"https://github.com/expressjs/express/releases/tag/3.18.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.4/manifests"},{"name":"4.10.2","sha":"ac56cf46063e461fbaf53c2c869a1a657e8adbe1","kind":"commit","published_at":"2014-11-10T00:09:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.2","html_url":"https://github.com/expressjs/express/releases/tag/4.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.2/manifests"},{"name":"3.18.3","sha":"28c6952d1c40d2ed840967206c1a7fc8d21da71b","kind":"commit","published_at":"2014-11-09T23:35:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.3","html_url":"https://github.com/expressjs/express/releases/tag/3.18.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.3/manifests"},{"name":"5.0.0-alpha.1","sha":"4052c15c7f10b79fb7c54f3837ffe118f7a99811","kind":"commit","published_at":"2014-11-07T02:52:29.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/5.0.0-alpha.1","html_url":"https://github.com/expressjs/express/releases/tag/5.0.0-alpha.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/5.0.0-alpha.1/manifests"},{"name":"4.10.1","sha":"8bb013ec9567ae95a649c7537e1689944749d493","kind":"commit","published_at":"2014-10-29T05:15:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.1","html_url":"https://github.com/expressjs/express/releases/tag/4.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.1/manifests"},{"name":"3.18.2","sha":"a12ae729bdb1e59f4f5962f0429fd116fd1fba24","kind":"commit","published_at":"2014-10-29T05:10:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.2","html_url":"https://github.com/expressjs/express/releases/tag/3.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.2/manifests"},{"name":"4.10.0","sha":"d40dc651f3561a4978fdc9c40e7fc802261d99ce","kind":"commit","published_at":"2014-10-24T02:27:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.10.0","html_url":"https://github.com/expressjs/express/releases/tag/4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.10.0/manifests"},{"name":"3.18.1","sha":"88dfd36eaafa7a0349401a6142413dbb4030ab78","kind":"commit","published_at":"2014-10-23T05:26:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.1","html_url":"https://github.com/expressjs/express/releases/tag/3.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.1/manifests"},{"name":"3.18.0","sha":"366000184f6fa2ae39b96c4806c7ab625a01e71c","kind":"commit","published_at":"2014-10-18T04:57:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.18.0","html_url":"https://github.com/expressjs/express/releases/tag/3.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.18.0/manifests"},{"name":"4.9.8","sha":"f15bba7309f2e0a17f7b7a5552b9618f074078c8","kind":"commit","published_at":"2014-10-18T02:01:51.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.8","html_url":"https://github.com/expressjs/express/releases/tag/4.9.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.8/manifests"},{"name":"3.17.8","sha":"6d39d0f8a809eed1b75e0d5bd4d2dad3d2190f25","kind":"commit","published_at":"2014-10-16T04:29:56.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.8","html_url":"https://github.com/expressjs/express/releases/tag/3.17.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.8/manifests"},{"name":"4.9.7","sha":"b0e4e641f93e422e4704f79f2ba3d3dcd0c5d8e6","kind":"commit","published_at":"2014-10-10T20:40:46.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.7","html_url":"https://github.com/expressjs/express/releases/tag/4.9.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.7/manifests"},{"name":"4.9.6","sha":"efd2dfb8c82e42b43f3d7f03181381d390d9174d","kind":"commit","published_at":"2014-10-09T02:33:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.6","html_url":"https://github.com/expressjs/express/releases/tag/4.9.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.6/manifests"},{"name":"3.17.7","sha":"9f292d873ef3124ed1760ca3647780452b34daf0","kind":"commit","published_at":"2014-10-08T21:00:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.7","html_url":"https://github.com/expressjs/express/releases/tag/3.17.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.7/manifests"},{"name":"3.17.6","sha":"cc18da5cdfd6edbe1878b80f1c37cf0d6b86bcb6","kind":"commit","published_at":"2014-10-03T03:29:40.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.6","html_url":"https://github.com/expressjs/express/releases/tag/3.17.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.6/manifests"},{"name":"4.9.5","sha":"daadf6033b013319360850a6fc51911533a84512","kind":"commit","published_at":"2014-09-25T00:18:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.5","html_url":"https://github.com/expressjs/express/releases/tag/4.9.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.5/manifests"},{"name":"3.17.5","sha":"43e2cd79cba6acddb0d2c0de6dceb5874e21f5e5","kind":"commit","published_at":"2014-09-24T23:38:35.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.5","html_url":"https://github.com/expressjs/express/releases/tag/3.17.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.5/manifests"},{"name":"4.9.4","sha":"8e46af1b1dd543b9933b86613a16ddcb7dc286be","kind":"commit","published_at":"2014-09-20T06:07:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.4","html_url":"https://github.com/expressjs/express/releases/tag/4.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.4/manifests"},{"name":"3.17.4","sha":"b09afad7b19d87bbc5acae6220e79f4765fb69c3","kind":"commit","published_at":"2014-09-20T05:57:07.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.4","html_url":"https://github.com/expressjs/express/releases/tag/3.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.4/manifests"},{"name":"4.9.3","sha":"bc38d896ea6bb8049e08467c0ff7fcf40956e744","kind":"commit","published_at":"2014-09-18T17:45:35.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.3","html_url":"https://github.com/expressjs/express/releases/tag/4.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.3/manifests"},{"name":"3.17.3","sha":"63286e1192c695630a9c221c93b98d3b982fc5c7","kind":"commit","published_at":"2014-09-18T17:38:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.3","html_url":"https://github.com/expressjs/express/releases/tag/3.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.3/manifests"},{"name":"4.9.2","sha":"91891e3aee6f2a0b1c4db1e0b499338d05bda91b","kind":"commit","published_at":"2014-09-18T03:49:01.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.2","html_url":"https://github.com/expressjs/express/releases/tag/4.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.2/manifests"},{"name":"4.9.1","sha":"947fb8b27425851f3316ae9d39df5035085dde4a","kind":"commit","published_at":"2014-09-17T06:31:57.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.1","html_url":"https://github.com/expressjs/express/releases/tag/4.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.1/manifests"},{"name":"3.17.2","sha":"f29399c4e1f644a64e08a45251f113d361bdfbb3","kind":"commit","published_at":"2014-09-16T07:14:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.2","html_url":"https://github.com/expressjs/express/releases/tag/3.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.2/manifests"},{"name":"4.9.0","sha":"1716e3b067af5acaeeee4165a865e0b670300aee","kind":"commit","published_at":"2014-09-09T04:32:17.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.9.0","html_url":"https://github.com/expressjs/express/releases/tag/4.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.9.0/manifests"},{"name":"3.17.1","sha":"4b1b8e420f4f4ee95e835e2eebc41a66dba556f2","kind":"commit","published_at":"2014-09-09T03:45:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.1","html_url":"https://github.com/expressjs/express/releases/tag/3.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.1/manifests"},{"name":"3.17.0","sha":"fa1fcd9fec14234f3fde38b6f4929bb2043fedef","kind":"commit","published_at":"2014-09-09T03:07:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.17.0","html_url":"https://github.com/expressjs/express/releases/tag/3.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.17.0/manifests"},{"name":"4.8.8","sha":"621d074bd87dd7a7064c5607dbed05b97f80fcc0","kind":"commit","published_at":"2014-09-05T06:26:12.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.8","html_url":"https://github.com/expressjs/express/releases/tag/4.8.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.8/manifests"},{"name":"3.16.10","sha":"3d188fe13e1901222cd830dcdc9772a34b9bd745","kind":"commit","published_at":"2014-09-05T06:17:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.10","html_url":"https://github.com/expressjs/express/releases/tag/3.16.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.10/manifests"},{"name":"4.8.7","sha":"46f0bfc65f151a900e7c36a81b950c79b2c1a596","kind":"commit","published_at":"2014-08-30T05:37:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.7","html_url":"https://github.com/expressjs/express/releases/tag/4.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.7/manifests"},{"name":"3.16.9","sha":"4d032cda058596e1ae89924ff69e80c3849ef4ff","kind":"commit","published_at":"2014-08-30T05:22:06.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.9","html_url":"https://github.com/expressjs/express/releases/tag/3.16.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.9/manifests"},{"name":"4.8.6","sha":"b6ae091bdfa5d1717b65eba8dbba3d67ad999438","kind":"commit","published_at":"2014-08-28T01:51:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.6","html_url":"https://github.com/expressjs/express/releases/tag/4.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.6/manifests"},{"name":"3.16.8","sha":"0299bee8fae527c02c42dee8ced22a1f63f05093","kind":"commit","published_at":"2014-08-28T01:09:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.8","html_url":"https://github.com/expressjs/express/releases/tag/3.16.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.8/manifests"},{"name":"4.8.5","sha":"27f195374d7372f3270357873239f2c2962aafcc","kind":"commit","published_at":"2014-08-19T03:05:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.5","html_url":"https://github.com/expressjs/express/releases/tag/4.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.5/manifests"},{"name":"3.16.7","sha":"0b12cc0cacbd8948079a0ca78b87d540def950eb","kind":"commit","published_at":"2014-08-19T02:45:17.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.7","html_url":"https://github.com/expressjs/express/releases/tag/3.16.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.7/manifests"},{"name":"4.8.4","sha":"0cf02d4667264cea9682d49941f1242ac6f289df","kind":"commit","published_at":"2014-08-15T04:26:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.4","html_url":"https://github.com/expressjs/express/releases/tag/4.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.4/manifests"},{"name":"3.16.6","sha":"f13f4652da58c42e30c59e2b0b5b0d58b1d97bb7","kind":"commit","published_at":"2014-08-15T03:53:32.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.6","html_url":"https://github.com/expressjs/express/releases/tag/3.16.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.6/manifests"},{"name":"3.16.5","sha":"0dddd772c0096b62ab67295083fb1795c353f0ff","kind":"commit","published_at":"2014-08-12T02:30:09.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.5","html_url":"https://github.com/expressjs/express/releases/tag/3.16.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.5/manifests"},{"name":"4.8.3","sha":"1643ae442c724e1ea14383b62675cb13c49e3f49","kind":"commit","published_at":"2014-08-11T02:30:07.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.3","html_url":"https://github.com/expressjs/express/releases/tag/4.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.3/manifests"},{"name":"3.16.4","sha":"7119f2b16d610af6e4eb6d79292c52e2e8c506d9","kind":"commit","published_at":"2014-08-11T02:22:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.4","html_url":"https://github.com/expressjs/express/releases/tag/3.16.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.4/manifests"},{"name":"3.16.3","sha":"d13e6135844e1c949ac0f10f307130c4df153085","kind":"commit","published_at":"2014-08-08T02:32:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.3","html_url":"https://github.com/expressjs/express/releases/tag/3.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.3/manifests"},{"name":"4.8.2","sha":"22ca953e96e66e142e2e89ba1fa3386a876ce55f","kind":"commit","published_at":"2014-08-07T16:05:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.2","html_url":"https://github.com/expressjs/express/releases/tag/4.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.2/manifests"},{"name":"3.16.2","sha":"ddac571fdf36aef1381c53dd4766f5e9054b1aa3","kind":"commit","published_at":"2014-08-07T15:59:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.2","html_url":"https://github.com/expressjs/express/releases/tag/3.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.2/manifests"},{"name":"4.8.1","sha":"552b441f8ab3457c284a8d6dc5eeaedc51d52df4","kind":"commit","published_at":"2014-08-06T22:21:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.1","html_url":"https://github.com/expressjs/express/releases/tag/4.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.1/manifests"},{"name":"3.16.1","sha":"ea427c1bb4667be345d786c5120c435dbca3d13a","kind":"commit","published_at":"2014-08-06T22:07:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.1","html_url":"https://github.com/expressjs/express/releases/tag/3.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.1/manifests"},{"name":"4.8.0","sha":"4aea02310ad7738fb1b3bac08de5424d82bfe4c6","kind":"commit","published_at":"2014-08-06T06:50:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.8.0","html_url":"https://github.com/expressjs/express/releases/tag/4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.8.0/manifests"},{"name":"3.16.0","sha":"c652cf7eedc3f4b9eb6de6c1c8c31fcf33f33c85","kind":"commit","published_at":"2014-08-06T05:40:46.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.16.0","html_url":"https://github.com/expressjs/express/releases/tag/3.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.16.0/manifests"},{"name":"4.7.4","sha":"b886eb52cf955c2f29ad31b514607d4e38c1dbaf","kind":"commit","published_at":"2014-08-04T21:36:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.7.4","html_url":"https://github.com/expressjs/express/releases/tag/4.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.4/manifests"},{"name":"3.15.3","sha":"15590d75b26f1e4b95b565f8306c763ee860d3e2","kind":"commit","published_at":"2014-08-04T21:31:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.15.3","html_url":"https://github.com/expressjs/express/releases/tag/3.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.3/manifests"},{"name":"4.7.3","sha":"52775a52ad9e00fbd38056af6ed0cddb4286d3d2","kind":"commit","published_at":"2014-08-04T20:14:29.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.7.3","html_url":"https://github.com/expressjs/express/releases/tag/4.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.3/manifests"},{"name":"4.7.2","sha":"1854a5d35f28aad84fd47d7484b3d5afd171be88","kind":"commit","published_at":"2014-07-27T20:00:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.7.2","html_url":"https://github.com/expressjs/express/releases/tag/4.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.2/manifests"},{"name":"3.15.2","sha":"696e150f0ab7b11fd7a58832809f2f6393c74186","kind":"commit","published_at":"2014-07-27T19:53:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.15.2","html_url":"https://github.com/expressjs/express/releases/tag/3.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.2/manifests"},{"name":"4.7.1","sha":"8858f20d9399d6eeb01e70475c58bb1da9eb3ef4","kind":"commit","published_at":"2014-07-26T22:53:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.7.1","html_url":"https://github.com/expressjs/express/releases/tag/4.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.1/manifests"},{"name":"3.15.1","sha":"9f4968aaa3db6d9fe94be83f95d354be86812aee","kind":"commit","published_at":"2014-07-26T21:42:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.15.1","html_url":"https://github.com/expressjs/express/releases/tag/3.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.1/manifests"},{"name":"4.7.0","sha":"1a9a837c45a66ee0ea95362cbb077388a3df33dc","kind":"commit","published_at":"2014-07-26T00:26:11.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.7.0","html_url":"https://github.com/expressjs/express/releases/tag/4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.7.0/manifests"},{"name":"3.15.0","sha":"928952e7f0f3490619d3c1cd4f98c9de887ffc00","kind":"commit","published_at":"2014-07-23T04:53:19.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.15.0","html_url":"https://github.com/expressjs/express/releases/tag/3.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.15.0/manifests"},{"name":"4.6.1","sha":"112dbb2ab40a6ecdd7ed0de4503dfc56655a24a3","kind":"commit","published_at":"2014-07-13T02:11:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.6.1","html_url":"https://github.com/expressjs/express/releases/tag/4.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.6.1/manifests"},{"name":"4.6.0","sha":"8ba3f39b33042f59d50ef5b5fb87109d3f3a2a26","kind":"commit","published_at":"2014-07-12T03:31:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.6.0","html_url":"https://github.com/expressjs/express/releases/tag/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.6.0/manifests"},{"name":"3.14.0","sha":"916c53737d97b605385f9b5235a3a890f864c6bb","kind":"commit","published_at":"2014-07-11T17:11:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.14.0","html_url":"https://github.com/expressjs/express/releases/tag/3.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.14.0/manifests"},{"name":"4.5.1","sha":"bcdeee2df510cea17ad4524cf53b9900a46d5042","kind":"commit","published_at":"2014-07-06T23:48:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.5.1","html_url":"https://github.com/expressjs/express/releases/tag/4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.5.1/manifests"},{"name":"4.5.0","sha":"92c45199bdcbb1ffa753026f3862d7ad3dc7c514","kind":"commit","published_at":"2014-07-05T01:03:07.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.5.0","html_url":"https://github.com/expressjs/express/releases/tag/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.5.0/manifests"},{"name":"3.13.0","sha":"abe0ffa311bf39ca2bbfc8791856753b7cabe843","kind":"commit","published_at":"2014-07-04T04:40:01.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.13.0","html_url":"https://github.com/expressjs/express/releases/tag/3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.13.0/manifests"},{"name":"4.4.5","sha":"fd27f1f4e19710d683f78b0683d45c5d8c590eae","kind":"commit","published_at":"2014-06-27T00:26:43.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.5","html_url":"https://github.com/expressjs/express/releases/tag/4.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.5/manifests"},{"name":"3.12.1","sha":"9bb47fba300a4c096e049e51b636b3c282eb11f7","kind":"commit","published_at":"2014-06-26T22:35:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.12.1","html_url":"https://github.com/expressjs/express/releases/tag/3.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.12.1/manifests"},{"name":"3.12.0","sha":"75422c16bfcd0d9e1ea23f92b77099430cdea65e","kind":"commit","published_at":"2014-06-22T01:57:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.12.0","html_url":"https://github.com/expressjs/express/releases/tag/3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.12.0/manifests"},{"name":"4.4.4","sha":"f498b660da4cc954a5921d50407cf7a790e8a378","kind":"commit","published_at":"2014-06-20T20:56:51.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.4","html_url":"https://github.com/expressjs/express/releases/tag/4.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.4/manifests"},{"name":"3.11.0","sha":"2a105df9f2bae5d2b0e5af64fc0367a159fe42f2","kind":"commit","published_at":"2014-06-20T03:36:00.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.11.0","html_url":"https://github.com/expressjs/express/releases/tag/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.11.0/manifests"},{"name":"4.4.3","sha":"ac573cf830fc73284293055df7034c4b11aa5459","kind":"commit","published_at":"2014-06-12T04:41:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.3","html_url":"https://github.com/expressjs/express/releases/tag/4.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.3/manifests"},{"name":"3.10.5","sha":"73c5533e665743d305e266eee134c48d88d2dcfd","kind":"commit","published_at":"2014-06-12T04:28:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.5","html_url":"https://github.com/expressjs/express/releases/tag/3.10.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.5/manifests"},{"name":"4.4.2","sha":"7daae1912b3f86320559a8afcea26d8184f036ce","kind":"commit","published_at":"2014-06-10T00:40:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.2","html_url":"https://github.com/expressjs/express/releases/tag/4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.2/manifests"},{"name":"3.10.4","sha":"f881784e9b762996be802c249ad8dc72889e9650","kind":"commit","published_at":"2014-06-09T22:53:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.4","html_url":"https://github.com/expressjs/express/releases/tag/3.10.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.4/manifests"},{"name":"3.10.3","sha":"2fd31f6ea64c394251a9e2313804e84bc7ba5779","kind":"commit","published_at":"2014-06-06T03:38:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.3","html_url":"https://github.com/expressjs/express/releases/tag/3.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.3/manifests"},{"name":"3.10.2","sha":"c919b4a5730e9d08fde1c19e1f0082ef27807d2f","kind":"commit","published_at":"2014-06-04T01:35:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.2","html_url":"https://github.com/expressjs/express/releases/tag/3.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.2/manifests"},{"name":"3.10.1","sha":"3b34a537eee8569b7dc5f27bb701da6c54282b4f","kind":"commit","published_at":"2014-06-03T20:45:09.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.1","html_url":"https://github.com/expressjs/express/releases/tag/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.1/manifests"},{"name":"3.10.0","sha":"298ac11018535739789696940f392eca07661d5d","kind":"commit","published_at":"2014-06-03T04:40:27.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.10.0","html_url":"https://github.com/expressjs/express/releases/tag/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.10.0/manifests"},{"name":"4.4.1","sha":"f9ec70edd0f2804e53b1c4bf72c79294845f370f","kind":"commit","published_at":"2014-06-03T01:13:50.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.1","html_url":"https://github.com/expressjs/express/releases/tag/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.1/manifests"},{"name":"4.4.0","sha":"95fa49147b08fd102685520eaaa32e1dd28a06b6","kind":"commit","published_at":"2014-05-31T04:00:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.4.0","html_url":"https://github.com/expressjs/express/releases/tag/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.4.0/manifests"},{"name":"3.9.0","sha":"0dc5836d5e6f41760d736d98d0cfa5b57bac84a7","kind":"commit","published_at":"2014-05-31T01:35:12.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.9.0","html_url":"https://github.com/expressjs/express/releases/tag/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.9.0/manifests"},{"name":"4.3.2","sha":"311e83e591a149a7549bab543dfd126d3223f7fd","kind":"commit","published_at":"2014-05-29T04:17:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.3.2","html_url":"https://github.com/expressjs/express/releases/tag/4.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.2/manifests"},{"name":"3.8.1","sha":"f7e73e2da07cb625859824794346c1b74a98c3b5","kind":"commit","published_at":"2014-05-28T03:43:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.8.1","html_url":"https://github.com/expressjs/express/releases/tag/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.8.1/manifests"},{"name":"4.3.1","sha":"87e02c30e74fccce0c2ca77c0e0de8a1d8c62368","kind":"commit","published_at":"2014-05-23T23:11:28.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.3.1","html_url":"https://github.com/expressjs/express/releases/tag/4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.1/manifests"},{"name":"4.3.0","sha":"4e12a728736735400c72035cd800b7f1a57ed2f5","kind":"commit","published_at":"2014-05-21T06:13:03.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.3.0","html_url":"https://github.com/expressjs/express/releases/tag/4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.3.0/manifests"},{"name":"3.8.0","sha":"f6bbeafd26daf12891d912ef604bad5b206d904f","kind":"commit","published_at":"2014-05-21T05:52:14.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.8.0","html_url":"https://github.com/expressjs/express/releases/tag/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.8.0/manifests"},{"name":"3.7.0","sha":"b91cd66fc59790cb838b9b3dde32de8c99ded2c2","kind":"commit","published_at":"2014-05-18T14:40:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.7.0","html_url":"https://github.com/expressjs/express/releases/tag/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.7.0/manifests"},{"name":"4.2.0","sha":"cf709f302120c0de62978036916778c29fed7d98","kind":"commit","published_at":"2014-05-12T02:00:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.2.0","html_url":"https://github.com/expressjs/express/releases/tag/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.2.0/manifests"},{"name":"3.6.0","sha":"f7be983a7718d4b6a74bd5d6ba7a6073ae3bfa6a","kind":"commit","published_at":"2014-05-09T21:03:23.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.6.0","html_url":"https://github.com/expressjs/express/releases/tag/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.6.0/manifests"},{"name":"4.1.2","sha":"92d37671c52d89b37d1546677ad4f48b9bdaab42","kind":"commit","published_at":"2014-05-08T18:42:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.1.2","html_url":"https://github.com/expressjs/express/releases/tag/4.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.2/manifests"},{"name":"3.5.3","sha":"dc31ea34b858f94b79690573db3f2fd632074a94","kind":"commit","published_at":"2014-05-08T17:51:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.5.3","html_url":"https://github.com/expressjs/express/releases/tag/3.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.3/manifests"},{"name":"4.1.1","sha":"61f2929a35b7588ee707c02ab64512c3fac5f61f","kind":"commit","published_at":"2014-04-27T23:49:05.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.1.1","html_url":"https://github.com/expressjs/express/releases/tag/4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.1/manifests"},{"name":"4.1.0","sha":"dbea8312bbd6b59e5d78e145696a876c7397a332","kind":"commit","published_at":"2014-04-24T22:13:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.1.0","html_url":"https://github.com/expressjs/express/releases/tag/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.1.0/manifests"},{"name":"3.5.2","sha":"d5815922caca984435cbd4d75aeaf12afe73b8cb","kind":"commit","published_at":"2014-04-24T20:36:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.5.2","html_url":"https://github.com/expressjs/express/releases/tag/3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.2/manifests"},{"name":"4.0.0","sha":"147c2507c3bdcd22c7c0176e57c9d585d0aa2642","kind":"commit","published_at":"2014-04-09T20:38:40.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.0.0","html_url":"https://github.com/expressjs/express/releases/tag/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0/manifests"},{"name":"3.5.1","sha":"df50669092d3de0ec4bd041aabb3b2a4d2954e01","kind":"commit","published_at":"2014-03-25T20:56:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.5.1","html_url":"https://github.com/expressjs/express/releases/tag/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.1/manifests"},{"name":"4.0.0-rc4","sha":"e36746363aeee402c0d85b6ad8b4035922174c95","kind":"commit","published_at":"2014-03-25T02:53:35.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.0.0-rc4","html_url":"https://github.com/expressjs/express/releases/tag/4.0.0-rc4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc4/manifests"},{"name":"4.0.0-rc3","sha":"3bbcbfdcf9f050255a0cc80499c2fef51fe193fa","kind":"commit","published_at":"2014-03-12T01:39:01.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.0.0-rc3","html_url":"https://github.com/expressjs/express/releases/tag/4.0.0-rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc3/manifests"},{"name":"3.5.0","sha":"87912103c96d2032bbb93d0b3667a41714955dc5","kind":"commit","published_at":"2014-03-06T22:57:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.5.0","html_url":"https://github.com/expressjs/express/releases/tag/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.5.0/manifests"},{"name":"4.0.0-rc2","sha":"eaf63d94f0bcfe1ebac804e93a98f0584dc89ed0","kind":"commit","published_at":"2014-03-05T06:32:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.0.0-rc2","html_url":"https://github.com/expressjs/express/releases/tag/4.0.0-rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc2/manifests"},{"name":"4.0.0-rc1","sha":"9df10674f051ab8bf9541b0e8fb0e4a6efb6a9d1","kind":"commit","published_at":"2014-03-02T16:17:29.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/4.0.0-rc1","html_url":"https://github.com/expressjs/express/releases/tag/4.0.0-rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/4.0.0-rc1/manifests"},{"name":"3.4.8","sha":"ff23423d34d9d7f829d160aeb91b5c939ab4a4e1","kind":"commit","published_at":"2014-01-14T04:50:51.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.8","html_url":"https://github.com/expressjs/express/releases/tag/3.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.8/manifests"},{"name":"3.4.7","sha":"34c83d7d29d3acb718cac56aa4361c3a320fd80d","kind":"commit","published_at":"2013-12-11T07:57:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.7","html_url":"https://github.com/expressjs/express/releases/tag/3.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.7/manifests"},{"name":"3.4.6","sha":"7724fc6af7b7ff636f7ae284a05d3d8500fc84d0","kind":"commit","published_at":"2013-12-01T20:21:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.6","html_url":"https://github.com/expressjs/express/releases/tag/3.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.6/manifests"},{"name":"3.4.5","sha":"863160ae499b056ac7ade9737ca049fa5f5cb357","kind":"commit","published_at":"2013-11-27T23:54:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.5","html_url":"https://github.com/expressjs/express/releases/tag/3.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.5/manifests"},{"name":"3.4.4","sha":"dae54b456f7fc768a974b8c3885a3de7ae05371c","kind":"commit","published_at":"2013-10-29T17:33:32.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.4","html_url":"https://github.com/expressjs/express/releases/tag/3.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.4/manifests"},{"name":"3.4.3","sha":"f0bfb3b2b2609128c57f299bd4ccb617272ce2d2","kind":"commit","published_at":"2013-10-23T18:19:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.3","html_url":"https://github.com/expressjs/express/releases/tag/3.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.3/manifests"},{"name":"3.4.2","sha":"4b4db0f7fba1f63f53d4f9c5dd00db45aec86de4","kind":"commit","published_at":"2013-10-19T02:03:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.2","html_url":"https://github.com/expressjs/express/releases/tag/3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.2/manifests"},{"name":"3.4.1","sha":"36e42db05bd7b95b86c65debc7dfb7d46701b0a7","kind":"commit","published_at":"2013-10-16T01:33:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.1","html_url":"https://github.com/expressjs/express/releases/tag/3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.1/manifests"},{"name":"3.4.0","sha":"b7f08fb1599b3ecf34afa9315ce0a34419bdbf56","kind":"tag","published_at":"2013-09-07T19:25:00.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.4.0","html_url":"https://github.com/expressjs/express/releases/tag/3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.4.0/manifests"},{"name":"3.3.8","sha":"f1c46f51e5a99413addf4b6eaebf2714fe841669","kind":"tag","published_at":"2013-09-02T15:01:07.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.8","html_url":"https://github.com/expressjs/express/releases/tag/3.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.8/manifests"},{"name":"3.3.7","sha":"c1d16e0016fec5180fefeeab5653d7e355be3c6d","kind":"tag","published_at":"2013-08-28T16:39:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.7","html_url":"https://github.com/expressjs/express/releases/tag/3.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.7/manifests"},{"name":"3.3.6","sha":"197a2e3b54260c8003371f29291fca1f545b6c02","kind":"tag","published_at":"2013-08-27T20:49:09.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.6","html_url":"https://github.com/expressjs/express/releases/tag/3.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.6/manifests"},{"name":"3.3.5","sha":"e850cb3ea3a03318b2446c52fa2844831e9565cb","kind":"tag","published_at":"2013-08-10T21:50:51.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.5","html_url":"https://github.com/expressjs/express/releases/tag/3.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.5/manifests"},{"name":"3.3.4","sha":"8fe1e2a5b45263bcc3c833917ab7bb21ba435215","kind":"tag","published_at":"2013-07-08T21:42:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.4","html_url":"https://github.com/expressjs/express/releases/tag/3.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.4/manifests"},{"name":"3.3.3","sha":"26802a689cbd20c9b2c5b7760205a7f57a381e77","kind":"commit","published_at":"2013-07-04T20:39:36.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.3","html_url":"https://github.com/expressjs/express/releases/tag/3.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.3/manifests"},{"name":"3.3.2","sha":"52440955e64b9e68f97c06b97ea698ccfae8f082","kind":"tag","published_at":"2013-07-03T18:25:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.2","html_url":"https://github.com/expressjs/express/releases/tag/3.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.2/manifests"},{"name":"3.3.1","sha":"320d7807a95fcf16d733887bdbe14adac30eab75","kind":"tag","published_at":"2013-06-27T15:32:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.1","html_url":"https://github.com/expressjs/express/releases/tag/3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.1/manifests"},{"name":"3.3.0","sha":"832c3b374417a093224a8bcf69a0b81b9ab396d4","kind":"tag","published_at":"2013-06-26T17:07:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.3.0","html_url":"https://github.com/expressjs/express/releases/tag/3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.3.0/manifests"},{"name":"3.2.6","sha":"e0afda444f776ddec94ebdae8e1ed7501e26fb22","kind":"tag","published_at":"2013-06-03T00:15:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.6","html_url":"https://github.com/expressjs/express/releases/tag/3.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.6/manifests"},{"name":"3.2.5","sha":"2fe46b39059a55b7edc4175def83c7d9dfc083f1","kind":"tag","published_at":"2013-05-22T04:01:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.5","html_url":"https://github.com/expressjs/express/releases/tag/3.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.5/manifests"},{"name":"3.2.4","sha":"f9766252817352bddf4579047e88629db16887b4","kind":"tag","published_at":"2013-05-09T16:17:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.4","html_url":"https://github.com/expressjs/express/releases/tag/3.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.4/manifests"},{"name":"3.2.3","sha":"0b09c8981f187f35ca73d4bfe16760faf7da29bf","kind":"tag","published_at":"2013-05-07T14:55:06.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.3","html_url":"https://github.com/expressjs/express/releases/tag/3.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.3/manifests"},{"name":"3.2.2","sha":"f862ad29f55b925ec94c4013ca1f6973e07bf214","kind":"tag","published_at":"2013-05-03T19:54:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.2","html_url":"https://github.com/expressjs/express/releases/tag/3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.2/manifests"},{"name":"3.2.1","sha":"9f06d9b03fa27fb159a6a7656ad711df9d02d195","kind":"tag","published_at":"2013-04-30T02:17:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.1","html_url":"https://github.com/expressjs/express/releases/tag/3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.1/manifests"},{"name":"3.2.0","sha":"0d40c65b7fdb8287788732a899cdc26dda8d97dd","kind":"tag","published_at":"2013-04-15T19:34:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.2.0","html_url":"https://github.com/expressjs/express/releases/tag/3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.2.0/manifests"},{"name":"3.1.2","sha":"776ee26bc3644c39f1db7de779e1744f8a24068f","kind":"tag","published_at":"2013-04-12T19:14:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.1.2","html_url":"https://github.com/expressjs/express/releases/tag/3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.2/manifests"},{"name":"3.1.1","sha":"476fba3e8bded7550205d62b0b7db66823bd2151","kind":"tag","published_at":"2013-04-01T18:25:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.1.1","html_url":"https://github.com/expressjs/express/releases/tag/3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.1/manifests"},{"name":"3.1.0","sha":"d853c833f0d693ef0c0352ac3a02016701b6fe07","kind":"tag","published_at":"2013-01-26T04:28:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.1.0","html_url":"https://github.com/expressjs/express/releases/tag/3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.1.0/manifests"},{"name":"3.0.6","sha":"3ab30210a26368812c2f08af7f737f3c9b740985","kind":"tag","published_at":"2013-01-05T02:52:04.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.6","html_url":"https://github.com/expressjs/express/releases/tag/3.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.6/manifests"},{"name":"3.0.5","sha":"33eaa8329cbcec28acc0a806e52561a524ef91d9","kind":"tag","published_at":"2012-12-19T21:46:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.5","html_url":"https://github.com/expressjs/express/releases/tag/3.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.5/manifests"},{"name":"3.0.4","sha":"0117464ac24e423b622b155db4e132bee69d6c78","kind":"tag","published_at":"2012-12-06T01:10:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.4","html_url":"https://github.com/expressjs/express/releases/tag/3.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.4/manifests"},{"name":"3.0.3","sha":"b709009bc911888935fba15efc3a5002df7b4027","kind":"tag","published_at":"2012-11-13T17:14:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.3","html_url":"https://github.com/expressjs/express/releases/tag/3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.3/manifests"},{"name":"3.0.2","sha":"72b9e483312661e1f8f8185aad47511da69f44a6","kind":"tag","published_at":"2012-11-08T17:15:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.2","html_url":"https://github.com/expressjs/express/releases/tag/3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.2/manifests"},{"name":"3.0.1","sha":"1f044547eeef2d0e9ab3413f5d86baaa30918ccc","kind":"tag","published_at":"2012-11-02T00:27:53.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.1","html_url":"https://github.com/expressjs/express/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.1/manifests"},{"name":"3.0.0rc3","sha":"b96401ac83c659be59395d112d532ce2334a02c7","kind":"tag","published_at":"2012-08-14T03:23:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0rc3","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc3/manifests"},{"name":"3.0.0rc2","sha":"20e8f08cb2f072eb3f04b729d0b0021d3bad7901","kind":"tag","published_at":"2012-08-03T20:32:53.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0rc2","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc2/manifests"},{"name":"3.0.0rc1","sha":"2d91eac81116cecca2331b5d1f84230d339e1983","kind":"tag","published_at":"2012-07-24T20:32:49.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0rc1","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0rc1/manifests"},{"name":"3.0.0beta7","sha":"1ad2ecefe8c75bc84043a0a983350dba1ea13379","kind":"tag","published_at":"2012-07-16T16:25:03.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta7","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta7/manifests"},{"name":"3.0.0beta6","sha":"a512d9b47d47ce80f6d7037f6e75b38cf1868e49","kind":"tag","published_at":"2012-07-13T16:19:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta6","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta6/manifests"},{"name":"3.0.0beta5","sha":"ee89ff502654fc057a4b7fcbd72e55005048a172","kind":"tag","published_at":"2012-07-03T17:20:19.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta5","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta5/manifests"},{"name":"2.5.11","sha":"0ac1ba527e75e700698bcb4dad5905cea80e29f5","kind":"tag","published_at":"2012-06-29T21:27:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.11","html_url":"https://github.com/expressjs/express/releases/tag/2.5.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.11/manifests"},{"name":"3.0.0beta4","sha":"1248f0338b34602957b052d4d82820dda85c5549","kind":"tag","published_at":"2012-06-25T19:08:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta4","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta4/manifests"},{"name":"2.5.10","sha":"ee0917fe4aa1003d6cb09ef206f9210817a93e08","kind":"tag","published_at":"2012-06-15T22:51:11.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.10","html_url":"https://github.com/expressjs/express/releases/tag/2.5.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.10/manifests"},{"name":"3.0.0beta3","sha":"f90401b8c05e3f1fcdd73dad118c7569477e47e9","kind":"tag","published_at":"2012-06-15T18:40:49.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta3","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta3/manifests"},{"name":"3.0.0beta2","sha":"2787bd5bf029b6cabc82cf0482ee176cf8782a86","kind":"tag","published_at":"2012-06-06T21:46:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta2","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta2/manifests"},{"name":"3.0.0beta1","sha":"3c6ad5350b3d8bf87d7fd771a5bdad8f68ae5161","kind":"tag","published_at":"2012-06-01T19:27:19.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0beta1","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0beta1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0beta1/manifests"},{"name":"3.0.0alpha5","sha":"82a98170617ddac1079a2581f5e763b663d9a990","kind":"tag","published_at":"2012-05-30T23:48:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0alpha5","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0alpha5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha5/manifests"},{"name":"3.0.0alpha4","sha":"125dd7a5942975078d81a3110eec2b5047abde77","kind":"tag","published_at":"2012-05-09T22:18:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0alpha4","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0alpha4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha4/manifests"},{"name":"3.0.0alpha3","sha":"fc179c8fc3ad4f100cb6b23d6c6254803e9a12f6","kind":"tag","published_at":"2012-05-05T00:19:27.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0alpha3","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0alpha3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha3/manifests"},{"name":"3.0.0alpha2","sha":"c2054077f49670d484e41d9b7bc60d041411f819","kind":"commit","published_at":"2012-04-26T10:10:07.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0alpha2","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0alpha2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha2/manifests"},{"name":"3.0.0alpha1","sha":"d1d3f310e9553fefbaa0e00baac4256af8c3fe27","kind":"commit","published_at":"2012-04-15T18:21:40.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/3.0.0alpha1","html_url":"https://github.com/expressjs/express/releases/tag/3.0.0alpha1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/3.0.0alpha1/manifests"},{"name":"2.5.9","sha":"e3e7d0def6b26333965b5a55b43d9f34d25b2bb2","kind":"commit","published_at":"2012-04-03T02:21:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.9","html_url":"https://github.com/expressjs/express/releases/tag/2.5.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.9/manifests"},{"name":"2.5.4","sha":"2ac612f14d0c06f3cc45abed9e0d42a434e23f8c","kind":"commit","published_at":"2012-01-02T16:33:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.4","html_url":"https://github.com/expressjs/express/releases/tag/2.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.4/manifests"},{"name":"2.5.3","sha":"92c1c953dc6cfad962d685fd3d75930c920d4974","kind":"commit","published_at":"2011-12-30T23:31:10.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.3","html_url":"https://github.com/expressjs/express/releases/tag/2.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.3/manifests"},{"name":"2.5.2","sha":"380a6c5363727a54b9f64525d1ff20c9af923194","kind":"commit","published_at":"2011-12-10T19:07:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.2","html_url":"https://github.com/expressjs/express/releases/tag/2.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.2/manifests"},{"name":"2.5.1","sha":"a7520ad00c037f6af6e83a41153e8d41f68e85c8","kind":"commit","published_at":"2011-11-17T19:36:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.1","html_url":"https://github.com/expressjs/express/releases/tag/2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.1/manifests"},{"name":"2.5.0","sha":"95f6cda9c411d5b5953908941cfa5696b8960ed3","kind":"commit","published_at":"2011-10-24T23:00:46.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.5.0","html_url":"https://github.com/expressjs/express/releases/tag/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.5.0/manifests"},{"name":"2.4.7","sha":"5c04f85f93df5ca1dea84683509d4954a4b4204c","kind":"commit","published_at":"2011-10-05T22:41:50.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.7","html_url":"https://github.com/expressjs/express/releases/tag/2.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.7/manifests"},{"name":"2.4.5","sha":"24a4a80ccda4008b0f6af915c33ae6ccf30bc5a2","kind":"commit","published_at":"2011-08-19T17:12:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.5","html_url":"https://github.com/expressjs/express/releases/tag/2.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.5/manifests"},{"name":"2.4.4","sha":"75361fb177c51d4c9cd12c6c30c6bf33192e9d27","kind":"commit","published_at":"2011-08-05T11:29:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.4","html_url":"https://github.com/expressjs/express/releases/tag/2.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.4/manifests"},{"name":"2.4.3","sha":"c72abc529335a4358f710d9ada3d6c6c2e37b7fa","kind":"commit","published_at":"2011-07-14T19:58:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.3","html_url":"https://github.com/expressjs/express/releases/tag/2.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.3/manifests"},{"name":"2.4.2","sha":"5ae994ee8f017f53f23565cfc32eb6dc04e25815","kind":"commit","published_at":"2011-07-07T03:15:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.2","html_url":"https://github.com/expressjs/express/releases/tag/2.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.2/manifests"},{"name":"2.4.1","sha":"4dfc1a69c3d08a1218287582bde9d8ce5bf77205","kind":"commit","published_at":"2011-07-06T16:57:06.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.1","html_url":"https://github.com/expressjs/express/releases/tag/2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.1/manifests"},{"name":"2.4.0","sha":"3faa790b531acc768365fae3118f0a931e0b9404","kind":"commit","published_at":"2011-06-28T16:41:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.4.0","html_url":"https://github.com/expressjs/express/releases/tag/2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.4.0/manifests"},{"name":"2.3.12","sha":"ce2bcaef6889f06563c5b186e9f727f8b1b1b9d0","kind":"commit","published_at":"2011-06-22T20:56:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.12","html_url":"https://github.com/expressjs/express/releases/tag/2.3.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.12/manifests"},{"name":"2.3.11","sha":"e2cdd760d8df52d7ac79f4755f8ac88bce28b04d","kind":"commit","published_at":"2011-06-04T17:50:10.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.11","html_url":"https://github.com/expressjs/express/releases/tag/2.3.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.11/manifests"},{"name":"2.3.10","sha":"1bb798d96312a223b6969eb86242a657e263717a","kind":"commit","published_at":"2011-05-27T16:20:03.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.10","html_url":"https://github.com/expressjs/express/releases/tag/2.3.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.10/manifests"},{"name":"2.3.9","sha":"d9cee90efce749c3ab78add8b3a7d0177b3767f6","kind":"commit","published_at":"2011-05-25T17:18:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.9","html_url":"https://github.com/expressjs/express/releases/tag/2.3.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.9/manifests"},{"name":"2.3.8","sha":"d7c6c9a9f93b3edae85d76551218f5d8f544a99e","kind":"commit","published_at":"2011-05-25T04:53:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.8","html_url":"https://github.com/expressjs/express/releases/tag/2.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.8/manifests"},{"name":"2.3.7","sha":"44eae738430ccd9d041903166d390981bad49b3d","kind":"commit","published_at":"2011-05-23T22:54:17.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.7","html_url":"https://github.com/expressjs/express/releases/tag/2.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.7/manifests"},{"name":"2.3.6","sha":"45f168e87360072ee32624adc0e83724dc0e6fce","kind":"commit","published_at":"2011-05-20T16:42:01.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.6","html_url":"https://github.com/expressjs/express/releases/tag/2.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.6/manifests"},{"name":"2.3.5","sha":"131f65877929ab026a01b9c68cf6c604a4a50ffe","kind":"commit","published_at":"2011-05-20T14:32:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.5","html_url":"https://github.com/expressjs/express/releases/tag/2.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.5/manifests"},{"name":"2.3.4","sha":"d9aa7c3bc933a740bf964d7bd82c07eb690fdc59","kind":"commit","published_at":"2011-05-08T17:53:57.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.4","html_url":"https://github.com/expressjs/express/releases/tag/2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.4/manifests"},{"name":"2.3.3","sha":"8afb905a4399aba87e8453ebc1de593299c0d097","kind":"commit","published_at":"2011-05-03T18:31:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.3","html_url":"https://github.com/expressjs/express/releases/tag/2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.3/manifests"},{"name":"2.3.2","sha":"cc185a8c0ec18e9aa531e9d9395d5e349b07485e","kind":"commit","published_at":"2011-04-27T16:12:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.2","html_url":"https://github.com/expressjs/express/releases/tag/2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.2/manifests"},{"name":"2.3.1","sha":"2572a78648c60b7431256f9664bb38334c313ba6","kind":"commit","published_at":"2011-04-26T22:26:04.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.1","html_url":"https://github.com/expressjs/express/releases/tag/2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.1/manifests"},{"name":"2.3.0","sha":"658e064220d9e18faa15b15e7ac3a0254386358b","kind":"commit","published_at":"2011-04-25T16:49:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.3.0","html_url":"https://github.com/expressjs/express/releases/tag/2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.3.0/manifests"},{"name":"2.2.2","sha":"957cf45fa14d5fe5cdaab87ea7e5bca8395725cd","kind":"commit","published_at":"2011-04-12T09:44:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.2.2","html_url":"https://github.com/expressjs/express/releases/tag/2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.2/manifests"},{"name":"2.2.1","sha":"4e1aefa5b5c7a1c4dfa56fbf33be3649b254c2bf","kind":"commit","published_at":"2011-04-04T19:23:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.2.1","html_url":"https://github.com/expressjs/express/releases/tag/2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.1/manifests"},{"name":"2.2.0","sha":"45faee3e5bf4623ece091d6235f45fd2a44f411b","kind":"commit","published_at":"2011-03-30T18:40:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.2.0","html_url":"https://github.com/expressjs/express/releases/tag/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.2.0/manifests"},{"name":"2.1.1","sha":"798d255ba63e9e35cbdeff95a008a982d10f07d3","kind":"commit","published_at":"2011-03-29T17:40:26.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.1.1","html_url":"https://github.com/expressjs/express/releases/tag/2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.1.1/manifests"},{"name":"2.1.0","sha":"14e6a667f5c8f885ca2726e7245815cc583e0cb2","kind":"commit","published_at":"2011-03-24T20:47:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.1.0","html_url":"https://github.com/expressjs/express/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.1.0/manifests"},{"name":"1.0.9","sha":"bef6f208d16b96638cbfafff5ef516e278608e81","kind":"commit","published_at":"2011-03-23T18:02:34.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.9","html_url":"https://github.com/expressjs/express/releases/tag/1.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.9/manifests"},{"name":"2.0.0","sha":"bf596dc0239aad85198ebfe70921fd79a1cdedc9","kind":"commit","published_at":"2011-03-18T01:06:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0/manifests"},{"name":"2.0.0rc3","sha":"1555b92fb846b8a9889352a6ee3aba977df5bba8","kind":"commit","published_at":"2011-03-17T20:01:59.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0rc3","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc3/manifests"},{"name":"2.0.0rc2","sha":"4c1374840a8203e418f3e21fb7fb2d7f02a06d3d","kind":"commit","published_at":"2011-03-17T18:01:20.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0rc2","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc2/manifests"},{"name":"2.0.0rc","sha":"80f4d08e8b29ea9502d810864cd1393568cba37d","kind":"commit","published_at":"2011-03-14T22:01:37.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0rc","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0rc","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0rc/manifests"},{"name":"2.0.0beta3","sha":"1536d73d1bf517e5ab72b5b12addecbfb088e787","kind":"commit","published_at":"2011-03-09T23:45:55.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0beta3","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0beta3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0beta3/manifests"},{"name":"2.0.0beta2","sha":"d4f4b6682d03b71e5922f728474c4242f4767aa6","kind":"commit","published_at":"2011-03-07T17:40:39.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/2.0.0beta2","html_url":"https://github.com/expressjs/express/releases/tag/2.0.0beta2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/2.0.0beta2/manifests"},{"name":"1.0.8","sha":"ff712f311d79e23ae0946f60221327a2745a4764","kind":"commit","published_at":"2011-03-02T02:57:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.8","html_url":"https://github.com/expressjs/express/releases/tag/1.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.8/manifests"},{"name":"1.0.7","sha":"8c3ad12386102b52636d7dc556960b9fdb8e816e","kind":"commit","published_at":"2011-02-07T22:26:45.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.7","html_url":"https://github.com/expressjs/express/releases/tag/1.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.7/manifests"},{"name":"1.0.6","sha":"117c5f0794caffc8b5fd9783ea4093abc3058c59","kind":"commit","published_at":"2011-02-07T21:45:25.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.6","html_url":"https://github.com/expressjs/express/releases/tag/1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.6/manifests"},{"name":"1.0.5","sha":"68a58e2fdfaa2d1aefb51230a86ebca9374a186d","kind":"commit","published_at":"2011-02-05T19:16:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.5","html_url":"https://github.com/expressjs/express/releases/tag/1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.5/manifests"},{"name":"1.0.4","sha":"82e15cf321fccf3215068814d1ea1aeb3581ddb3","kind":"commit","published_at":"2011-02-05T19:13:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.4","html_url":"https://github.com/expressjs/express/releases/tag/1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.4/manifests"},{"name":"1.0.3","sha":"cb1f536eb5f640290d16e98bae8d762eb9571522","kind":"commit","published_at":"2011-01-13T22:09:00.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.3","html_url":"https://github.com/expressjs/express/releases/tag/1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.3/manifests"},{"name":"1.0.2","sha":"52353da08b7540f4cec586f1a907b408f69620d9","kind":"commit","published_at":"2011-01-11T02:09:16.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.2","html_url":"https://github.com/expressjs/express/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.2/manifests"},{"name":"1.0.1","sha":"cdc46307d794376cb9723eb1a992f7d05d15455d","kind":"commit","published_at":"2010-12-29T19:38:02.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.1","html_url":"https://github.com/expressjs/express/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"a766cc791b2e10136941b75d5e758ce7187e221b","kind":"commit","published_at":"2010-11-17T01:54:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0/manifests"},{"name":"1.0.0rc4","sha":"003599cbda7e1d40f0d16cede2741cf10c1c2bfd","kind":"commit","published_at":"2010-10-14T10:50:10.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0rc4","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0rc4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc4/manifests"},{"name":"1.0.0rc3","sha":"b6c839d693b8079b9916c40ccd01bf949f9abef5","kind":"commit","published_at":"2010-09-20T16:50:38.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0rc3","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc3/manifests"},{"name":"1.0.0rc2","sha":"31502536617ef29f70a7f6184c2f5c51fc49e0c1","kind":"commit","published_at":"2010-08-17T20:09:17.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0rc2","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc2/manifests"},{"name":"1.0.0rc","sha":"aaa5deb0c024073b991de89c0963abaa14baf6ec","kind":"commit","published_at":"2010-07-30T17:16:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0rc","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0rc","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0rc/manifests"},{"name":"1.0.0beta2","sha":"a947064b7dd9364f900b40114551739d14f7e5c7","kind":"commit","published_at":"2010-07-24T00:06:47.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0beta2","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0beta2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0beta2/manifests"},{"name":"1.0.0beta","sha":"83f1ccb8ad87a9e8009d1083eaf1c5a21840cca4","kind":"commit","published_at":"2010-07-15T23:45:11.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/1.0.0beta","html_url":"https://github.com/expressjs/express/releases/tag/1.0.0beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/1.0.0beta/manifests"},{"name":"0.14.1","sha":"53589b4f37de415b10e368301d8279e513021d88","kind":"commit","published_at":"2010-07-05T21:24:46.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.14.1","html_url":"https://github.com/expressjs/express/releases/tag/0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.14.1/manifests"},{"name":"0.14.0","sha":"80cec7d12f8d1db81e57c9a6e3f235bf3c7cf9ec","kind":"commit","published_at":"2010-06-15T21:22:51.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.14.0","html_url":"https://github.com/expressjs/express/releases/tag/0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.14.0/manifests"},{"name":"0.13.0","sha":"db2eb658ca8a257869621ab930ab3bf1dce830d9","kind":"commit","published_at":"2010-06-01T15:49:04.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.13.0","html_url":"https://github.com/expressjs/express/releases/tag/0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.13.0/manifests"},{"name":"0.12.0","sha":"ca782dbc589bb69842f5b214d98d1b4cddd04ce9","kind":"commit","published_at":"2010-05-22T15:24:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.12.0","html_url":"https://github.com/expressjs/express/releases/tag/0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.12.0/manifests"},{"name":"0.11.0","sha":"0ce39a4cf6424f30f6c243a20f2a1b1e46d909d2","kind":"commit","published_at":"2010-05-06T22:41:15.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.11.0","html_url":"https://github.com/expressjs/express/releases/tag/0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.11.0/manifests"},{"name":"0.10.1","sha":"6a6cce03b7f071bcd9027e5068b988770f4e1133","kind":"commit","published_at":"2010-05-03T15:42:01.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.10.1","html_url":"https://github.com/expressjs/express/releases/tag/0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.10.1/manifests"},{"name":"0.10.0","sha":"4467a00acd2e61a5d984bdf91397ffe00c8dde04","kind":"commit","published_at":"2010-04-30T17:34:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.10.0","html_url":"https://github.com/expressjs/express/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.10.0/manifests"},{"name":"0.9.0","sha":"125533116008cd7e3a81b339a15f4a2059ae12ae","kind":"commit","published_at":"2010-04-14T23:56:13.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.9.0","html_url":"https://github.com/expressjs/express/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.9.0/manifests"},{"name":"0.8.0","sha":"3b49821e82bef2a94a3bda0fbb2fd4bc0d732842","kind":"commit","published_at":"2010-03-19T23:51:43.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.8.0","html_url":"https://github.com/expressjs/express/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.8.0/manifests"},{"name":"0.7.6","sha":"273a51a335694abd977e36a9b052bbd48190de78","kind":"commit","published_at":"2010-03-19T15:55:52.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.6","html_url":"https://github.com/expressjs/express/releases/tag/0.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.6/manifests"},{"name":"0.7.5","sha":"934adb1e9f1b79d8f42bf5d6f781bf5eeaadafa5","kind":"commit","published_at":"2010-03-17T02:38:21.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.5","html_url":"https://github.com/expressjs/express/releases/tag/0.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.5/manifests"},{"name":"0.7.4","sha":"f56a33d22d4b06a28645ecae045be1bafc795b0f","kind":"commit","published_at":"2010-03-16T23:14:48.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.4","html_url":"https://github.com/expressjs/express/releases/tag/0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.4/manifests"},{"name":"0.7.3","sha":"d893009a8dc26bbe7b587fea3c9c5cdb4553a744","kind":"commit","published_at":"2010-03-16T20:17:41.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.3","html_url":"https://github.com/expressjs/express/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.3/manifests"},{"name":"0.7.2","sha":"d0a8bb550e371da8a9ee769e823660be4d0915d4","kind":"commit","published_at":"2010-03-16T15:08:17.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.2","html_url":"https://github.com/expressjs/express/releases/tag/0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.2/manifests"},{"name":"0.7.1","sha":"b6d2c8479c8fa2ba133f6621856002e15ffd0767","kind":"commit","published_at":"2010-03-16T15:03:06.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.1","html_url":"https://github.com/expressjs/express/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.1/manifests"},{"name":"0.7.0","sha":"73c506f19c720692f3d2830fb5fa024ff9e7af0d","kind":"commit","published_at":"2010-03-15T16:13:18.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.7.0","html_url":"https://github.com/expressjs/express/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.7.0/manifests"},{"name":"0.6.0","sha":"6da4a942caf956bd90df100283a716680c889eea","kind":"commit","published_at":"2010-03-11T19:01:54.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.6.0","html_url":"https://github.com/expressjs/express/releases/tag/0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.6.0/manifests"},{"name":"0.5.0","sha":"14ceb8c046c6bbe07ede056c99be55e5a2e914e1","kind":"commit","published_at":"2010-03-10T21:17:57.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.5.0","html_url":"https://github.com/expressjs/express/releases/tag/0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.5.0/manifests"},{"name":"0.4.0","sha":"2f6dfbc165337b0f998a281f7f7ac86674b8bf59","kind":"commit","published_at":"2010-02-12T01:02:30.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.4.0","html_url":"https://github.com/expressjs/express/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.4.0/manifests"},{"name":"0.3.0","sha":"45ef08cf99099bddaf995544c93272cd3b8c2355","kind":"commit","published_at":"2010-02-11T15:12:08.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.3.0","html_url":"https://github.com/expressjs/express/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.3.0/manifests"},{"name":"0.2.1","sha":"7cdbca0dc95f2c635187711d7bd9599010f2c575","kind":"commit","published_at":"2010-02-05T16:18:24.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.2.1","html_url":"https://github.com/expressjs/express/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.2.1/manifests"},{"name":"0.2.0","sha":"c8dd169ad9da65532cdcd8b47b945d31ca0dbc30","kind":"commit","published_at":"2010-02-04T03:28:31.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.2.0","html_url":"https://github.com/expressjs/express/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.2.0/manifests"},{"name":"0.1.0","sha":"82891ea148c6774b98cfbe3d771d997a77537d16","kind":"commit","published_at":"2010-02-03T23:27:58.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.1.0","html_url":"https://github.com/expressjs/express/releases/tag/0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.1.0/manifests"},{"name":"0.0.2","sha":"cbc3163496621122fed1c86f806d6e09f333566e","kind":"commit","published_at":"2010-01-11T03:54:44.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.0.2","html_url":"https://github.com/expressjs/express/releases/tag/0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.0.2/manifests"},{"name":"0.0.1","sha":"728b64376eb1fd467783fa9fa86d4f20f2a9f710","kind":"commit","published_at":"2010-01-03T13:25:22.000Z","download_url":"https://codeload.github.com/expressjs/express/tar.gz/0.0.1","html_url":"https://github.com/expressjs/express/releases/tag/0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/expressjs%2Fexpress/tags/0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-06-06T17:02:32.585Z","dependent_packages_count":93237,"downloads":187306052,"downloads_period":"last-month","dependent_repos_count":1853938,"rankings":{"downloads":0.011170969497777305,"dependent_repos_count":0.017386190272275955,"dependent_packages_count":0.0009856737792156448,"stargazers_count":0.0809347692044846,"forks_count":0.3499141916215538,"docker_downloads_count":0.015524362022646402,"average":0.07931935939965895},"purl":"pkg:npm/express","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLWdwdnItZzZnaC05bWMy","url":"https://github.com/advisories/GHSA-gpvr-g6gh-9mc2","title":"No Charset in Content-Type Header in express","description":"Vulnerable versions of express do not specify a charset field in the content-type header while displaying 400 level response messages. The lack of enforcing user's browser to set correct charset, could be leveraged by an attacker to perform a cross-site scripting attack, using non-standard encodings, like UTF-7.\n\n\n## Recommendation\n\nFor express 3.x, update express to version 3.11 or later.\nFor express 4.x, update express to version 4.5 or later. ","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2018-10-23T17:22:54.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2014-6393","https://github.com/advisories/GHSA-gpvr-g6gh-9mc2","https://www.npmjs.com/advisories/8","https://bugzilla.redhat.com/show_bug.cgi?id=1203190"],"source_kind":"github","identifiers":["GHSA-gpvr-g6gh-9mc2","CVE-2014-6393"],"repository_url":null,"blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"4.5.0","vulnerable_version_range":"\u003e= 4.0.0, \u003c 4.5.0"},{"first_patched_version":"3.11.0","vulnerable_version_range":"\u003c 3.11.0"}],"ecosystem":"npm","package_name":"express"}],"created_at":"2022-12-21T16:13:33.963Z","updated_at":"2023-02-01T05:03:41.000Z","epss_percentage":0.0029,"epss_percentile":0.51841},{"uuid":"GSA_kwCzR0hTQS1xdzZoLXZnaDktajZ3eM4AA_cW","url":"https://github.com/advisories/GHSA-qw6h-vgh9-j6wx","title":"express vulnerable to XSS via response.redirect()","description":"### Impact\n\nIn express \u003c4.20.0, passing untrusted user input - even after sanitizing it - to `response.redirect()` may execute untrusted code\n\n### Patches\n\nthis issue is patched in express 4.20.0\n\n### Workarounds\n\nusers are encouraged to upgrade to the patched version of express, but otherwise can workaround this issue by making sure any untrusted inputs are safe, ideally by validating them against an explicit allowlist\n\n### Details\n\nsuccessful exploitation of this vector requires the following:\n\n1. The attacker MUST control the input to response.redirect()\n1. express MUST NOT redirect before the template appears\n1. the browser MUST NOT complete redirection before:\n1. the user MUST click on the link in the template\n","origin":"UNSPECIFIED","severity":"LOW","published_at":"2024-09-10T19:41:04.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":2.3,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:L","references":["https://github.com/expressjs/express/security/advisories/GHSA-qw6h-vgh9-j6wx","https://nvd.nist.gov/vuln/detail/CVE-2024-43796","https://github.com/expressjs/express/commit/54271f69b511fea198471e6ff3400ab805d6b553","https://github.com/advisories/GHSA-qw6h-vgh9-j6wx"],"source_kind":"github","identifiers":["GHSA-qw6h-vgh9-j6wx","CVE-2024-43796"],"repository_url":"https://github.com/expressjs/express","blast_radius":14.416618974336922,"packages":[{"versions":[{"first_patched_version":"5.0.0","vulnerable_version_range":"\u003e= 5.0.0-alpha.1, \u003c 5.0.0"},{"first_patched_version":"4.20.0","vulnerable_version_range":"\u003c 4.20.0"}],"ecosystem":"npm","package_name":"express"}],"created_at":"2024-09-10T20:06:11.331Z","updated_at":"2024-11-18T16:27:12.000Z","epss_percentage":0.00041,"epss_percentile":0.11918},{"uuid":"GSA_kwCzR0hTQS1ydjk1LTg5NmgtYzJ2Y84AA6Rd","url":"https://github.com/advisories/GHSA-rv95-896h-c2vc","title":"Express.js Open Redirect in malformed URLs","description":"### Impact\n\nVersions of Express.js prior to 4.19.2 and pre-release alpha and beta versions before 5.0.0-beta.3 are affected by an open redirect vulnerability using malformed URLs.\n\nWhen a user of Express performs a redirect using a user-provided URL Express performs an encode [using `encodeurl`](https://github.com/pillarjs/encodeurl) on the contents before passing it to the `location` header. This can cause malformed URLs to be evaluated in unexpected ways by common redirect allow list implementations in Express applications, leading to an Open Redirect via bypass of a properly implemented allow list.\n\nThe main method impacted is `res.location()` but this is also called from within `res.redirect()`.\n\n### Patches\n\nhttps://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd\nhttps://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94\n\nAn initial fix went out with `express@4.19.0`, we then patched a feature regression in `4.19.1` and added improved handling for the bypass in `4.19.2`.\n\n### Workarounds\n\nThe fix for this involves pre-parsing the url string with either `require('node:url').parse` or `new URL`. These are steps you can take on your own before passing the user input string to `res.location` or `res.redirect`.\n\n### References\n\nhttps://github.com/expressjs/express/pull/5539\nhttps://github.com/koajs/koa/issues/1800\nhttps://expressjs.com/en/4x/api.html#res.location","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-03-25T19:40:26.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc","https://github.com/koajs/koa/issues/1800","https://github.com/expressjs/express/pull/5539","https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd","https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94","https://expressjs.com/en/4x/api.html#res.location","https://nvd.nist.gov/vuln/detail/CVE-2024-29041","https://github.com/advisories/GHSA-rv95-896h-c2vc"],"source_kind":"github","identifiers":["GHSA-rv95-896h-c2vc","CVE-2024-29041"],"repository_url":"https://github.com/expressjs/express","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"5.0.0-beta.3","vulnerable_version_range":"\u003e= 5.0.0-alpha.1, \u003c 5.0.0-beta.3"},{"first_patched_version":"4.19.2","vulnerable_version_range":"\u003c 4.19.2"}],"ecosystem":"npm","package_name":"express"}],"created_at":"2024-03-25T20:04:49.896Z","updated_at":"2025-05-29T01:09:23.625Z","epss_percentage":0.00081,"epss_percentile":0.24831},{"uuid":"GSA_kwCzR0hTQS1qajc4LTVmbXYtbXYyOM4AA_8a","url":"https://github.com/advisories/GHSA-jj78-5fmv-mv28","title":"Express Open Redirect vulnerability","description":"URL Redirection to Untrusted Site ('Open Redirect') vulnerability in Express. This vulnerability affects the use of the Express Response object. This issue impacts Express: from 3.4.5 before 4.0.0-rc1.","origin":"UNSPECIFIED","severity":"LOW","published_at":"2024-10-03T21:31:05.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":2.1,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:P","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-9266","https://www.herodevs.com/vulnerability-directory/cve-2024-9266","https://github.com/expressjs/express/compare/3.4.4...3.4.5","https://github.com/advisories/GHSA-jj78-5fmv-mv28"],"source_kind":"github","identifiers":["GHSA-jj78-5fmv-mv28","CVE-2024-9266"],"repository_url":"https://github.com/expressjs/express","blast_radius":13.162999933090235,"packages":[{"versions":[{"first_patched_version":"4.0.0-rc1","vulnerable_version_range":"\u003e= 3.4.5, \u003c 4.0.0-rc1"}],"ecosystem":"npm","package_name":"express"}],"created_at":"2024-10-09T18:06:22.382Z","updated_at":"2024-10-09T23:46:56.000Z","epss_percentage":0.00017,"epss_percentile":0.02495},{"uuid":"GSA_kwCzR0hTQS1jbTVnLTNwZ2MtOHJnNM4ABAyy","url":"https://github.com/advisories/GHSA-cm5g-3pgc-8rg4","title":"Express ressource injection","description":"A vulnerability has been identified in the Express response.links function, allowing for arbitrary resource injection in the Link header when unsanitized data is used.\n\nThe issue arises from improper sanitization in `Link` header values, which can allow a combination of characters like `,`, `;`, and `\u003c\u003e` to preload malicious resources.\n\nThis vulnerability is especially relevant for dynamic parameters.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-10-29T18:30:37.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2024-10491","https://www.herodevs.com/vulnerability-directory/cve-2024-10491","https://github.com/expressjs/express/issues/6222","https://github.com/advisories/GHSA-cm5g-3pgc-8rg4"],"source_kind":"github","identifiers":["GHSA-cm5g-3pgc-8rg4","CVE-2024-10491"],"repository_url":"https://github.com/expressjs/express","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"4.0.0-rc1","vulnerable_version_range":"\u003c= 3.21.4"}],"ecosystem":"npm","package_name":"express"}],"created_at":"2024-11-25T22:07:23.804Z","updated_at":"2024-12-19T17:52:11.000Z","epss_percentage":0.0003,"epss_percentile":0.06852}],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/express","docker_dependents_count":46587,"docker_downloads_count":6430163260,"usage_url":"https://repos.ecosyste.ms/usage/npm/express","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/express/dependencies","status":null,"funding_links":["https://opencollective.com/express"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/express/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/express/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/express/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/express/related_packages","maintainers":[{"uuid":"dougwilson","login":"dougwilson","name":null,"email":"doug@somethingdoug.com","url":null,"packages_count":103,"html_url":"https://www.npmjs.com/~dougwilson","role":null,"created_at":"2022-11-10T11:06:30.177Z","updated_at":"2022-11-10T11:06:30.177Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/dougwilson/packages"},{"uuid":"wesleytodd","login":"wesleytodd","name":null,"email":"wes@wesleytodd.com","url":null,"packages_count":172,"html_url":"https://www.npmjs.com/~wesleytodd","role":null,"created_at":"2024-02-23T18:01:51.959Z","updated_at":"2024-02-23T18:01:51.959Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/wesleytodd/packages"},{"uuid":"linusu","login":"linusu","name":null,"email":"linus@folkdatorn.se","url":null,"packages_count":291,"html_url":"https://www.npmjs.com/~linusu","role":null,"created_at":"2024-04-29T22:41:20.793Z","updated_at":"2024-04-29T22:41:20.793Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/linusu/packages"},{"uuid":"blakeembrey","login":"blakeembrey","name":null,"email":"hello@blakeembrey.com","url":null,"packages_count":233,"html_url":"https://www.npmjs.com/~blakeembrey","role":null,"created_at":"2024-02-24T21:02:48.206Z","updated_at":"2024-02-24T21:02:48.206Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/blakeembrey/packages"},{"uuid":"ulisesgascon","login":"ulisesgascon","name":null,"email":"ulisesgascondev@gmail.com","url":null,"packages_count":207,"html_url":"https://www.npmjs.com/~ulisesgascon","role":null,"created_at":"2024-02-23T18:01:51.839Z","updated_at":"2024-02-23T18:01:51.839Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/ulisesgascon/packages"},{"uuid":"mikeal","login":"mikeal","name":null,"email":"mikeal.rogers@gmail.com","url":null,"packages_count":261,"html_url":"https://www.npmjs.com/~mikeal","role":null,"created_at":"2022-11-10T11:06:30.173Z","updated_at":"2022-11-10T11:06:30.173Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/mikeal/packages"},{"uuid":"sheplu","login":"sheplu","name":null,"email":"jean.burellier@gmail.com","url":null,"packages_count":5,"html_url":"https://www.npmjs.com/~sheplu","role":null,"created_at":"2024-02-24T21:02:48.166Z","updated_at":"2024-02-24T21:02:48.166Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/sheplu/packages"}],"registry":{"name":"npmjs.org","url":"https://registry.npmjs.org","ecosystem":"npm","default":true,"packages_count":5006532,"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":20085,"unique_repositories_count_past_30_days":118,"recent_issues":[{"uuid":"5978679524","node_id":"PR_kwDOJbo8n88AAAABKAu_rQ","number":3586,"state":"closed","title":"Bump the npm-minor-and-patch group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T16:11:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-22T11:46:58.000Z","updated_at":"2026-10-22T16:11:48.000Z","time_to_close":15887,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":11,"packages":[{"name":"rollup","old_version":"4.64.6","new_version":"4.64.7","repository_url":"https://github.com/rollup/rollup"},{"name":"zod","old_version":"3.23.8","new_version":"3.25.76","repository_url":"https://github.com/colinhacks/zod"},{"name":"undici","old_version":"8.12.0","new_version":"8.12.1","repository_url":"https://github.com/nodejs/undici"},{"name":"dotenv","old_version":"18.0.7","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.2","new_version":"4.22.3","repository_url":"https://github.com/expressjs/express"},{"name":"i18next","old_version":"26.4.4","new_version":"26.4.5","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-fs-backend","old_version":"2.6.8","new_version":"2.6.9","repository_url":"https://github.com/i18next/i18next-fs-backend"},{"name":"playwright","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"cypress","old_version":"16.1.1","new_version":"16.2.0","repository_url":"https://github.com/cypress-io/cypress"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rollup](https://github.com/rollup/rollup) | `4.64.6` | `4.64.7` |\n| [zod](https://github.com/colinhacks/zod) | `3.23.8` | `3.25.76` |\n| [undici](https://github.com/nodejs/undici) | `8.12.0` | `8.12.1` |\n| [dotenv](https://github.com/motdotla/dotenv) | `18.0.7` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.2` | `4.22.3` |\n| [i18next](https://github.com/i18next/i18next) | `26.4.4` | `26.4.5` |\n| [i18next-fs-backend](https://github.com/i18next/i18next-fs-backend) | `2.6.8` | `2.6.9` |\n| [playwright](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [cypress](https://github.com/cypress-io/cypress) | `16.1.1` | `16.2.0` |\n\n\nUpdates `rollup` from 4.64.6 to 4.64.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rollup/rollup/releases\"\u003erollup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.64.7\u003c/h2\u003e\n\u003ch2\u003e4.64.7\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-15\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where watching not-yet-created files from plugins did not work if several shared a directory (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rollup/rollup/pull/6575\"\u003e#6575\u003c/a\u003e: Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://github.com/lukastaegert\"\u003e\u003ccode\u003e@​lukastaegert\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/rollup/rollup/blob/master/CHANGELOG.md\"\u003erollup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.64.7\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-15\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where watching not-yet-created files from plugins did not work if several shared a directory (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rollup/rollup/pull/6575\"\u003e#6575\u003c/a\u003e: Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://github.com/lukastaegert\"\u003e\u003ccode\u003e@​lukastaegert\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/rollup/rollup/commit/5f658604845ca7fb4d8e8a27a9e68e166c6f9973\"\u003e\u003ccode\u003e5f65860\u003c/code\u003e\u003c/a\u003e 4.64.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rollup/rollup/commit/97611099c648ad66d2ea4a4d3601c0a0a82c9c48\"\u003e\u003ccode\u003e9761109\u003c/code\u003e\u003c/a\u003e Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rollup/rollup/compare/v4.64.6...v4.64.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zod` from 3.23.8 to 3.25.76\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/colinhacks/zod/releases\"\u003ezod's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.25.76\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e91c9ca6385bef38278605294498af06c89b9aa68 fix: cleanup _idmap of $ZodRegistry (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4837\"\u003e#4837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e9cce1c5779aea32d00226a931a7f67d3e2529d58 docs: fix typo in flattenError example on error-formatting page (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4819\"\u003e#4819\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea3560aeb6c3a8675a932601be79cfae897eec9d9 v3.25.76 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4838\"\u003e#4838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e50606616c0d291caf3210a7521da51271b918333 Release 3.25.76\u003c/li\u003e\n\u003cli\u003e7baee4e17f86f4017e09e12b0acdee36a5b1c087 Update index.mdx (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.75\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ec5f349b6c4e76f879eba9fd350dd79950fcb02f9 Fix z.undefined() behavior in toJSONSchema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.74\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eae0dbe1f79b2421f6d91ec0796295763436b26e2 Partial record\u003c/li\u003e\n\u003cli\u003e39c5f71c92b9c4c39fc0a59b9375204fa140eaf0 3.25.74\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.73\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1021d3c230d41d600698a6d98b9db86c19f56904 v3.25.73 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4822\"\u003e#4822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.72\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e4a4dac7cfb787162eeb79165d39bbb4830d4a6de Warn about id uniqueness check on Metadata page (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4782\"\u003e#4782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a5838dc0da967e15a217bf5abdd81f725da46c4 feat(locale): Add Esperanto (eo) locale (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4743\"\u003e#4743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e36fe14e1472f2a7cd71415841be8832fc4e9acc5 Fix optionality of schemas (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4769\"\u003e#4769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e20c8c4b67b508d653012808f69c43c7cfe5b39e3 Fix re-export bug\u003c/li\u003e\n\u003cli\u003e8b0df10c8757a5fbd75bd65128ae183d764b3304 3.25.72\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.71\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e66a0f34bfc746acddbfb68426b8b1b3f1d3d1727 Move source to \u003ccode\u003e/src\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4808\"\u003e#4808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2a15f44606fd66335c6ebc1f91d702bb6bc95693 3.25.71\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.70\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebd81c7cfaa03f61365d1c708c7e0f1cac54ea9ca Add ecosystem listing to homepage\u003c/li\u003e\n\u003cli\u003e1ddb9719564e644722852193930a09d54f720443 Add Mobb to sponsors\u003c/li\u003e\n\u003cli\u003e30ba440859f5b9184817f578626ff85d484aec27 Clean up ecosystem.mdx\u003c/li\u003e\n\u003cli\u003e0ef1b85b5923a1a06a2afab47dbad249d105a997 Add \u003ccode\u003esvelte-jsonschema-form\u003c/code\u003e to form integrations (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4784\"\u003e#4784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e14715f147363e88e73190bb6ddbdf008914f0b19 docs: fix Lambda spelling (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef6da030188ea30defc025bbc672e5a81fbe93078 Add back src (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4806\"\u003e#4806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e364200a67c9f74ef252dbfa65ea93aab8fb15c06 Revert \u0026quot;Add back src (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4806\"\u003e#4806\u003c/a\u003e)\u0026quot;\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/colinhacks/zod/commit/463f03eb8183dcdcdf735b180f2bf40883e66220\"\u003e\u003ccode\u003e463f03e\u003c/code\u003e\u003c/a\u003e Release 3.25.76\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/fa2791da90e5b0b4e8817557b76291c2d5713429\"\u003e\u003ccode\u003efa2791d\u003c/code\u003e\u003c/a\u003e Detect cycle on root schema. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4651\"\u003e#4651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/7a518793776d70d4bf1019f84ac1aee03ac76ca7\"\u003e\u003ccode\u003e7a51879\u003c/code\u003e\u003c/a\u003e Set  when converting registry to JSON Schema. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4620\"\u003e#4620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/db354b6cd4e64a5e132d7b30a42394753b986e39\"\u003e\u003ccode\u003edb354b6\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/e542398527db4b15d51902b60be34cf27395b185\"\u003e\u003ccode\u003ee542398\u003c/code\u003e\u003c/a\u003e Add when param. Clean up z.check. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4598\"\u003e#4598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c842698fa4454b79c1702a968143bfdf42025a78\"\u003e\u003ccode\u003ec842698\u003c/code\u003e\u003c/a\u003e Implement .clear() in . Fixes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4834\"\u003e#4834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/9f122ae77142b61f32031d36354da2fe8f6e4ad2\"\u003e\u003ccode\u003e9f122ae\u003c/code\u003e\u003c/a\u003e Add toString to ZodError. Fixes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4830\"\u003e#4830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/0df5f6946ef7137be710767f06ff0c05e7dd9b47\"\u003e\u003ccode\u003e0df5f69\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c5f349b6c4e76f879eba9fd350dd79950fcb02f9\"\u003e\u003ccode\u003ec5f349b\u003c/code\u003e\u003c/a\u003e Fix z.undefined() behavior in toJSONSchema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/5267f904d806eae3512ee6063128d944003513b9\"\u003e\u003ccode\u003e5267f90\u003c/code\u003e\u003c/a\u003e Improve recursive types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/colinhacks/zod/compare/v3.23.8...v3.25.76\"\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/~colinhacks\"\u003ecolinhacks\u003c/a\u003e, a new releaser for zod since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `undici` from 8.12.0 to 8.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nodejs/undici/releases\"\u003eundici's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore build:wasm npm script by \u003ca href=\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/6009\"\u003enodejs/undici#6009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unexpected disconnect guards to http2-body-delete.js by \u003ca href=\"https://github.com/Kesavamoorthig06\"\u003e\u003ccode\u003e@​Kesavamoorthig06\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/5970\"\u003enodejs/undici#5970\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/Kesavamoorthig06\"\u003e\u003ccode\u003e@​Kesavamoorthig06\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/5970\"\u003enodejs/undici#5970\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\"\u003ehttps://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\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/nodejs/undici/commit/a65ec32e4e396f8f1a5e4e2887611c43839bde65\"\u003e\u003ccode\u003ea65ec32\u003c/code\u003e\u003c/a\u003e Bumped v8.12.1 (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/6010\"\u003e#6010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/undici/commit/e5966abf403efc430fd7f2ac1c7cfc10a097ce18\"\u003e\u003ccode\u003ee5966ab\u003c/code\u003e\u003c/a\u003e test: add unexpected disconnect guards to http2-body-delete.js (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/undici/commit/9a47f91487c7fe3f871a70b18d4dd5742c2ce880\"\u003e\u003ccode\u003e9a47f91\u003c/code\u003e\u003c/a\u003e fix: restore build:wasm npm script (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/6009\"\u003e#6009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 18.0.7 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.2 to 4.22.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/blob/v4.22.3/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.22.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAllow conditional revalidation for QUERY requests\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereq.fresh\u003c/code\u003e now includes QUERY in the freshness check, so QUERY responses can return 304 when a validator matches\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps: qs@~6.16.0\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/expressjs/express/commit/899b52494e74327905c16164decdc6e51f803af8\"\u003e\u003ccode\u003e899b524\u003c/code\u003e\u003c/a\u003e 4.22.3 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7466\"\u003e#7466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/1fad2c30eff02268bb9751f9d0cb6644c14b0fbb\"\u003e\u003ccode\u003e1fad2c3\u003c/code\u003e\u003c/a\u003e ci: add npm staged publication with dist-tag support (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7465\"\u003e#7465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/41386506a9ca6874a79b304f1baafd50522e6078\"\u003e\u003ccode\u003e4138650\u003c/code\u003e\u003c/a\u003e deps: qs@~6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7440\"\u003e#7440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/61ccf2ea8c1bd19cbca6acfb7cd276c5fcd410d3\"\u003e\u003ccode\u003e61ccf2e\u003c/code\u003e\u003c/a\u003e feat: allow conditional revalidation for QUERY requests (v4) (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7377\"\u003e#7377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/715101bd27ec9c14a7ccc8a37c476f330d98ad53\"\u003e\u003ccode\u003e715101b\u003c/code\u003e\u003c/a\u003e Update path-to-regexp to 0.1.13 because CVE-2026-4867 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7135\"\u003e#7135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/f472e5fe28d7a4c1ec8b6832d504c46f8a056d1c\"\u003e\u003ccode\u003ef472e5f\u003c/code\u003e\u003c/a\u003e docs: fix the release date format for 4.22.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.2...v4.22.3\"\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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.4.4 to 26.4.5\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.4.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003ehasLoadedNamespace(ns, { lng })\u003c/code\u003e no longer stays \u003ccode\u003efalse\u003c/code\u003e forever when the passed in \u003ccode\u003elng\u003c/code\u003e is loaded under another code, or not at all. It checked the load state of the raw \u003ccode\u003elng\u003c/code\u003e, but \u003ccode\u003eloadLanguages()\u003c/code\u003e stores a language under its resolved code (\u003ccode\u003ede-ch\u003c/code\u003e → \u003ccode\u003ede-CH\u003c/code\u003e, \u003ccode\u003ede-CH\u003c/code\u003e → \u003ccode\u003ede\u003c/code\u003e with \u003ccode\u003eload: 'languageOnly'\u003c/code\u003e) and skips a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e entirely (only the fallback gets loaded), so that state never got set. react-i18next's \u003ccode\u003euseTranslation(ns, { lng })\u003c/code\u003e then never became ready: with \u003ccode\u003euseSuspense\u003c/code\u003e it kept throwing an already resolved promise and React retried forever (100% CPU, SSR never finished), without it the load effect re-rendered in a loop. It now checks the code the language is actually loaded under, and for a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e only waits for the fallback, which is also what \u003ccode\u003et()\u003c/code\u003e resolves to. Calls without \u003ccode\u003elng\u003c/code\u003e and the \u003ccode\u003eprecheck\u003c/code\u003e (react-i18next's \u003ccode\u003ebindI18n: 'languageChanging'\u003c/code\u003e) are unchanged (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1934\"\u003ereact-i18next#1934\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.4.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003ehasLoadedNamespace(ns, { lng })\u003c/code\u003e no longer stays \u003ccode\u003efalse\u003c/code\u003e forever when the passed in \u003ccode\u003elng\u003c/code\u003e is loaded under another code, or not at all. It checked the load state of the raw \u003ccode\u003elng\u003c/code\u003e, but \u003ccode\u003eloadLanguages()\u003c/code\u003e stores a language under its resolved code (\u003ccode\u003ede-ch\u003c/code\u003e → \u003ccode\u003ede-CH\u003c/code\u003e, \u003ccode\u003ede-CH\u003c/code\u003e → \u003ccode\u003ede\u003c/code\u003e with \u003ccode\u003eload: 'languageOnly'\u003c/code\u003e) and skips a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e entirely (only the fallback gets loaded), so that state never got set. react-i18next's \u003ccode\u003euseTranslation(ns, { lng })\u003c/code\u003e then never became ready: with \u003ccode\u003euseSuspense\u003c/code\u003e it kept throwing an already resolved promise and React retried forever (100% CPU, SSR never finished), without it the load effect re-rendered in a loop. It now checks the code the language is actually loaded under, and for a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e only waits for the fallback, which is also what \u003ccode\u003et()\u003c/code\u003e resolves to. Calls without \u003ccode\u003elng\u003c/code\u003e and the \u003ccode\u003eprecheck\u003c/code\u003e (react-i18next's \u003ccode\u003ebindI18n: 'languageChanging'\u003c/code\u003e) are unchanged (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1934\"\u003ereact-i18next#1934\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/ce7b9cf970b2e6dcbecc6eb997d460ea1ea811ad\"\u003e\u003ccode\u003ece7b9cf\u003c/code\u003e\u003c/a\u003e 26.4.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/4d4c60720e05da72e53af33fa0a8e0d69a56487a\"\u003e\u003ccode\u003e4d4c607\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8f8651e938e122b5e40eacf616c9fb823a189087\"\u003e\u003ccode\u003e8f8651e\u003c/code\u003e\u003c/a\u003e fix: hasLoadedNamespace with a passed in lng checks the code it is actually l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/15d0b9d90e0564947861b926352b06deff0a8a05\"\u003e\u003ccode\u003e15d0b9d\u003c/code\u003e\u003c/a\u003e changelog: link GHSA-5jr9-983r-c8x4 in v26.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3693965ffa01e8cc8f40219fb0e2d1d537289181\"\u003e\u003ccode\u003e3693965\u003c/code\u003e\u003c/a\u003e test: make the nest() linearity check robust under coverage\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.4.4...v26.4.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next-fs-backend` from 2.6.8 to 2.6.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next-fs-backend/blob/master/CHANGELOG.md\"\u003ei18next-fs-backend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e2.6.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity (defence-in-depth): \u003ccode\u003einterpolatePath\u003c/code\u003e now refuses a path whose root differs from the template's root. The per-value checks only looked at each \u003ccode\u003elng\u003c/code\u003e / \u003ccode\u003ens\u003c/code\u003e on its own, so with a \u003ccode\u003eloadPath\u003c/code\u003e / \u003ccode\u003eaddPath\u003c/code\u003e template that starts with the placeholder, a value could change what kind of path the result is: ns \u003ccode\u003e/etc/foo\u003c/code\u003e made \u003ccode\u003e{{ns}}/{{lng}}.json\u003c/code\u003e absolute (\u003ccode\u003e/etc/foo/en.json\u003c/code\u003e), lng \u003ccode\u003eC:\u003c/code\u003e did the same on Windows (\u003ccode\u003eC:/...\u003c/code\u003e), and ns \u003ccode\u003e/host/share\u003c/code\u003e after a leading \u003ccode\u003e/\u003c/code\u003e (or \u003ccode\u003e//host/share\u003c/code\u003e at the start) became a Windows UNC path to another machine. Reachable when \u003ccode\u003elng\u003c/code\u003e / \u003ccode\u003ens\u003c/code\u003e come from the request, e.g. via \u003ccode\u003ei18next-http-middleware\u003c/code\u003e. The default \u003ccode\u003e/locales/{{lng}}/{{ns}}.json\u003c/code\u003e, \u003ccode\u003ejoin(__dirname, ...)\u003c/code\u003e templates, and nested namespaces such as \u003ccode\u003ea/b\u003c/code\u003e are not affected. Same class as i18next-http-backend's GHSA-9jhj-wvmw-cfx5. The README's security section is updated to match.\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-fs-backend/commit/db4990f917f5e6024b1a50b1735da53405a3e7dd\"\u003e\u003ccode\u003edb4990f\u003c/code\u003e\u003c/a\u003e 2.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-fs-backend/commit/fa389bd318c6a7b045303cf2f3fd0c47c8f787f9\"\u003e\u003ccode\u003efa389bd\u003c/code\u003e\u003c/a\u003e security: refuse paths whose root a lng/ns value changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-fs-backend/commit/065961da20f8c397b9783e96bcfc001aff782bcf\"\u003e\u003ccode\u003e065961d\u003c/code\u003e\u003c/a\u003e Bump js-yaml from 4.3.1 to 4.3.2 (\u003ca href=\"https://redirect.github.com/i18next/i18next-fs-backend/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next-fs-backend/compare/v2.6.8...v2.6.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.64.0 to 1.64.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\"\u003eplaywright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.64.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/43247\"\u003e#43247\u003c/a\u003e [Bug]: _electron.launch intermittently loses a packaged app's first window since 1.64.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43242\"\u003e#43242\u003c/a\u003e [Regression]: Chromium 155+ aborts a preflighted cross-origin redirect whenever any route is registered (net::ERR_ABORTED)\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/cfe490d941f992655948eee8fd4fd94e1c4234bf\"\u003e\u003ccode\u003ecfe490d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43353\"\u003e#43353\u003c/a\u003e): docs: release notes for v1.64 Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/866cbb864009f84d7e8e41c64fdbfceff43f280d\"\u003e\u003ccode\u003e866cbb8\u003c/code\u003e\u003c/a\u003e chore: mark v1.64.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43354\"\u003e#43354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/1b2924712024804936dbcfe9fabaa655d52325e5\"\u003e\u003ccode\u003e1b29247\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43250\"\u003e#43250\u003c/a\u003e): fix(electron): do not drop windows that have not navigat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/632d976826c74b0163fd5201a05b7b4853ba3f4a\"\u003e\u003ccode\u003e632d976\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43249\"\u003e#43249\u003c/a\u003e): fix(chromium): disable AvoidCorsURLLoaderRestartOnRedirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/824d0c5d1e10f21fcbe88d18a99d06194acde77c\"\u003e\u003ccode\u003e824d0c5\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43217\"\u003e#43217\u003c/a\u003e): chore(dotnet): fix async suffix of optional-arg overload...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.64.0...v1.64.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react` from 19.3.0 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \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/61aa00df822d0eb76d0362eb8b6fdd3527693efe\"\u003e\u003ccode\u003e61aa00d\u003c/code\u003e\u003c/a\u003e [19.3.x][Flight] Improve transport protocol (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.3.1/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.3.0 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \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/61aa00df822d0eb76d0362eb8b6fdd3527693efe\"\u003e\u003ccode\u003e61aa00d\u003c/code\u003e\u003c/a\u003e [19.3.x][Flight] Improve transport protocol (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.3.1/packages/react-dom\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cypress` from 16.1.1 to 16.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cypress-io/cypress/releases\"\u003ecypress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://docs.cypress.io/app/references/changelog#16-2-0\"\u003ehttps://docs.cypress.io/app/references/changelog#16-2-0\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/cypress-io/cypress/commit/db52e1e7720c445afdffac740185bcf2b08a9b8c\"\u003e\u003ccode\u003edb52e1e\u003c/code\u003e\u003c/a\u003e chore: generate random ids with crypto instead of randomstring (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35043\"\u003e#35043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/e7a3ce001c86964d759639d37170108b5e35bd5e\"\u003e\u003ccode\u003ee7a3ce0\u003c/code\u003e\u003c/a\u003e chore: use the repo Node version in platform cloud-environment and memory tes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/950e10e288572bf2a3d629aa815ba25b88e765d4\"\u003e\u003ccode\u003e950e10e\u003c/code\u003e\u003c/a\u003e test: convert driver navigation specs to TypeScript (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35039\"\u003e#35039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/53bdd8685cce137e0d0a072d5dd9b80b30d14dc2\"\u003e\u003ccode\u003e53bdd86\u003c/code\u003e\u003c/a\u003e chore: limit the mTLS bridge to its configured hosts and origins (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35027\"\u003e#35027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/c61453cc7e32b010a7ca73512434fde2f8c19e51\"\u003e\u003ccode\u003ec61453c\u003c/code\u003e\u003c/a\u003e fix: recover pre-request correlation after a missed pre-request (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35010\"\u003e#35010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/0de9f6ea6c8fdceb10bd7d3a731544d23f1d643c\"\u003e\u003ccode\u003e0de9f6e\u003c/code\u003e\u003c/a\u003e chore: split driver cookies spec into smaller specs (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35038\"\u003e#35038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/ca8c821512fbd9c9843d6822571ed6d0565d2638\"\u003e\u003ccode\u003eca8c821\u003c/code\u003e\u003c/a\u003e chore: split driver net_stubbing spec into smaller specs (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35036\"\u003e#35036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/2149b5943744f3a99566865c4376fcf836418759\"\u003e\u003ccode\u003e2149b59\u003c/code\u003e\u003c/a\u003e chore: split driver navigation spec into smaller files (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35037\"\u003e#35037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/869ddff9bc63911943953b142dd9bf6ba8b5ee12\"\u003e\u003ccode\u003e869ddff\u003c/code\u003e\u003c/a\u003e chore: convert three driver specs to TypeScript and type Cypress.action event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/6e10cd92e05f5a0794c6f18f9bf90ac78bfd133b\"\u003e\u003ccode\u003e6e10cd9\u003c/code\u003e\u003c/a\u003e chore: convert four driver assertion and traversal specs to TypeScript (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35035\"\u003e#35035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cypress-io/cypress/compare/v16.1.1...v16.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| zod | [\u003e= 4.a, \u003c 5] |\n\u003c/details\u003e","html_url":"https://github.com/prosopo/captcha/pull/3586","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/prosopo%2Fcaptcha/issues/3586","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3586/packages"},{"uuid":"5977137698","node_id":"PR_kwDOU3CTLc8AAAABJ_fbEQ","number":17,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-22T09:58:04.000Z","updated_at":"2026-10-22T10:00:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":27,"packages":[{"name":"turbo","old_version":"2.11.6","new_version":"2.11.9","repository_url":"https://github.com/vercel/turborepo"},{"name":"@base-ui/react","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/mui/base-ui"},{"name":"@tanstack/react-query","old_version":"5.104.1","new_version":"5.104.4","repository_url":"https://github.com/TanStack/query"},{"name":"better-auth","old_version":"1.7.7","new_version":"1.7.11","repository_url":"https://github.com/better-auth/better-auth"},{"name":"cn","old_version":"0.4.0","new_version":"0.5.0","repository_url":"https://github.com/shadcn-ui/cn"},{"name":"lenis","old_version":"1.3.26","new_version":"1.3.27","repository_url":"https://github.com/darkroomengineering/lenis"},{"name":"lucide-react","old_version":"1.49.0","new_version":"1.59.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"react","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-hook-form","old_version":"7.89.0","new_version":"7.90.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"shadcn","old_version":"4.21.1","new_version":"4.22.1","repository_url":"https://github.com/shadcn-ui/ui"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@playwright/test","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"eslint-config-next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"@aws-sdk/client-s3","old_version":"3.1149.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/s3-request-presigner","old_version":"3.1149.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@vercel/functions","old_version":"3.9.9","new_version":"3.10.1","repository_url":"https://github.com/vercel/vercel"},{"name":"ai","old_version":"7.0.126","new_version":"7.0.143","repository_url":"https://github.com/vercel/ai"},{"name":"drizzle-orm","old_version":"0.45.3","new_version":"0.45.4","repository_url":"https://github.com/drizzle-team/drizzle-orm"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"resend","old_version":"6.31.0","new_version":"6.34.1","repository_url":"https://github.com/resend/resend-node"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"supertest","old_version":"7.3.0","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [turbo](https://github.com/vercel/turborepo) | `2.11.6` | `2.11.9` |\n| [@base-ui/react](https://github.com/mui/base-ui/tree/HEAD/packages/react) | `1.8.0` | `1.9.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.1` | `5.104.4` |\n| [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth) | `1.7.7` | `1.7.11` |\n| [cn](https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn) | `0.4.0` | `0.5.0` |\n| [lenis](https://github.com/darkroomengineering/lenis) | `1.3.26` | `1.3.27` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.49.0` | `1.59.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.6` | `16.4.2` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.8` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.8` | `19.3.1` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.89.0` | `7.90.0` |\n| [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn) | `4.21.1` | `4.22.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.3.6` | `16.4.2` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1149.0` | `3.1152.0` |\n| [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) | `3.1149.0` | `3.1152.0` |\n| [@vercel/functions](https://github.com/vercel/vercel/tree/HEAD/packages/functions) | `3.9.9` | `3.10.1` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `7.0.126` | `7.0.143` |\n| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.3` | `0.45.4` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [resend](https://github.com/resend/resend-node) | `6.31.0` | `6.34.1` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [supertest](https://github.com/ladjs/supertest) | `7.3.0` | `7.3.1` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n\n\nUpdates `turbo` from 2.11.6 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/turborepo/releases\"\u003eturbo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTurborepo v2.11.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Release Turborepo 2.11.8 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/vercel/turborepo/pull/14789\"\u003evercel/turborepo#14789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Prefetch Cargo metadata during lazy graph construction by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14497\"\u003evercel/turborepo#14497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compute Berry lockfile closures once across workspaces by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14499\"\u003evercel/turborepo#14499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Check cache hit outputs in place instead of on the blocking pool by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14524\"\u003evercel/turborepo#14524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Speed up Berry lockfile loading by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14500\"\u003evercel/turborepo#14500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Parse bun.lock without building a JSON syntax tree by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14502\"\u003evercel/turborepo#14502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip the dry run cache batch window when there is no remote cache by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14505\"\u003evercel/turborepo#14505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Emit lockfile closures pre-sorted and cheapen closure interning by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14525\"\u003evercel/turborepo#14525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse configuration derived from turbo.json between the shim and the CLI by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14521\"\u003evercel/turborepo#14521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Report locked tools-only setup plans by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14483\"\u003evercel/turborepo#14483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compute Bun lockfile closures once across workspaces by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14501\"\u003evercel/turborepo#14501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse open parent directories when restoring cache archives by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14506\"\u003evercel/turborepo#14506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip dropping the run right before turbo run exits by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14507\"\u003evercel/turborepo#14507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Match literal input exclusions without compiling globs by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14510\"\u003evercel/turborepo#14510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Copy pruned package files in parallel by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14512\"\u003evercel/turborepo#14512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Report proposed first-lock and refresh setup plans by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14571\"\u003evercel/turborepo#14571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compress large cache archives with multithreaded zstd by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14698\"\u003evercel/turborepo#14698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Read tracked file stats from directory listings on Windows by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14633\"\u003evercel/turborepo#14633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Diff changed lockfile resolutions with a merge instead of ordered sets by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14630\"\u003evercel/turborepo#14630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write dry run text output through one buffered stdout handle by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14625\"\u003evercel/turborepo#14625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Parse pnpm-workspace.yaml once per command by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14620\"\u003evercel/turborepo#14620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write each file trace error to stderr in a single call by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14618\"\u003evercel/turborepo#14618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse glob validation results when re-validating turbo.json in the language server by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14615\"\u003evercel/turborepo#14615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Keep git subprocesses off the critical path of dry runs by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14610\"\u003evercel/turborepo#14610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Classify watch file changes when they arrive instead of on a 100ms poll by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14600\"\u003evercel/turborepo#14600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Buffer TUI raw-output spool writes by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14597\"\u003evercel/turborepo#14597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Add the turbo query version key without re-parsing the response by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14592\"\u003evercel/turborepo#14592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Replay cached task logs in whole-line chunks by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14590\"\u003evercel/turborepo#14590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write each boundaries diagnostic to stderr in a single call by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14587\"\u003evercel/turborepo#14587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Walk leading-globstar input trees in parallel without wax by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14511\"\u003evercel/turborepo#14511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse open parent directories when writing cache archives by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14513\"\u003evercel/turborepo#14513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Index Bun lockfile subgraph lookups instead of rescanning all packages by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14514\"\u003evercel/turborepo#14514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Render the pruned lockfile while package files are copied by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14515\"\u003evercel/turborepo#14515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Resolve exact native npm lock cohorts by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14484\"\u003evercel/turborepo#14484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Batch prefixed task output into one write per chunk by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14588\"\u003evercel/turborepo#14588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Share one allocation per external package identity by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14528\"\u003evercel/turborepo#14528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Remove quadratic package-name scan from microfrontends discovery by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14527\"\u003evercel/turborepo#14527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Render file trace errors on several threads by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14623\"\u003evercel/turborepo#14623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Check boundaries packages in parallel again by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14598\"\u003evercel/turborepo#14598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Read PTY child output in 8 KiB chunks by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14594\"\u003evercel/turborepo#14594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Load each package's tsconfig once when checking boundaries by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14589\"\u003evercel/turborepo#14589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip the file watcher round trip when checking outputs for new task hashes by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14626\"\u003evercel/turborepo#14626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Refresh only memory stats in \u003ccode\u003eturbo info\u003c/code\u003e by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14593\"\u003evercel/turborepo#14593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Walk and record prune copy plans in parallel by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14522\"\u003evercel/turborepo#14522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Reconcile sealed clone-local setup selections by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14485\"\u003evercel/turborepo#14485\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/vercel/turborepo/commit/64d5e4804a02f97d4e0c2910e9164a67605201df\"\u003e\u003ccode\u003e64d5e48\u003c/code\u003e\u003c/a\u003e publish 2.11.9 to registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/78b039e3affea8a977af17931b7361ab4da3bb00\"\u003e\u003ccode\u003e78b039e\u003c/code\u003e\u003c/a\u003e fix(cache): Parallelize dry-run HEAD fallback (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14801\"\u003e#14801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/6834819dd859af2e0d278b6b1ef0f81b3e984bb0\"\u003e\u003ccode\u003e6834819\u003c/code\u003e\u003c/a\u003e docs: Use .NET in the multi-language guide (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/679efb8ea421d1446538cb74f842c8677cb21922\"\u003e\u003ccode\u003e679efb8\u003c/code\u003e\u003c/a\u003e refactor: Remove setup lifecycle script controls (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14818\"\u003e#14818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/9c9085246b7b807eb06752ab25f9f772ffd19070\"\u003e\u003ccode\u003e9c90852\u003c/code\u003e\u003c/a\u003e fix: Allow native package manager configuration during setup (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14816\"\u003e#14816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/a3bcc4a0e578a8fc0518a2e32eb523f07f09b036\"\u003e\u003ccode\u003ea3bcc4a\u003c/code\u003e\u003c/a\u003e chore: Release Turborepo 2.11.9-canary.1 (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14817\"\u003e#14817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/9328416c56b6ce69d1a668e72334c62c6555c1db\"\u003e\u003ccode\u003e9328416\u003c/code\u003e\u003c/a\u003e fix: Stop installing the Unix shell hook automatically (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14813\"\u003e#14813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/74c9fbca766f3313a48dc7d989b57ba2aa0d4b53\"\u003e\u003ccode\u003e74c9fbc\u003c/code\u003e\u003c/a\u003e fix: Attribute Cargo.lock changes to the crates whose dependencies changed (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/a3ef52ae52d634da121e4a18d9f726dfb9c1bbf2\"\u003e\u003ccode\u003ea3ef52a\u003c/code\u003e\u003c/a\u003e chore: Update with-changesets example (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14638\"\u003e#14638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/f05411f0eaa1e56d97af590647b97aa872281dca\"\u003e\u003ccode\u003ef05411f\u003c/code\u003e\u003c/a\u003e perf: Skip newline normalization copies for already-normalized TUI output (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vercel/turborepo/compare/v2.11.6...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@base-ui/react` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mui/base-ui/releases\"\u003e@​base-ui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003ch3\u003eGeneral changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExport \u003ccode\u003eCssVariables\u003c/code\u003e and \u003ccode\u003eDataAttributes\u003c/code\u003e types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5243\"\u003e#5243\u003c/a\u003e) by \u003ca href=\"https://github.com/superhooman\"\u003e\u003ccode\u003e@​superhooman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale focused field state (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5345\"\u003e#5345\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix animation waits retaining detached elements (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5719\"\u003e#5719\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep item registration in sync when items change under Strict Mode (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5862\"\u003e#5862\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAccordion\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e's \u003ccode\u003edata-value\u003c/code\u003e and \u003ccode\u003edata-index\u003c/code\u003e attributes (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5705\"\u003e#5705\u003c/a\u003e) by \u003ca href=\"https://github.com/cpruijsen\"\u003e\u003ccode\u003e@​cpruijsen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlert Dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't associate a programmatically opened popup with a trigger that did not open it (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5641\"\u003e#5641\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAutocomplete\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCheckbox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrefer \u003ccode\u003earia-label\u003c/code\u003e over associated labels (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5787\"\u003e#5787\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCollapsible\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Collapsible.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinish closing when the render function removes the panel (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5890\"\u003e#5890\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore animations when a removed panel reopens (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5891\"\u003e#5891\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCombobox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale chip focus after returning to the input (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5879\"\u003e#5879\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix label focus in Shadow DOM (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5871\"\u003e#5871\u003c/a\u003e) by \u003ca href=\"https://github.com/lyzno1\"\u003e\u003ccode\u003e@​lyzno1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset typeahead state when closing without moving focus (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5816\"\u003e#5816\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept readonly arrays for multiple values (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5710\"\u003e#5710\u003c/a\u003e) by \u003ca href=\"https://github.com/MonstraG\"\u003e\u003ccode\u003e@​MonstraG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShare item indicator implementation (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5728\"\u003e#5728\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove mount performance of large lists (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5819\"\u003e#5819\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCombine item store subscriptions (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5863\"\u003e#5863\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDialog\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/mui/base-ui/blob/master/CHANGELOG.md\"\u003e@​base-ui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cem\u003eOct 9, 2026\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eGeneral changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExport \u003ccode\u003eCssVariables\u003c/code\u003e and \u003ccode\u003eDataAttributes\u003c/code\u003e types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5243\"\u003e#5243\u003c/a\u003e) by \u003ca href=\"https://github.com/superhooman\"\u003e\u003ccode\u003e@​superhooman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale focused field state (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5345\"\u003e#5345\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix animation waits retaining detached elements (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5719\"\u003e#5719\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep item registration in sync when items change under Strict Mode (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5862\"\u003e#5862\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAccordion\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e's \u003ccode\u003edata-value\u003c/code\u003e and \u003ccode\u003edata-index\u003c/code\u003e attributes (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5705\"\u003e#5705\u003c/a\u003e) by \u003ca href=\"https://github.com/cpruijsen\"\u003e\u003ccode\u003e@​cpruijsen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlert Dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't associate a programmatically opened popup with a trigger that did not open it (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5641\"\u003e#5641\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAutocomplete\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCheckbox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrefer \u003ccode\u003earia-label\u003c/code\u003e over associated labels (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5787\"\u003e#5787\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCollapsible\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Collapsible.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinish closing when the render function removes the panel (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5890\"\u003e#5890\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore animations when a removed panel reopens (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5891\"\u003e#5891\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCombobox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale chip focus after returning to the input (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5879\"\u003e#5879\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix label focus in Shadow DOM (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5871\"\u003e#5871\u003c/a\u003e) by \u003ca href=\"https://github.com/lyzno1\"\u003e\u003ccode\u003e@​lyzno1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset typeahead state when closing without moving focus (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5816\"\u003e#5816\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept readonly arrays for multiple values (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5710\"\u003e#5710\u003c/a\u003e) by \u003ca href=\"https://github.com/MonstraG\"\u003e\u003ccode\u003e@​MonstraG\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/mui/base-ui/commit/ad7ecda5296b0295b41a51ecb01fce6204acd099\"\u003e\u003ccode\u003ead7ecda\u003c/code\u003e\u003c/a\u003e [release] v1.9.0 (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5906\"\u003e#5906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/3296de3d4c79435a596c72ad8048d74ecc241ca5\"\u003e\u003ccode\u003e3296de3\u003c/code\u003e\u003c/a\u003e [drawer] Avoid retaining unmounted drawers in DrawerProvider (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5921\"\u003e#5921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/69c33b49c71d729a1e63255dd5eb9794fa9a8d2e\"\u003e\u003ccode\u003e69c33b4\u003c/code\u003e\u003c/a\u003e [drawer] Fix deferred touch swipes leaving the popup (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5922\"\u003e#5922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/51b70db60fb2660bbb7236ba5b235a5d77d9fe22\"\u003e\u003ccode\u003e51b70db\u003c/code\u003e\u003c/a\u003e [menu] Strip internal filter components from public types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5923\"\u003e#5923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/8d8b98c351c4d1ec9a6f80dcc89e39e454b1e53a\"\u003e\u003ccode\u003e8d8b98c\u003c/code\u003e\u003c/a\u003e [menu] Ignore filter input edits while the menu animates out (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5911\"\u003e#5911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/aeba3eb9f4613424c1a66f767bb20d25233306b6\"\u003e\u003ccode\u003eaeba3eb\u003c/code\u003e\u003c/a\u003e [combobox][menu][select] Revert highlightItem imperative action (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5910\"\u003e#5910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/ec6bf32d3c1b482994810cf795f7016c375d6493\"\u003e\u003ccode\u003eec6bf32\u003c/code\u003e\u003c/a\u003e [field][select][combobox][slider] Fall back to the owner document when lookin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/1f112a5d2399e47d052601d05ca82a58272192a6\"\u003e\u003ccode\u003e1f112a5\u003c/code\u003e\u003c/a\u003e [popups] Avoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/bc53db672db4fa17302a95b449b376a7db52a625\"\u003e\u003ccode\u003ebc53db6\u003c/code\u003e\u003c/a\u003e [fieldset] Await render in Legend disabled-state test (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5909\"\u003e#5909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/147092ee55c2e02bcbac2e45b17640d2d317bbb7\"\u003e\u003ccode\u003e147092e\u003c/code\u003e\u003c/a\u003e [test] Strengthen tests, add test lint rules and share copied suites (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5892\"\u003e#5892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mui/base-ui/commits/v1.9.0/packages/react\"\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.104.1 to 5.104.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.104.4\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/TanStack/query/pull/11722\"\u003e#11722\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/0992a9291469d02d677f10a4994b1af0fdb8ac74\"\u003e\u003ccode\u003e0992a92\u003c/code\u003e\u003c/a\u003e - fix(react-query-devtools): create the devtools instance only once instead of on every render\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c8f5eac9df24c3cf987dc23865493ebd0d346caa\"\u003e\u003ccode\u003ec8f5eac\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/b61abc2033f9e2fbf24d6753baedeaa74b2f1c17\"\u003e\u003ccode\u003eb61abc2\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\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.104.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.104.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.104.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\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.104.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.104.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\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.104.4\u003c/li\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.104.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.104.4\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/TanStack/query/pull/11328\"\u003e#11328\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e - Allow queries with falsy errors to retry on mount when \u003ccode\u003ethrowOnError\u003c/code\u003e returns false.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/fce89ddf7a35b14252096ff64a1217efd81b415c\"\u003e\u003ccode\u003efce89dd\u003c/code\u003e\u003c/a\u003e]:\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.104.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.104.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.104.3\u003c/li\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.104.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.104.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.104.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.104.3\u003c/h2\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\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.104.4\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/TanStack/query/pull/11328\"\u003e#11328\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e - Allow queries with falsy errors to retry on mount when \u003ccode\u003ethrowOnError\u003c/code\u003e returns false.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/fce89ddf7a35b14252096ff64a1217efd81b415c\"\u003e\u003ccode\u003efce89dd\u003c/code\u003e\u003c/a\u003e]:\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.104.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.104.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/0f15bc925db5813be6a17527988ec7d7b3c8cfc0\"\u003e\u003ccode\u003e0f15bc9\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.104.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.104.2\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/03e8c3955ddbf20f0a07b79982b52dfad8df5323\"\u003e\u003ccode\u003e03e8c39\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.104.2\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/12199722dc3f7443b7bbb575611dce59cfd08534\"\u003e\u003ccode\u003e1219972\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12062\"\u003e#12062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e fix(query-core): clear mutations before notifying subscribers (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11470\"\u003e#11470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e fix(react-query): retry queries with falsy errors on mount (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11328\"\u003e#11328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11\"\u003e#11\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/ee47993724e5b71e65d9f38ae416367d2dd18395\"\u003e\u003ccode\u003eee47993\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11998\"\u003e#11998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/0f15bc925db5813be6a17527988ec7d7b3c8cfc0\"\u003e\u003ccode\u003e0f15bc9\u003c/code\u003e\u003c/a\u003e fix(query-core): preserve union narrowing in setQueryData updaters (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11935\"\u003e#11935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b699b52d60e10220403673a407d95bcebeba3e81\"\u003e\u003ccode\u003eb699b52\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11849\"\u003e#11849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/e22e7c4a27129457636a2a800f8ce19fc0c7b0e3\"\u003e\u003ccode\u003ee22e7c4\u003c/code\u003e\u003c/a\u003e chore: test TypeScript 7.1 preview and drop 5.6 (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11947\"\u003e#11947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/df78a9d137993546a6d7407b3fd68c1b5429888a\"\u003e\u003ccode\u003edf78a9d\u003c/code\u003e\u003c/a\u003e chore(*): pass the root 'settings' to the package oxlint configs, which 'exte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/833062c2fcf3720f6e0201adb832aa7bd90e3770\"\u003e\u003ccode\u003e833062c\u003c/code\u003e\u003c/a\u003e chore: replace prettier with oxfmt (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11939\"\u003e#11939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/react-query@5.104.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 `better-auth` from 1.7.7 to 1.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/better-auth/better-auth/releases\"\u003ebetter-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.11\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ebetter-auth\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed repeated PostgreSQL migration diffs for \u003ccode\u003eint8\u003c/code\u003e columns. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10719\"\u003e#10719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed database-backed rate limiting returning an excessively large \u003ccode\u003eX-Retry-After\u003c/code\u003e value. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11521\"\u003e#11521\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/better-auth/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/core\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed plugin \u003ccode\u003einit\u003c/code\u003e returns with \u003ccode\u003eoptions: undefined\u003c/code\u003e failing type checks under \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11907\"\u003e#11907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ID token signature and claim validation for Twitch and Paybin sign-in. Custom Paybin issuers must publish RS256 signing keys at \u003ccode\u003e\u0026lt;issuer\u0026gt;/.well-known/jwks.json\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11884\"\u003e#11884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced installation size while preserving OpenTelemetry instrumentation attributes. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11623\"\u003e#11623\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/core/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/oauth-provider\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed OpenAPI schemas for \u003ccode\u003e/oauth2/consent\u003c/code\u003e and \u003ccode\u003e/oauth2/continue\u003c/code\u003e to match their redirect responses. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10881\"\u003e#10881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed CIMD metadata refreshes overwriting concurrent administrator changes to discovered clients. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11830\"\u003e#11830\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/oauth-provider/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/expo\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Expo social account linking with ID tokens when a session cookie is present. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10207\"\u003e#10207\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/expo/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThanks to everyone who contributed to this release:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/aryan1306\"\u003e\u003ccode\u003e@​aryan1306\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bytaesu\"\u003e\u003ccode\u003e@​bytaesu\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cpojer\"\u003e\u003ccode\u003e@​cpojer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/noobnooc\"\u003e\u003ccode\u003e@​noobnooc\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/rendermani\"\u003e\u003ccode\u003e@​rendermani\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/sahiljagtap08\"\u003e\u003ccode\u003e@​sahiljagtap08\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/better-auth/better-auth/compare/v1.7.10...v1.7.11\"\u003e\u003ccode\u003ev1.7.10...v1.7.11\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.10\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ebetter-auth\u003c/code\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/better-auth/better-auth/blob/main/packages/better-auth/CHANGELOG.md\"\u003ebetter-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.11\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/better-auth/better-auth/pull/10719\"\u003e#10719\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/bd65db02c1e7c854dc6090bd1e3885fc0cd55ec8\"\u003e\u003ccode\u003ebd65db0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/rendermani\"\u003e\u003ccode\u003e@​rendermani\u003c/code\u003e\u003c/a\u003e! - Recognize PostgreSQL \u003ccode\u003eint8\u003c/code\u003e as a valid number type in migration diffs. Kysely's introspector reports \u003ccode\u003epg_type.typname\u003c/code\u003e, so Better Auth's own \u003ccode\u003ebigint\u003c/code\u003e columns (such as the database-backed rate limiter's \u003ccode\u003elastRequest\u003c/code\u003e) came back as \u003ccode\u003eint8\u003c/code\u003e and were reported as a type mismatch on every run.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11521\"\u003e#11521\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/37a75c95d148e0db4f29f30cabcd2ceb26bc7085\"\u003e\u003ccode\u003e37a75c9\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aryan1306\"\u003e\u003ccode\u003e@​aryan1306\u003c/code\u003e\u003c/a\u003e! - Fix database-backed rate limiting returning an excessively large \u003ccode\u003eX-Retry-After\u003c/code\u003e header instead of the remaining seconds in the rate-limit window.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/better-auth/better-auth/commit/ce965696d1f8695e96e6b88490fc8ea2f8ab78ae\"\u003e\u003ccode\u003ece96569\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/2f6ca3f370e80081d911a5e95a39393920b6d22e\"\u003e\u003ccode\u003e2f6ca3f\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/dfd8dd287a4cfeb1d3541bb4e004e8f33edce15f\"\u003e\u003ccode\u003edfd8dd2\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/drizzle-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/kysely-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/memory-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/mongo-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/prisma-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/telemetry\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.10\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/better-auth/better-auth/pull/11393\"\u003e#11393\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/eebd47a0e7103caae35e4ac46971e293d1579594\"\u003e\u003ccode\u003eeebd47a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/breken-ai\"\u003e\u003ccode\u003e@​breken-ai\u003c/code\u003e\u003c/a\u003e! - If you use the \u003ccode\u003elastLoginMethod\u003c/code\u003e plugin with \u003ccode\u003eoneTap\u003c/code\u003e, signing in through Google One Tap now records \u003ccode\u003e\u0026quot;google\u0026quot;\u003c/code\u003e, the same value as signing in with the Google button. Before, a One Tap sign-in recorded nothing: the \u003ccode\u003ebetter-auth.last_used_login_method\u003c/code\u003e cookie kept its previous value or stayed unset, and so did \u003ccode\u003euser.lastLoginMethod\u003c/code\u003e with \u003ccode\u003estoreInDatabase\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf your \u003ccode\u003ecustomResolveMethod\u003c/code\u003e includes a \u003ccode\u003e/one-tap/callback\u003c/code\u003e → \u003ccode\u003e\u0026quot;google\u0026quot;\u003c/code\u003e workaround, remove that mapping; keep the resolver if it handles other routes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11821\"\u003e#11821\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/09d07e6feac8c0173551c9cbaee222d403c31fd9\"\u003e\u003ccode\u003e09d07e6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - The Google One Tap prompt (\u003ccode\u003eauthClient.oneTap()\u003c/code\u003e without \u003ccode\u003ebutton\u003c/code\u003e) no longer calls \u003ccode\u003egetSkippedReason()\u003c/code\u003e, which Google's FedCM migration guide says to remove. Before, it called it under any \u003ccode\u003epromptOptions.fedCM\u003c/code\u003e setting.\u003c/p\u003e\n\u003cp\u003eA skipped prompt now ends the flow and calls \u003ccode\u003eonPromptNotification\u003c/code\u003e right away instead of retrying. Google doesn't report why a prompt was skipped, and a prompt the user closed stays hidden for Google's cooldown period, so the retries could not bring it back. Dismissed prompts still retry as before.\u003c/p\u003e\n\u003cp\u003eGoogle Identity Services still logs its FedCM migration warning, because it does so whenever \u003ccode\u003eprompt()\u003c/code\u003e receives a listener. The plugin needs the listener to track dismissals and skips, so the warning is expected and safe to ignore.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11819\"\u003e#11819\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/eaecb7229eeef5cfd763477b12f7dd2e44b89e51\"\u003e\u003ccode\u003eeaecb72\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - Google One Tap now applies your \u003ccode\u003esocialProviders.google.mapProfileToUser\u003c/code\u003e and custom \u003ccode\u003egetUserInfo\u003c/code\u003e, the same as the standard Google sign-in. Before, One Tap ignored both and always stored the token's \u003ccode\u003ename\u003c/code\u003e, \u003ccode\u003eemail\u003c/code\u003e, \u003ccode\u003eemail_verified\u003c/code\u003e, and \u003ccode\u003epicture\u003c/code\u003e claims.\u003c/p\u003e\n\u003cp\u003eIf you configured either one, users created through One Tap now get the fields it returns, including any extra fields such as a first name from \u003ccode\u003egiven_name\u003c/code\u003e. Returning users are updated from it on each One Tap sign-in when \u003ccode\u003esocialProviders.google.overrideUserInfoOnSignIn\u003c/code\u003e is on, and so are existing users that One Tap links when \u003ccode\u003eaccount.accountLinking.updateUserInfoOnLink\u003c/code\u003e is on. Check that your mapper suits One Tap users too.\u003c/p\u003e\n\u003cp\u003eIf you set \u003ccode\u003esocialProviders.google.overrideUserInfoOnSignIn\u003c/code\u003e, One Tap sign-ins now update returning users' name, image, and email from Google, as the redirect sign-in already does.\u003c/p\u003e\n\u003cp\u003eSetups that configure none of these, including \u003ccode\u003eoneTap({ clientId })\u003c/code\u003e with no Google provider, are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11820\"\u003e#11820\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/88c9a378562fcb240085bd803a243062e2d28f47\"\u003e\u003ccode\u003e88c9a37\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - If you set \u003ccode\u003eautoSelect\u003c/code\u003e or \u003ccode\u003ecancelOnTapOutside\u003c/code\u003e on \u003ccode\u003eoneTapClient()\u003c/code\u003e, the One Tap prompt and the Sign in with Google button now use them. Before, only values passed to \u003ccode\u003eauthClient.oneTap()\u003c/code\u003e took effect, so with \u003ccode\u003eautoSelect: true\u003c/code\u003e on the plugin, returning users still had to pick an account. Values passed to \u003ccode\u003eoneTap()\u003c/code\u003e still override the plugin's. Apps that set these options only on \u003ccode\u003eoneTap()\u003c/code\u003e, or not at all, are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11696\"\u003e#11696\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/0cf1f7c6bc7b9870b276fdf7d9f5c38af6dbaa30\"\u003e\u003ccode\u003e0cf1f7c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/drewsephski\"\u003e\u003ccode\u003e@​drewsephski\u003c/code\u003e\u003c/a\u003e! - You can now import the One Tap plugin from \u003ccode\u003ebetter-auth/plugins/one-tap\u003c/code\u003e, as you can for other plugins. Previously this import failed with a \u0026quot;not exported\u0026quot; error. Imports from \u003ccode\u003ebetter-auth/plugins\u003c/code\u003e and \u003ccode\u003ebetter-auth/client/plugins\u003c/code\u003e are unchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11822\"\u003e#11822\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/414e845f128011369b451a3ffd15d8d314351cdb\"\u003e\u003ccode\u003e414e845\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - You can now import the Captcha and OpenAPI plugins from \u003ccode\u003ebetter-auth/plugins/captcha\u003c/code\u003e and \u003ccode\u003ebetter-auth/plugins/open-api\u003c/code\u003e, as you can for other plugins. Previously these imports failed with a \u0026quot;not exported\u0026quot; error. Imports from \u003ccode\u003ebetter-auth/plugins\u003c/code\u003e are unchanged.\u003c/p\u003e\n\u003cp\u003eIf your TypeScript config uses \u003ccode\u003e\u0026quot;moduleResolution\u0026quot;: \u0026quot;node\u0026quot;\u003c/code\u003e (or \u003ccode\u003enode10\u003c/code\u003e), \u003ccode\u003ebetter-auth/plugins/multi-session\u003c/code\u003e and \u003ccode\u003ebetter-auth/test\u003c/code\u003e now resolve their types. Previously TypeScript reported that it could not find their declarations. Projects using \u003ccode\u003ebundler\u003c/code\u003e, \u003ccode\u003enode16\u003c/code\u003e, or \u003ccode\u003enodenext\u003c/code\u003e resolution are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/better-auth/better-auth/commit/fedd05586c5a7ee2eb6b8d16b88b08dfb7e16a89\"\u003e\u003ccode\u003efedd055\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/bbd0a19c30fc384213d1e98b9a8a54a903a0b574\"\u003e\u003ccode\u003ebbd0a19\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/99cdfe7c2e6bb3b8556b1ea8c3a336369cba6976\"\u003e\u003ccode\u003e99cdfe7\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.10\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/mongo-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.10\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/better-auth/better-auth/commit/52ab801cc6550104199bcf70a3f83005e15eb804\"\u003e\u003ccode\u003e52ab801\u003c/code\u003e\u003c/a\u003e chore: release v1.7.11 (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11827\"\u003e#11827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/37a75c95d148e0db4f29f30cabcd2ceb26bc7085\"\u003e\u003ccode\u003e37a75c9\u003c/code\u003e\u003c/a\u003e fix(rate-limit): convert a string lastRequest before computing X-Retry-After ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/bd65db02c1e7c854dc6090bd1e3885fc0cd55ec8\"\u003e\u003ccode\u003ebd65db0\u003c/code\u003e\u003c/a\u003e fix(db): recognize postgres int8 as a number type in migration diffs (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/10719\"\u003e#10719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/b734a418bfade81efd19c3277dc58da6967081b7\"\u003e\u003ccode\u003eb734a41\u003c/code\u003e\u003c/a\u003e chore: release v1.7.10 (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11795\"\u003e#11795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/eebd47a0e7103caae35e4ac46971e293d1579594\"\u003e\u003ccode\u003eeebd47a\u003c/code\u003e\u003c/a\u003e fix(last-login-method): record Google One Tap sign-ins (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11393\"\u003e#11393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/eaecb7229eeef5cfd763477b12f7dd2e44b89e51\"\u003e\u003ccode\u003eeaecb72\u003c/code\u003e\u003c/a\u003e fix(one-tap): apply the Google provider's mapProfileToUser and getUserInfo (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/414e845f128011369b451a3ffd15d8d314351cdb\"\u003e\u003ccode\u003e414e845\u003c/code\u003e\u003c/a\u003e fix(better-auth): keep package subpaths in sync with build entries (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11822\"\u003e#11822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/88c9a378562fcb240085bd803a243062e2d28f47\"\u003e\u003ccode\u003e88c9a37\u003c/code\u003e\u003c/a\u003e fix(one-tap): apply plugin-level autoSelect and cancelOnTapOutside (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11820\"\u003e#11820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/09d07e6feac8c0173551c9cbaee222d403c31fd9\"\u003e\u003ccode\u003e09d07e6\u003c/code\u003e\u003c/a\u003e fix(one-tap): stop calling prompt moment methods unsupported under FedCM (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11\"\u003e#11\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/0cf1f7c6bc7b9870b276fdf7d9f5c38af6dbaa30\"\u003e\u003ccode\u003e0cf1f7c\u003c/code\u003e\u003c/a\u003e fix(one-tap): add the better-auth/plugins/one-tap subpath export (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11696\"\u003e#11696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/better-auth/better-auth/commits/v1.7.11/packages/better-auth\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cn` from 0.4.0 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shadcn-ui/cn/releases\"\u003ecn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecn@0.5.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/157\"\u003e#157\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - Drop Node 20, which reached end of life, and require Node 22 or later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/164\"\u003e#164\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - \u003ccode\u003ecn build\u003c/code\u003e now follows package \u003ccode\u003e@import\u003c/code\u003es, reads \u003ccode\u003e@theme\u003c/code\u003e declarations after nested blocks such as \u003ccode\u003e@keyframes\u003c/code\u003e, and drops names declared before a \u003ccode\u003e--*: initial\u003c/code\u003e reset.\u003c/p\u003e\n\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/shadcn-ui/cn/blob/main/packages/cn/CHANGELOG.md\"\u003ecn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.5.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/157\"\u003e#157\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - Drop Node 20, which reached end of life, and require Node 22 or later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/164\"\u003e#164\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - \u003ccode\u003ecn build\u003c/code\u003e now follows package \u003ccode\u003e@import\u003c/code\u003es, reads \u003ccode\u003e@theme\u003c/code\u003e declarations after nested blocks such as \u003ccode\u003e@keyframes\u003c/code\u003e, and drops names declared before a \u003ccode\u003e--*: initial\u003c/code\u003e reset.\u003c/p\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/shadcn-ui/cn/commit/8ebcbf09d1a3355c235295e804a6126f6f2f069a\"\u003e\u003ccode\u003e8ebcbf0\u003c/code\u003e\u003c/a\u003e chore(release): version packages (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e fix(build): read \u003ca href=\"https://github.com/theme\"\u003e\u003ccode\u003e@​theme\u003c/code\u003e\u003c/a\u003e scales the way Tailwind builds them (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/164\"\u003e#164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/c71bd53a351d99dca12f0808ea7e1c7134ec4945\"\u003e\u003ccode\u003ec71bd53\u003c/code\u003e\u003c/a\u003e chore: migrate tooling to Vite+ (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/156\"\u003e#156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e chore: drop Node 20 (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/shadcn-ui/cn/commits/cn@0.5.0/packages/cn\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lenis` from 1.3.26 to 1.3.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/darkroomengineering/lenis/releases\"\u003elenis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003elenis\u003c/code\u003e class coming back after \u003ccode\u003edestroy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escrollTo()\u003c/code\u003e accepts SVG elements\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/darkroomengineering/lenis/commit/e01eefb1f55cd08bc051521d74f5f8182b71ee9d\"\u003e\u003ccode\u003ee01eefb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/558\"\u003e#558\u003c/a\u003e from darkroomengineering/release/v1.3.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/08868fc1e49d4b076d9efc954b926306b0e20a2f\"\u003e\u003ccode\u003e08868fc\u003c/code\u003e\u003c/a\u003e v1.3.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/1f60fb9199a823f10fb23f7df55011defbb2747a\"\u003e\u003ccode\u003e1f60fb9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/557\"\u003e#557\u003c/a\u003e from darkroomengineering/fix/svg-scroll-targets-v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/ef84677a7a6e89f6c1f6c916c95a52bbcba3950a\"\u003e\u003ccode\u003eef84677\u003c/code\u003e\u003c/a\u003e fix(core): accept SVG elements as scrollTo targets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/ad99a23b682756c5ccafa6dd037ebd795ce2e9b0\"\u003e\u003ccode\u003ead99a23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/542\"\u003e#542\u003c/a\u003e from cipherprofessor/fix/clear-reset-velocity-timeout...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/bc152f90d7c9b04ef372718350e2f616f3c706b2\"\u003e\u003ccode\u003ebc152f9\u003c/code\u003e\u003c/a\u003e chore: point CODEOWNERS at the engineering team (\u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/2e14ce85aa482d869799df4a25a872bb74400676\"\u003e\u003ccode\u003e2e14ce8\u003c/code\u003e\u003c/a\u003e fix(core): clear pending native-scroll velocity timeout on destroy()\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/darkroomengineering/lenis/compare/v1.3.26...v1.3.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 1.49.0 to 1.59.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\"\u003elu...\n\n_Description has been truncated_","html_url":"https://github.com/neilkumar93600/fellow-owner/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/neilkumar93600%2Ffellow-owner/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5964862049","node_id":"PR_kwDOUCC5MM8AAAABJ1s8GQ","number":160,"state":"open","title":"Bump express from 4.22.3 to 5.3.0 in /server","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-10-21T16:56:47.000Z","updated_at":"2026-10-21T16:57:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"/server","ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/owdarlley/sunfood/pull/160","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/owdarlley%2Fsunfood/issues/160","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/160/packages"},{"uuid":"5961050289","node_id":"PR_kwDOUkeKdM8AAAABJyn94w","number":1328,"state":"closed","title":"chore(deps): Bump the root-minor-patch group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T03:53:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T13:04:27.000Z","updated_at":"2026-10-22T03:53:45.000Z","time_to_close":53356,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"root-minor-patch","update_count":39,"packages":[{"name":"eslint","old_version":"10.11.0","new_version":"10.12.0","repository_url":"https://github.com/eslint/eslint"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.71.0","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"vitest","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@anthropic-ai/sdk","old_version":"0.130.0","new_version":"0.133.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@aws-sdk/client-cost-explorer","old_version":"3.1144.0","new_version":"3.1151.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-s3","old_version":"3.1144.0","new_version":"3.1151.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@opentelemetry/exporter-trace-otlp-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/instrumentation-express","old_version":"0.70.0","new_version":"0.71.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js-contrib"},{"name":"@opentelemetry/instrumentation-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/resources","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-node","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-trace-base","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"docx","old_version":"9.8.1","new_version":"9.11.0","repository_url":"https://github.com/dolanmiu/docx"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"marked","old_version":"18.0.14","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"mysql2","old_version":"3.24.5","new_version":"3.24.6","repository_url":"https://github.com/sidorares/node-mysql2"},{"name":"nodemailer","old_version":"10.0.13","new_version":"10.1.1","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"playwright-core","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"safe-regex2","old_version":"5.1.1","new_version":"5.1.2","repository_url":"https://github.com/fastify/safe-regex2"},{"name":"web-tree-sitter","old_version":"0.27.0","new_version":"0.27.1","repository_url":"https://github.com/tree-sitter/tree-sitter"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@huggingface/transformers","old_version":"4.3.0","new_version":"4.3.1","repository_url":"https://github.com/huggingface/transformers.js"},{"name":"supertest","old_version":"7.3.0","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"xml-crypto","old_version":"6.3.2","new_version":"6.3.3","repository_url":"https://github.com/node-saml/xml-crypto"},{"name":"@tanstack/react-query","old_version":"5.104.0","new_version":"5.104.2","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-query-devtools","old_version":"5.104.0","new_version":"5.104.2","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.14.13","new_version":"3.14.19","repository_url":"https://github.com/TanStack/virtual"},{"name":"dompurify","old_version":"3.4.16","new_version":"3.4.17","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"lucide-react","old_version":"1.49.0","new_version":"1.57.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"next","old_version":"16.3.8","new_version":"16.4.0","repository_url":"https://github.com/vercel/next.js"},{"name":"@testing-library/user-event","old_version":"14.6.7","new_version":"14.6.8","repository_url":"https://github.com/testing-library/user-event"},{"name":"@vitejs/plugin-react","old_version":"6.1.1","new_version":"6.1.2","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"jsdom","old_version":"30.1.1","new_version":"30.1.2","repository_url":"https://github.com/jsdom/jsdom"},{"name":"postcss","old_version":"8.5.28","new_version":"8.5.30","repository_url":"https://github.com/postcss/postcss"},{"name":"radix-ui","old_version":"1.6.7","new_version":"1.8.1","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@playwright/test","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"}],"path":null,"ecosystem":"npm"},"body":"Bumps the root-minor-patch group with 39 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint](https://github.com/eslint/eslint) | `10.11.0` | `10.12.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.0` | `8.71.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.2` | `5.0.4` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.2` | `5.0.4` |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.130.0` | `0.133.0` |\n| [@aws-sdk/client-cost-explorer](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-cost-explorer) | `3.1144.0` | `3.1151.0` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1144.0` | `3.1151.0` |\n| [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/instrumentation-express](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-express) | `0.70.0` | `0.71.0` |\n| [@opentelemetry/instrumentation-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [docx](https://github.com/dolanmiu/docx) | `9.8.1` | `9.11.0` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [marked](https://github.com/markedjs/marked) | `18.0.14` | `18.1.1` |\n| [mysql2](https://github.com/sidorares/node-mysql2) | `3.24.5` | `3.24.6` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.13` | `10.1.1` |\n| [playwright-core](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n| [safe-regex2](https://github.com/fastify/safe-regex2) | `5.1.1` | `5.1.2` |\n| [web-tree-sitter](https://github.com/tree-sitter/tree-sitter/tree/HEAD/lib/binding_web) | `0.27.0` | `0.27.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@huggingface/transformers](https://github.com/huggingface/transformers.js) | `4.3.0` | `4.3.1` |\n| [supertest](https://github.com/ladjs/supertest) | `7.3.0` | `7.3.1` |\n| [xml-crypto](https://github.com/node-saml/xml-crypto) | `6.3.2` | `6.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.0` | `5.104.2` |\n| [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.104.0` | `5.104.2` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.14.13` | `3.14.19` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.16` | `3.4.17` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.49.0` | `1.57.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.8` | `16.4.0` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.7` | `14.6.8` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.1.1` | `6.1.2` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.1` | `30.1.2` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.28` | `8.5.30` |\n| [radix-ui](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/radix-ui) | `1.6.7` | `1.8.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n\n\nUpdates `eslint` from 10.11.0 to 10.12.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.12.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4618052eed6bb3ef420cf0db0490bbda2fd835a5\"\u003e\u003ccode\u003e4618052\u003c/code\u003e\u003c/a\u003e feat: handle astral letters in \u003ccode\u003enew-cap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21357\"\u003e#21357\u003c/a\u003e) (sary)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4ec5168d6d6888e3f7b163eb82963d40e45a75fa\"\u003e\u003ccode\u003e4ec5168\u003c/code\u003e\u003c/a\u003e feat: allow \u003ccode\u003eSourceCode#getText()\u003c/code\u003e to accept tokens and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21340\"\u003e#21340\u003c/a\u003e) (electrohyun)\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/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7\"\u003e\u003ccode\u003ebc51eee\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eprefer-arrow-callback\u003c/code\u003e false positive in conditional test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21373\"\u003e#21373\u003c/a\u003e) (Daniel Pinto)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bbff86c41521cc435e20754e26007f657a843038\"\u003e\u003ccode\u003ebbff86c\u003c/code\u003e\u003c/a\u003e fix: skip lines with multiple comments in \u003ccode\u003emax-lines-per-function\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21332\"\u003e#21332\u003c/a\u003e) (xbinaryx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/efc4d6bdc4c4d1dfba8bdab6a8f44f27a1b1d00a\"\u003e\u003ccode\u003eefc4d6b\u003c/code\u003e\u003c/a\u003e fix: astral letters in \u003ccode\u003econsistent-return\u003c/code\u003e, \u003ccode\u003eno-eval\u003c/code\u003e, \u003ccode\u003eno-invalid-this\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21360\"\u003e#21360\u003c/a\u003e) (lumir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/93de066d4125f8df013d40305e8009f4634a5cba\"\u003e\u003ccode\u003e93de066\u003c/code\u003e\u003c/a\u003e fix: prefer-exponentiation-operator autofix for async function base (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21322\"\u003e#21322\u003c/a\u003e) (Vladimir Babin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/02e34ffba6adbed72365177c7caee71d950834e5\"\u003e\u003ccode\u003e02e34ff\u003c/code\u003e\u003c/a\u003e fix: add missing space after \u003ccode\u003eelse\u003c/code\u003e in \u003ccode\u003ecurly\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21355\"\u003e#21355\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b14b8bc213ccfc19d3edcfa9ce6af62622661160\"\u003e\u003ccode\u003eb14b8bc\u003c/code\u003e\u003c/a\u003e fix: correct \u003ccode\u003eid-length\u003c/code\u003e message for long private names (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21348\"\u003e#21348\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/69aac01d898837a934c9e735e0b7881cc1df09e8\"\u003e\u003ccode\u003e69aac01\u003c/code\u003e\u003c/a\u003e fix: support \u003ccode\u003eTSFunctionType\u003c/code\u003e in \u003ccode\u003egetFunctionHeadLoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21335\"\u003e#21335\u003c/a\u003e) (xbinaryx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/686630eb34ec1cddf399a4e6eaeebb080116a532\"\u003e\u003ccode\u003e686630e\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eno-loss-of-precision\u003c/code\u003e false positive with \u003ccode\u003e0.e5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21337\"\u003e#21337\u003c/a\u003e) (sethamus)\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/67eb586e2eda290813b329d4f40e605ad696bc4f\"\u003e\u003ccode\u003e67eb586\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5370d7ee35a6523873f798e87f3ccc73779d5d21\"\u003e\u003ccode\u003e5370d7e\u003c/code\u003e\u003c/a\u003e docs: clarify \u003ccode\u003eone-var\u003c/code\u003e \u003ccode\u003eseparateRequires\u003c/code\u003e matches any \u003ccode\u003erequire()\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21192\"\u003e#21192\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8816c1ddfcfa31318ad17cddcfb68acffa30940f\"\u003e\u003ccode\u003e8816c1d\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d2e7cedb7409d8a2c5f2c2fafb14fa22790e40e\"\u003e\u003ccode\u003e3d2e7ce\u003c/code\u003e\u003c/a\u003e docs: fix typo in no-unused-expressions documentation (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21346\"\u003e#21346\u003c/a\u003e) (bytedoe)\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/152067f0f81f08b6cce9cf8eeaddb8558731b4f6\"\u003e\u003ccode\u003e152067f\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21362\"\u003e#21362\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b56d58e0b1f3c919a6b7661254af760cdd909d6e\"\u003e\u003ccode\u003eb56d58e\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.2 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21376\"\u003e#21376\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bfaea12ddc30b458fe4cfbb6c306a62b5299c177\"\u003e\u003ccode\u003ebfaea12\u003c/code\u003e\u003c/a\u003e perf: cache normalized config globals per languageOptions (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21364\"\u003e#21364\u003c/a\u003e) (James Ross)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/322209ef164e8a00a25ec7ca166969ddc853355c\"\u003e\u003ccode\u003e322209e\u003c/code\u003e\u003c/a\u003e ci: avoid Nx cache in ecosystem tests and disable failing test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21369\"\u003e#21369\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d166567901e09940c1de4ad0e95d572eeab5c927\"\u003e\u003ccode\u003ed166567\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.9 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21371\"\u003e#21371\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/29585ceba7ad35368d1b763bd1e80d899f28842c\"\u003e\u003ccode\u003e29585ce\u003c/code\u003e\u003c/a\u003e chore: update dependency eslint-plugin-expect-type to ^0.7.0 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21359\"\u003e#21359\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39d79ba9650542ac66d585d1899304abd630c07d\"\u003e\u003ccode\u003e39d79ba\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.1 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21354\"\u003e#21354\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/182a6e993a8a5dbdad5a628b69ad7382d48bf24f\"\u003e\u003ccode\u003e182a6e9\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.8 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21352\"\u003e#21352\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f995127230dad258069c29b7f51971681bd53f00\"\u003e\u003ccode\u003ef995127\u003c/code\u003e\u003c/a\u003e chore: remove CLAUDE.md in favor of AGENTS.md (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21339\"\u003e#21339\u003c/a\u003e) (Jarren)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b95fb6cb335f82a0ccabb0944ac3b89c703bd947\"\u003e\u003ccode\u003eb95fb6c\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21347\"\u003e#21347\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3782dd458fdfbe492e600d9a54b295a9721ed815\"\u003e\u003ccode\u003e3782dd4\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21342\"\u003e#21342\u003c/a\u003e) (ESLint Bot)\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/a438ec39512c3381f4785a1f3058982ce9845970\"\u003e\u003ccode\u003ea438ec3\u003c/code\u003e\u003c/a\u003e 10.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/32a73f144198510e23c40c5ca6808e2c09b7e5e5\"\u003e\u003ccode\u003e32a73f1\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7\"\u003e\u003ccode\u003ebc51eee\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eprefer-arrow-callback\u003c/code\u003e false positive in conditional test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21373\"\u003e#21373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bbff86c41521cc435e20754e26007f657a843038\"\u003e\u003ccode\u003ebbff86c\u003c/code\u003e\u003c/a\u003e fix: skip lines with multiple comments in \u003ccode\u003emax-lines-per-function\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21332\"\u003e#21332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/152067f0f81f08b6cce9cf8eeaddb8558731b4f6\"\u003e\u003ccode\u003e152067f\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21362\"\u003e#21362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b56d58e0b1f3c919a6b7661254af760cdd909d6e\"\u003e\u003ccode\u003eb56d58e\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.2 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21376\"\u003e#21376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/67eb586e2eda290813b329d4f40e605ad696bc4f\"\u003e\u003ccode\u003e67eb586\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bfaea12ddc30b458fe4cfbb6c306a62b5299c177\"\u003e\u003ccode\u003ebfaea12\u003c/code\u003e\u003c/a\u003e perf: cache normalized config globals per languageOptions (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21364\"\u003e#21364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/322209ef164e8a00a25ec7ca166969ddc853355c\"\u003e\u003ccode\u003e322209e\u003c/code\u003e\u003c/a\u003e ci: avoid Nx cache in ecosystem tests and disable failing test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d166567901e09940c1de4ad0e95d572eeab5c927\"\u003e\u003ccode\u003ed166567\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.9 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.11.0...v10.12.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.9.9 to 3.9.10\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.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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.10/CHANGELOG.md#3910\"\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.10\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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\u003eSee \u003ca href=\"https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\"\u003ehttps://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\u003c/a\u003e for details.\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/prettier/prettier/commit/1172b82c295c4f889fd787dc6c78c3e194ebf353\"\u003e\u003ccode\u003e1172b82\u003c/code\u003e\u003c/a\u003e Release 3.9.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d0142273aff2c76f8a69785d42ee2cedc4b0aaa3\"\u003e\u003ccode\u003ed014227\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on perfor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/953b9084329dcd06ed1072a04b333f1e6e9371e8\"\u003e\u003ccode\u003e953b908\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.9.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ad8a6bf4fa23c42fd114683fec43b28a11bd24af\"\u003e\u003ccode\u003ead8a6bf\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.71.0 to 8.71.2\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.71.2\u003c/h2\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] avoid false-positives when not using our parser (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12989\"\u003e#12989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type templates (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12974\"\u003e#12974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] ignore type-only refs for after-used (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12977\"\u003e#12977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] parenthesize constraint in optional tuple elements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12995\"\u003e#12995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] safe fix when the chain ends with a strict null comparison (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12805\"\u003e#12805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match linked packages and packages with missing version in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12948\"\u003e#12948\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAbraham Guo\u003c/li\u003e\n\u003cli\u003eBrad Zacher \u003ca href=\"https://github.com/bradzacher\"\u003e\u003ccode\u003e@​bradzacher\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eVinccool96\u003c/li\u003e\n\u003cli\u003eYounsang Na \u003ca href=\"https://github.com/nayounsang\"\u003e\u003ccode\u003e@​nayounsang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.2\"\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.71.1\u003c/h2\u003e\n\u003ch2\u003e8.71.1 (2026-10-05)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-misused-promises] skip argument checks for calls without arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12923\"\u003e#12923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] report usedOnlyAsType for partially exported merged declarations (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12892\"\u003e#12892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] use array argument type constraint (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-enum-assignment] skip identical types and bound deep type walks (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12957\"\u003e#12957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-confusing-void-expression] don't autofix when declared return type is unknown (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] check the constrained type (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12953\"\u003e#12953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type constraints (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12941\"\u003e#12941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eproject-service:\u003c/strong\u003e throttle cleanup when opening files (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12934\"\u003e#12934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match re-exports and global declarations in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12943\"\u003e#12943\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiptajoy Mistry \u003ca href=\"https://github.com/diptomistry\"\u003e\u003ccode\u003e@​diptomistry\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eMedhansh Poojari\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\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/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.2\"\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.71.1 (2026-10-05)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.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\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/typescript-eslint/typescript-eslint/commit/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb\"\u003e\u003ccode\u003e7488d68\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/d57b8da272375b6a45270639894a793933208a91\"\u003e\u003ccode\u003ed57b8da\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.2/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitest/coverage-v8` from 5.0.2 to 5.0.4\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\"\u003e@​vitest/coverage-v8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eClose the mock route interception race  -  by \u003ca href=\"https://github.com/cplieger\"\u003e\u003ccode\u003e@​cplieger\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/8339\"\u003evitest-dev/vitest#8339\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11083\"\u003evitest-dev/vitest#11083\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d6620fae6\"\u003e\u003c!-- raw HTML omitted --\u003e(d6620)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow toHaveTextContent without arguments  -  by \u003ca href=\"https://github.com/nomadical\"\u003e\u003ccode\u003e@​nomadical\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11425\"\u003evitest-dev/vitest#11425\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8ebcf5f8a\"\u003e\u003c!-- raw HTML omitted --\u003e(8ebcf)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply API options without browser config  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10852\"\u003evitest-dev/vitest#10852\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad055837b\"\u003e\u003c!-- raw HTML omitted --\u003e(ad055)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve undefined command arguments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11497\"\u003evitest-dev/vitest#11497\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1576d3d89\"\u003e\u003c!-- raw HTML omitted --\u003e(1576d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for setup mocks before importing a test file  -  by \u003ca href=\"https://github.com/kasperpeulen\"\u003e\u003ccode\u003e@​kasperpeulen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11520\"\u003evitest-dev/vitest#11520\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b61d1ced3\"\u003e\u003c!-- raw HTML omitted --\u003e(b61d1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid extra scroll outside the iframe  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11523\"\u003evitest-dev/vitest#11523\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/662e8a363\"\u003e\u003c!-- raw HTML omitted --\u003e(662e8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun browser instances as workers  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11525\"\u003evitest-dev/vitest#11525\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc\"\u003e\u003c!-- raw HTML omitted --\u003e(bf04b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ This can degrade performance if you have a custom \u003ccode\u003emaxWorkers\u003c/code\u003e setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen one cdp session per tester  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11542\"\u003evitest-dev/vitest#11542\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/69e6369f6\"\u003e\u003c!-- raw HTML omitted --\u003e(69e63)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up unmocked and pending mocks  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11537\"\u003evitest-dev/vitest#11537\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c9552173\"\u003e\u003c!-- raw HTML omitted --\u003e(5c955)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecoverage\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eV8 browser memory leak between test files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11466\"\u003evitest-dev/vitest#11466\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a8\"\u003e\u003c!-- raw HTML omitted --\u003e(2297d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11513\"\u003evitest-dev/vitest#11513\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a93\"\u003e\u003c!-- raw HTML omitted --\u003e(4ef00)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFilenames containing brackets incorrectly showing as uncovered  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11531\"\u003evitest-dev/vitest#11531\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c\"\u003e\u003c!-- raw HTML omitted --\u003e(0fa80)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIstanbul coverage wrong when module transform warmups  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11529\"\u003evitest-dev/vitest#11529\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9f61dcca2\"\u003e\u003c!-- raw HTML omitted --\u003e(9f61d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eUpdate all non-major dependencies  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11167\"\u003evitest-dev/vitest#11167\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9\"\u003e\u003c!-- raw HTML omitted --\u003e(c74e0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexpect\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMap\u003c/code\u003e and \u003ccode\u003eSet\u003c/code\u003e deep equality in some assertions  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11402\"\u003evitest-dev/vitest#11402\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b4e79fd7a\"\u003e\u003c!-- raw HTML omitted --\u003e(b4e79)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck value in chai-style returned  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11500\"\u003evitest-dev/vitest#11500\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1aca02a21\"\u003e\u003c!-- raw HTML omitted --\u003e(1aca0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emocker\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix native loader mocking edge cases  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11540\"\u003evitest-dev/vitest#11540\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/cd423ba04\"\u003e\u003c!-- raw HTML omitted --\u003e(cd423)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epretty-format\u003c/strong\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/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a854968d2ffee6025700c69099e6b7f80\"\u003e\u003ccode\u003e2297d93\u003c/code\u003e\u003c/a\u003e fix(coverage): v8 browser memory leak between test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11466\"\u003e#11466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9d17e24e9816878165af4818df84a631\"\u003e\u003ccode\u003ec74e099\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11167\"\u003e#11167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/33cadea62e8763c455c7fca38d9ab1dda87c5f75\"\u003e\u003ccode\u003e33cadea\u003c/code\u003e\u003c/a\u003e chore: release v5.0.3 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11409\"\u003e#11409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/a029e76a9e72ebdd468452ee1bb788bbe5dc635e\"\u003e\u003ccode\u003ea029e76\u003c/code\u003e\u003c/a\u003e chore: migrate to oxc (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11367\"\u003e#11367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.4/packages/coverage-v8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 5.0.2 to 5.0.4\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\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eClose the mock route interception race  -  by \u003ca href=\"https://github.com/cplieger\"\u003e\u003ccode\u003e@​cplieger\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/8339\"\u003evitest-dev/vitest#8339\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11083\"\u003evitest-dev/vitest#11083\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d6620fae6\"\u003e\u003c!-- raw HTML omitted --\u003e(d6620)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow toHaveTextContent without arguments  -  by \u003ca href=\"https://github.com/nomadical\"\u003e\u003ccode\u003e@​nomadical\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11425\"\u003evitest-dev/vitest#11425\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8ebcf5f8a\"\u003e\u003c!-- raw HTML omitted --\u003e(8ebcf)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply API options without browser config  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10852\"\u003evitest-dev/vitest#10852\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad055837b\"\u003e\u003c!-- raw HTML omitted --\u003e(ad055)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve undefined command arguments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11497\"\u003evitest-dev/vitest#11497\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1576d3d89\"\u003e\u003c!-- raw HTML omitted --\u003e(1576d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for setup mocks before importing a test file  -  by \u003ca href=\"https://github.com/kasperpeulen\"\u003e\u003ccode\u003e@​kasperpeulen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11520\"\u003evitest-dev/vitest#11520\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b61d1ced3\"\u003e\u003c!-- raw HTML omitted --\u003e(b61d1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid extra scroll outside the iframe  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11523\"\u003evitest-dev/vitest#11523\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/662e8a363\"\u003e\u003c!-- raw HTML omitted --\u003e(662e8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun browser instances as workers  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11525\"\u003evitest-dev/vitest#11525\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc\"\u003e\u003c!-- raw HTML omitted --\u003e(bf04b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ This can degrade performance if you have a custom \u003ccode\u003emaxWorkers\u003c/code\u003e setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen one cdp session per tester  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11542\"\u003evitest-dev/vitest#11542\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/69e6369f6\"\u003e\u003c!-- raw HTML omitted --\u003e(69e63)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up unmocked and pending mocks  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11537\"\u003evitest-dev/vitest#11537\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c9552173\"\u003e\u003c!-- raw HTML omitted --\u003e(5c955)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecoverage\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eV8 browser memory leak between test files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11466\"\u003evitest-dev/vitest#11466\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a8\"\u003e\u003c!-- raw HTML omitted --\u003e(2297d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11513\"\u003evitest-dev/vitest#11513\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a93\"\u003e\u003c!-- raw HTML omitted --\u003e(4ef00)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFilenames containing brackets incorrectly showing as uncovered  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11531\"\u003evitest-dev/vitest#11531\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c\"\u003e\u003c!-- raw HTML omitted --\u003e(0fa80)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIstanbul coverage wrong when module transform warmups  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11529\"\u003evitest-dev/vitest#11529\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9f61dcca2\"\u003e\u003c!-- raw HTML omitted --\u003e(9f61d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eUpdate all non-major dependencies  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11167\"\u003evitest-dev/vitest#11167\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9\"\u003e\u003c!-- raw HTML omitted --\u003e(c74e0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexpect\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMap\u003c/code\u003e and \u003ccode\u003eSet\u003c/code\u003e deep equality in some assertions  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11402\"\u003evitest-dev/vitest#11402\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b4e79fd7a\"\u003e\u003c!-- raw HTML omitted --\u003e(b4e79)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck value in chai-style returned  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11500\"\u003evitest-dev/vitest#11500\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1aca02a21\"\u003e\u003c!-- raw HTML omitted --\u003e(1aca0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emocker\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix native loader mocking edge cases  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11540\"\u003evitest-dev/vitest#11540\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/cd423ba04\"\u003e\u003c!-- raw HTML omitted --\u003e(cd423)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epretty-format\u003c/strong\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/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/58c86edb92ec4d470dc87c060002cbd5725900de\"\u003e\u003ccode\u003e58c86ed\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11550\"\u003e#11550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c2afa3429ead7f357f0ad266b39b240a\"\u003e\u003ccode\u003e0fa80f5\u003c/code\u003e\u003c/a\u003e fix(coverage): filenames containing brackets incorrectly showing as uncovered...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc7235949e63490d310cdca00e61b3e4a\"\u003e\u003ccode\u003ebf04b9c\u003c/code\u003e\u003c/a\u003e fix(browser): run browser instances as workers (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11525\"\u003e#11525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/3e3624c5e5ecf77b20065da1aeb60f1182db0ccd\"\u003e\u003ccode\u003e3e3624c\u003c/code\u003e\u003c/a\u003e refactor: resolve maxWorkers once in config (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11524\"\u003e#11524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f7936e04ec2591ad1d9b3500642423ba8ce\"\u003e\u003ccode\u003e26642f7\u003c/code\u003e\u003c/a\u003e fix: respect root in projects (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11521\"\u003e#11521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8419ca4ea14a8808aedc8b0120111f81\"\u003e\u003ccode\u003ec06012a\u003c/code\u003e\u003c/a\u003e feat(experimental): add an option to cache dependencies instead of statically...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a938ca3e54eee1c8dd02e2eb9b1afff0c3\"\u003e\u003ccode\u003e4ef000a\u003c/code\u003e\u003c/a\u003e fix(coverage): \u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11513\"\u003e#11513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d5e979299601a8c7fd13fb0f78e74495\"\u003e\u003ccode\u003e1da6640\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003etest.ui.theme\u003c/code\u003e option (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11499\"\u003e#11499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/b618afd5cce6a903ca16e0dd9c8f00b58bb0b474\"\u003e\u003ccode\u003eb618afd\u003c/code\u003e\u003c/a\u003e fix(vm): bind \u003ccode\u003ethis\u003c/code\u003e to \u003ccode\u003emodule.exports\u003c/code\u003e (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11504\"\u003e#11504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.4/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@anthropic-ai/sdk` from 0.130.0 to 0.133.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.133.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add types for the Chat and Cowork unified analytics metrics\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add workflows, multiagent configuration and thread status filtering to Managed Agents\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk-v0.132.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw before sending a request with an empty path parameter\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e check that pull requests update the changelog\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e publish every package from the publish workflow\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e note that listing Claude Console spend limits is in early access\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esplit CLAUDE.md into shared, TypeScript, and repository rules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.132.0\u003c/h2\u003e\n\u003ch2\u003e0.132.0 (2026-10-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.131.0...sdk-v0.132.0\"\u003esdk-v0.131.0...sdk-v0.132.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-haiku-5-5 and typed computer and browser toolset tool calls (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1fd826175b5742df1dc9fd69db708be1434fdc15\"\u003e1fd8261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add disabled to thinking types in model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add display_name to RBAC roles and deprecate name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7735ac3d2823c6d74377269772a5ae2b1ed939dc\"\u003e7735ac3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add include_default parameter to list workspaces (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c4019df3ad38e1ce985c1d8177c815ae36528d61\"\u003ec4019df\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add lifecycle stage fields and filter to /v1/models (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/fe8a762e0cdbc01aa2b4161865f44cdab70f502c\"\u003efe8a762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add line to model objects (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/018aed463f7125ef7c8ee6eec2fd3610be585cc4\"\u003e018aed4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add url_sources to the Managed Agents web_fetch tool config (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web search and code execution support to model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e send the beta header by default when listing spend limits (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8f58ca41ae4097e82fe0efccfae94e0b7c5719b1\"\u003e8f58ca4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw when a JSONL stream is iterated twice (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/a34266cf1ed3483eae7d44d275f761ab29d79748\"\u003ea34266c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e keep a local edit made after a memory upload whose response was lost (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/893\"\u003e#893\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\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/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\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.1...sdk-v0.133.0\"\u003e0.133.0\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add types for the Chat and Cowork unified analytics metrics\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add workflows, multiagent configuration and thread status filtering to Managed Agents\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.0...sdk-v0.132.1\"\u003e0.132.1\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw before sending a request with an empty path parameter\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e check that pull requests update the changelog\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e publish every package from the publish workflow\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e note that listing Claude Console spend limits is in early access\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esplit CLAUDE.md into shared, TypeScript, and repository rules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.0 (2026-10-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.131.0...sdk-v0.132.0\"\u003esdk-v0.131.0...sdk-v0.132.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-haiku-5-5 and typed computer and browser toolset tool calls (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1fd826175b5742df1dc9fd69db708be1434fdc15\"\u003e1fd8261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add disabled to thinking types in model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add display_name to RBAC roles and deprecate name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7735ac3d2823c6d74377269772a5ae2b1ed939dc\"\u003e7735ac3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add include_default parameter to list workspaces (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c4019df3ad38e1ce985c1d8177c815ae36528d61\"\u003ec4019df\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add lifecycle stage fields and filter to /v1/models (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/fe8a762e0cdbc01aa2b4161865f44cdab70f502c\"\u003efe8a762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add line to model objects (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/018aed463f7125ef7c8ee6eec2fd3610be585cc4\"\u003e018aed4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add url_sources to the Managed Agents web_fetch tool config (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web search and code execution support to model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e send the beta header by default when listing spend limits (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8f58ca41ae4097e82fe0efccfae94e0b7c5719b1\"\u003e8f58ca4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw when a JSONL stream is iterated twice (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/a34266cf1ed3483eae7d44d275f761ab29d79748\"\u003ea34266c\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/anthropics/anthropic-sdk-typescript/commit/2979ed5cef4b2f059b95af23e08728c01e588f86\"\u003e\u003ccode\u003e2979ed5\u003c/code\u003e\u003c/a\u003e release: . 0.133.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8486d9bd224fb0c53fca05f54c5f9df5ed29b38f\"\u003e\u003ccode\u003e8486d9b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/908\"\u003e#908\u003c/a\u003e from anthropics/synced/published\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/e0995e4bdea11b383c3df0882888045cc2a25636\"\u003e\u003ccode\u003ee0995e4\u003c/code\u003e\u003c/a\u003e feat(api): add workflows, multiagent configuration and thread status filterin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/31eb3bea68ead3e8935aeef673a2b419c0e43002\"\u003e\u003ccode\u003e31eb3be\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/5127b320bd571d40e78f1cec50a0f81d14e560ce\"\u003e\u003ccode\u003e5127b32\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f702a46d872f8c27c7f641e34217447e86139dec\"\u003e\u003ccode\u003ef702a46\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d64e976b4e36539865928bc048eaee821d60f935\"\u003e\u003ccode\u003ed64e976\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/9f754653fd2acab2b49d626552132c7711c1125f\"\u003e\u003ccode\u003e9f75465\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/6ec2ea17ac78fa99452afaea2c78783bd6e55870\"\u003e\u003ccode\u003e6ec2ea1\u003c/code\u003e\u003c/a\u003e chore(internal): remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/373c33dedf525512d376bccdf16f7ab50f9ef39e\"\u003e\u003ccode\u003e373c33d\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.130.0...sdk-v0.133.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-cost-explorer` from 3.1144.0 to 3.1151.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease note...\n\n_Description has been truncated_","html_url":"https://github.com/openzigs/metis/pull/1328","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzigs%2Fmetis/issues/1328","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1328/packages"},{"uuid":"5960877433","node_id":"PR_kwDOVSMAUc8AAAABJye9CA","number":8,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-22T05:32:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T12:53:48.000Z","updated_at":"2026-10-22T05:32:49.000Z","time_to_close":59938,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/9174pradeep/memory-game/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/9174pradeep%2Fmemory-game/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"5958587330","node_id":"PR_kwDOKtSG8M8AAAABJwo5Ng","number":935,"state":"closed","title":"chore(deps): bump express from 5.2.1 to 5.3.0","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T12:18:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T10:14:44.000Z","updated_at":"2026-10-22T12:18:39.000Z","time_to_close":93803,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/navikt/pensjon-verdande/pull/935","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-verdande/issues/935","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/935/packages"},{"uuid":"5935089202","node_id":"PR_kwDOS189Hc8AAAABJd7EsQ","number":72,"state":"open","title":"chore(deps): bump the all-backend-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-20T02:54:14.000Z","updated_at":"2026-10-20T02:54:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-backend-deps","update_count":14,"packages":[{"name":"@sentry/node","old_version":"11.4.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"body-parser","old_version":"1.20.8","new_version":"2.3.0","repository_url":"https://github.com/expressjs/body-parser"},{"name":"dotenv","old_version":"18.0.5","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"@types/express","old_version":"4.17.25","new_version":"5.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"nodemailer","old_version":"10.0.14","new_version":"10.1.2","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@types/express","old_version":"4.17.25","new_version":"5.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"26.6.4","new_version":"26.6.5","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"eslint","old_version":"10.12.0","new_version":"10.13.0","repository_url":"https://github.com/eslint/eslint"},{"name":"typescript","old_version":"6.0.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.71.0","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-backend-deps group with 14 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@sentry/node](https://github.com/getsentry/sentry-javascript) | `11.4.0` | `11.8.0` |\n| [body-parser](https://github.com/expressjs/body-parser) | `1.20.8` | `2.3.0` |\n| [dotenv](https://github.com/motdotla/dotenv) | `18.0.5` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.3` | `5.3.0` |\n| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) | `4.17.25` | `5.0.6` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.14` | `10.1.2` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) | `4.17.25` | `5.0.6` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.6.4` | `26.6.5` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.3` | `5.0.5` |\n| [eslint](https://github.com/eslint/eslint) | `10.12.0` | `10.13.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.0` | `8.71.2` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n\n\nUpdates `@sentry/node` from 11.4.0 to 11.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-javascript/releases\"\u003e@​sentry/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.8.0\u003c/h2\u003e\n\u003ch3\u003eImportant Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(bundler-plugins): Release \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/vite-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/rollup-plugin\u003c/code\u003e and \u003ccode\u003e@sentry/esbuild-plugin\u003c/code\u003e from the SDK repository (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25095\"\u003e#25095\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching \u003ccode\u003e@sentry/bundler-plugins\u003c/code\u003e entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js 20.19.0 or higher is required.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e requires webpack 5.1 or higher. The \u003ccode\u003e@sentry/webpack-plugin/webpack5\u003c/code\u003e entry point still works and exports the same plugin as \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe plugins use the \u003ccode\u003esentry\u003c/code\u003e CLI SDK instead of \u003ccode\u003e@sentry/cli\u003c/code\u003e. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work.\u003c/li\u003e\n\u003cli\u003eDeploys that the plugins create on Vercel use the value of \u003ccode\u003eVERCEL_TARGET_ENV\u003c/code\u003e (\u003ccode\u003eproduction\u003c/code\u003e, \u003ccode\u003epreview\u003c/code\u003e or a custom name) as their environment, instead of \u003ccode\u003evercel-production\u003c/code\u003e or \u003ccode\u003evercel-preview\u003c/code\u003e. To keep the old value, set \u003ccode\u003erelease.deploy.env\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(server-utils): Instrument the OpenAI decisions API as \u003ccode\u003egen_ai.decide\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25285\"\u003e#25285\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOpenAI \u003ccode\u003edecisions.create\u003c/code\u003e calls now create \u003ccode\u003egen_ai.decide\u003c/code\u003e spans.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Delete generated source maps for static output (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25310\"\u003e#25310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Upload source maps of Astro 7's prerender build (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25309\"\u003e#25309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(hono): Expose runtime-specific SDK options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(node): Instrument Prisma 8 CollectionBase from rc.15 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25301\"\u003e#25301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(nuxt): Skip 3xx/4xx Nuxt errors in the vue:error hook (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25341\"\u003e#25341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Read pi-durable 1.2.0 tool results from \u003ccode\u003eoutput\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25312\"\u003e#25312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Transform modules once when two Sentry Vite plugins add orchestrion (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25043\"\u003e#25043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Keep parametrized route names in Nitro 3 builds (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25307\"\u003e#25307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Rewrite source paths of split route modules (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25361\"\u003e#25361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003echore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Install the pnpm version that Volta pins (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25287\"\u003e#25287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elicense: Add cli FSL notice to package licenses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25314\"\u003e#25314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(core): use shared MCP attribute conventions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25059\"\u003e#25059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(tanstackstart-react): Reuse shared component annotation options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25313\"\u003e#25313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(browser): Keep whitespace text out of the handlers-lcp page (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25280\"\u003e#25280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bun): Restore \u003ccode\u003e@​sentry/core\u003c/code\u003e spies after the Bun.serve tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25276\"\u003e#25276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-decisions-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25331\"\u003e#25331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/24824\"\u003e#24824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add nuxt-5-sourcemaps test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25268\"\u003e#25268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Use an external host address for the Lambda DSN on loopback hostnames (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Run nextjs-16-tunnel on Cloudflare (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25161\"\u003e#25161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Switch DEBUG_BUILD with a getter instead of re-importing the SDK (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25279\"\u003e#25279\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/getsentry/sentry-javascript/blob/develop/CHANGELOG.md\"\u003e@​sentry/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.8.0\u003c/h2\u003e\n\u003ch3\u003eImportant Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(bundler-plugins): Release \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/vite-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/rollup-plugin\u003c/code\u003e and \u003ccode\u003e@sentry/esbuild-plugin\u003c/code\u003e from the SDK repository (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25095\"\u003e#25095\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching \u003ccode\u003e@sentry/bundler-plugins\u003c/code\u003e entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js 20.19.0 or higher is required.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e requires webpack 5.1 or higher. The \u003ccode\u003e@sentry/webpack-plugin/webpack5\u003c/code\u003e entry point still works and exports the same plugin as \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe plugins use the \u003ccode\u003esentry\u003c/code\u003e CLI SDK instead of \u003ccode\u003e@sentry/cli\u003c/code\u003e. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work.\u003c/li\u003e\n\u003cli\u003eDeploys that the plugins create on Vercel use the value of \u003ccode\u003eVERCEL_TARGET_ENV\u003c/code\u003e (\u003ccode\u003eproduction\u003c/code\u003e, \u003ccode\u003epreview\u003c/code\u003e or a custom name) as their environment, instead of \u003ccode\u003evercel-production\u003c/code\u003e or \u003ccode\u003evercel-preview\u003c/code\u003e. To keep the old value, set \u003ccode\u003erelease.deploy.env\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(server-utils): Instrument the OpenAI decisions API as \u003ccode\u003egen_ai.decide\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25285\"\u003e#25285\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOpenAI \u003ccode\u003edecisions.create\u003c/code\u003e calls now create \u003ccode\u003egen_ai.decide\u003c/code\u003e spans.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Delete generated source maps for static output (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25310\"\u003e#25310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Upload source maps of Astro 7's prerender build (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25309\"\u003e#25309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(hono): Expose runtime-specific SDK options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(node): Instrument Prisma 8 CollectionBase from rc.15 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25301\"\u003e#25301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(nuxt): Skip 3xx/4xx Nuxt errors in the vue:error hook (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25341\"\u003e#25341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Read pi-durable 1.2.0 tool results from \u003ccode\u003eoutput\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25312\"\u003e#25312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Transform modules once when two Sentry Vite plugins add orchestrion (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25043\"\u003e#25043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Keep parametrized route names in Nitro 3 builds (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25307\"\u003e#25307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Rewrite source paths of split route modules (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25361\"\u003e#25361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003echore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Install the pnpm version that Volta pins (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25287\"\u003e#25287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elicense: Add cli FSL notice to package licenses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25314\"\u003e#25314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(core): use shared MCP attribute conventions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25059\"\u003e#25059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(tanstackstart-react): Reuse shared component annotation options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25313\"\u003e#25313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(browser): Keep whitespace text out of the handlers-lcp page (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25280\"\u003e#25280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bun): Restore \u003ccode\u003e@​sentry/core\u003c/code\u003e spies after the Bun.serve tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25276\"\u003e#25276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-decisions-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25331\"\u003e#25331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/24824\"\u003e#24824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add nuxt-5-sourcemaps test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25268\"\u003e#25268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Use an external host address for the Lambda DSN on loopback hostnames (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Run nextjs-16-tunnel on Cloudflare (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25161\"\u003e#25161\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/getsentry/sentry-javascript/commit/c6492ef78c7bfb97931e43075763ce84ee8fda7e\"\u003e\u003ccode\u003ec6492ef\u003c/code\u003e\u003c/a\u003e release: 11.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/e091f7f0713c5eacdad519abbc20bf8523119760\"\u003e\u003ccode\u003ee091f7f\u003c/code\u003e\u003c/a\u003e meta(changelog): Update changelog for 11.8.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25388\"\u003e#25388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/30ec7548ee289d50b13e997142607229aba8957b\"\u003e\u003ccode\u003e30ec754\u003c/code\u003e\u003c/a\u003e meta(changelog): Update changelog for 11.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/a309cf8ea6ffe4f5ba2523137184138c16e39906\"\u003e\u003ccode\u003ea309cf8\u003c/code\u003e\u003c/a\u003e test(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/71f1ef954dd1cd1168e21c4a84a5d52f8b7943a9\"\u003e\u003ccode\u003e71f1ef9\u003c/code\u003e\u003c/a\u003e test(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/e54e577ded87006c778bde1cb6a78f1dd043922f\"\u003e\u003ccode\u003ee54e577\u003c/code\u003e\u003c/a\u003e chore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/0ed4606d53844053bef9cd9f59489163677b5163\"\u003e\u003ccode\u003e0ed4606\u003c/code\u003e\u003c/a\u003e fix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/9516aeb8509fab96b433792bb183f2fec04f003a\"\u003e\u003ccode\u003e9516aeb\u003c/code\u003e\u003c/a\u003e fix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/747134758f4f6cb9ab522aa03bdf5a188ffe958c\"\u003e\u003ccode\u003e7471347\u003c/code\u003e\u003c/a\u003e feat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/f4ae6c55220f1dd36d253d005ef290a9b1e46d7e\"\u003e\u003ccode\u003ef4ae6c5\u003c/code\u003e\u003c/a\u003e fix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-javascript/compare/11.4.0...11.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `body-parser` from 1.20.8 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/body-parser/releases\"\u003ebody-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003ch2\u003eImportant: Security\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2025-13466\"\u003eCVE-2026-12590\u003c/a\u003e (\u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6\"\u003eGHSA-v422-hmwv-36x6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 6.0.0 to 7.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/expressjs/body-parser/pull/681\"\u003eexpressjs/body-parser#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5.0.0 to 6.0.1 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/expressjs/body-parser/pull/682\"\u003eexpressjs/body-parser#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.0.0 to 6.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/expressjs/body-parser/pull/683\"\u003eexpressjs/body-parser#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 5.0.0 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/expressjs/body-parser/pull/685\"\u003eexpressjs/body-parser#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.31.2 to 4.31.9 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/expressjs/body-parser/pull/684\"\u003eexpressjs/body-parser#684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(urlencoded): move empty-body guard to avoid extra function closure by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/647\"\u003eexpressjs/body-parser#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ESM compatibility by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/697\"\u003eexpressjs/body-parser#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add recommendations for configuring payload limits by \u003ca href=\"https://github.com/bjohansebas\"\u003e\u003ccode\u003e@​bjohansebas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/699\"\u003eexpressjs/body-parser#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.1.0 to 6.2.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/expressjs/body-parser/pull/701\"\u003eexpressjs/body-parser#701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.31.10 to 4.32.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/expressjs/body-parser/pull/702\"\u003eexpressjs/body-parser#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.1 to 6.0.2 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/expressjs/body-parser/pull/700\"\u003eexpressjs/body-parser#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore:  add explicit type commonjs to package.json by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/711\"\u003eexpressjs/body-parser#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps: update dependencies to latest versions by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/708\"\u003eexpressjs/body-parser#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 7.0.0 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/expressjs/body-parser/pull/712\"\u003eexpressjs/body-parser#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.32.0 to 4.32.4 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/expressjs/body-parser/pull/713\"\u003eexpressjs/body-parser#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 6.0.0 to 7.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/expressjs/body-parser/pull/714\"\u003eexpressjs/body-parser#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve limit option validation by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/698\"\u003eexpressjs/body-parser#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.32.4 to 4.35.1 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/expressjs/body-parser/pull/719\"\u003eexpressjs/body-parser#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.2.0 to 6.3.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/expressjs/body-parser/pull/718\"\u003eexpressjs/body-parser#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 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/expressjs/body-parser/pull/717\"\u003eexpressjs/body-parser#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: eliminate conditional check in json strict mode hot path by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/651\"\u003eexpressjs/body-parser#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add node.js 26 to text matrix by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/726\"\u003eexpressjs/body-parser#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.3.0 to 6.4.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/expressjs/body-parser/pull/725\"\u003eexpressjs/body-parser#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 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/expressjs/body-parser/pull/724\"\u003eexpressjs/body-parser#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.35.1 to 4.35.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/expressjs/body-parser/pull/723\"\u003eexpressjs/body-parser#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade \u0026quot;content-type\u0026quot; by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/728\"\u003eexpressjs/body-parser#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: switch to const/let and enable eslint no-var rule by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/729\"\u003eexpressjs/body-parser#729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate outdated reference to MDN docs by \u003ca href=\"https://github.com/krzysdz\"\u003e\u003ccode\u003e@​krzysdz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/730\"\u003eexpressjs/body-parser#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.35.3 to 4.36.1 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/expressjs/body-parser/pull/731\"\u003eexpressjs/body-parser#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.2 to 6.0.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/expressjs/body-parser/pull/732\"\u003eexpressjs/body-parser#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: updated deps to latest by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/733\"\u003eexpressjs/body-parser#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2.3.0 by \u003ca href=\"https://github.com/UlisesGascon\"\u003e\u003ccode\u003e@​UlisesGascon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/735\"\u003eexpressjs/body-parser#735\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/krzysdz\"\u003e\u003ccode\u003e@​krzysdz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/730\"\u003eexpressjs/body-parser#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0\"\u003ehttps://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update README links by \u003ca href=\"https://github.com/efekrskl\"\u003e\u003ccode\u003e@​efekrskl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/673\"\u003eexpressjs/body-parser#673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: release notes for the v1.20.4 release by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/674\"\u003eexpressjs/body-parser#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update URL-encoded parser description to include ISO-8859-1 encoding support by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/679\"\u003eexpressjs/body-parser#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: use standard jsdoc tags everywhere by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/677\"\u003eexpressjs/body-parser#677\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/expressjs/body-parser/blob/master/HISTORY.md\"\u003ebody-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 / 2026-06-15\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6\"\u003eGHSA-v422-hmwv-36x6\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use static exports instead of lazy getters to improve ESM compatibility\u003c/li\u003e\n\u003cli\u003efeat: add subpath exports for individual parsers\u003c/li\u003e\n\u003cli\u003efix: improve \u003ccode\u003elimit\u003c/code\u003e option validation (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/698\"\u003e#698\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eInvalid \u003ccode\u003elimit\u003c/code\u003e values (e.g. unparseable strings or \u003ccode\u003eNaN\u003c/code\u003e) now throw instead of being silently ignored, which previously disabled size limit enforcement\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enull\u003c/code\u003e and \u003ccode\u003eundefined\u003c/code\u003e fall back to the default 100kb limit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003econtent-type@^2.0.0\u003c/li\u003e\n\u003cli\u003ehttp-errors@^2.0.1\u003c/li\u003e\n\u003cli\u003eiconv-lite^0.7.2\u003c/li\u003e\n\u003cli\u003eqs@^6.15.2\u003c/li\u003e\n\u003cli\u003eraw-body@^3.0.2\u003c/li\u003e\n\u003cli\u003etype-is@^2.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.2 / 2026-01-07\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edeps: qs@^6.14.1\u003c/li\u003e\n\u003cli\u003erefactor(json): simplify strict mode error string construction\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 / 2025-11-24\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-wqch-xfxh-vrr4\"\u003eGHSA-wqch-xfxh-vrr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003etype-is@^2.0.1\u003c/li\u003e\n\u003cli\u003eiconv-lite@^0.7.0\n\u003cul\u003e\n\u003cli\u003eHandle split surrogate pairs when encoding UTF-8\u003c/li\u003e\n\u003cli\u003eAvoid false positives in \u003ccode\u003eencodingExists\u003c/code\u003e by using prototype-less objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eraw-body@^3.0.1\u003c/li\u003e\n\u003cli\u003edebug@^4.4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 / 2025-03-27\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: normalize common options for all parsers\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003eiconv-lite@^0.6.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0 / 2025-02-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003etype-is@^2.0.0\u003c/li\u003e\n\u003cli\u003edebug@^4.4.0\u003c/li\u003e\n\u003cli\u003eRemoved destroy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003erefactor: prefix built-in node module imports\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/expressjs/body-parser/commit/d0f2ace6c74769da7d19b8661b9a01c01bdb0bf7\"\u003e\u003ccode\u003ed0f2ace\u003c/code\u003e\u003c/a\u003e 2.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/7d03f2f9d561dafd1576b137713353c95253512c\"\u003e\u003ccode\u003e7d03f2f\u003c/code\u003e\u003c/a\u003e chore: updated deps to latest (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/8024ba7a813e6647ed63832d209a2abb8531267a\"\u003e\u003ccode\u003e8024ba7\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6.0.2 to 6.0.3 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/32b4ed4639281f04563adcd41d724ab06c9105d4\"\u003e\u003ccode\u003e32b4ed4\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 4.35.3 to 4.36.1 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/ff0f6b907106ec5a1b81c80f5a552d921c1bc9a5\"\u003e\u003ccode\u003eff0f6b9\u003c/code\u003e\u003c/a\u003e docs: update outdated reference to MDN docs (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/14d001a9c90abc05891d895ad3e9cf0a65b7b34a\"\u003e\u003ccode\u003e14d001a\u003c/code\u003e\u003c/a\u003e refactor: switch to const/let and enable eslint no-var rule (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/37f36a27528e65d7216f2c31c7039d3458c72147\"\u003e\u003ccode\u003e37f36a2\u003c/code\u003e\u003c/a\u003e deps: update content-type and type-is (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/e1c244bf55fb00a6de4be882b4ed9fc20807d864\"\u003e\u003ccode\u003ee1c244b\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 4.35.1 to 4.35.3 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/e01087f52192e20e2d0f8726d4f28a8d49d06c87\"\u003e\u003ccode\u003ee01087f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/a7698d30280a3e931ea8841396e5d0ac5414e429\"\u003e\u003ccode\u003ea7698d3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/body-parser/compare/1.20.8...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eAttestation changes\u003c/summary\u003e\n\u003cp\u003eThis version has no provenance attestation, while the previous version (1.20.8) was attested. Review the \u003ca href=\"https://www.npmjs.com/package/body-parser?activeTab=versions\"\u003epackage versions\u003c/a\u003e before updating.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 18.0.5 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.6...v18.0.7\"\u003e18.0.7\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat undefined settings like \u003ccode\u003equiet: true\u003c/code\u003e as null rather than falsey (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI should honor \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting in \u003ccode\u003e.env\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.6\"\u003e18.0.6\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse smarter \u003ccode\u003eparseBoolean\u003c/code\u003e not Boolean() to fix override (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1069\"\u003e#1069\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/295320751866efa323236c719cdc1b5306fa3de7\"\u003e\u003ccode\u003e2953207\u003c/code\u003e\u003c/a\u003e 18.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/9944723d89e6f776897f171bfc6b945dfad23c57\"\u003e\u003ccode\u003e9944723\u003c/code\u003e\u003c/a\u003e make more readable for undefined -\u0026gt; null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/d455db06a7b37acd8b240793a888efaba75885f4\"\u003e\u003ccode\u003ed455db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:motdotla/dotenv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/express` from 4.17.25 to 5.0.6\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/express\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodemailer` from 10.0.14 to 10.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nodemailer/nodemailer/releases\"\u003enodemailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.1...v10.1.2\"\u003e10.1.2\u003c/a\u003e (2026-10-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebound the work a message can make the mailer do and keep per-message auth off the transport's token endpoint (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003ee347fa2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.0...v10.1.1\"\u003e10.1.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e strip credentials on any cross-origin redirect (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/a15360cd2cd12e4670e96ab0b7290e8c862391cf\"\u003ea15360c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.16...v10.1.0\"\u003e10.1.0\u003c/a\u003e (2026-10-10)\u003c/h2\u003e\n\u003ch3\u003eBehaviour changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePooled connections are closed after 4 minutes without a message (new \u003ccode\u003eidleTimeout\u003c/code\u003e pool option, set it to \u003ccode\u003e0\u003c/code\u003e to keep them open). A message whose recipients are rejected no longer closes the pooled connection, it is reset with \u003ccode\u003eRSET\u003c/code\u003e and reused, and a message is requeued when the server dropped a reused connection before any of it was sent.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econnectionTimeout\u003c/code\u003e covers setting the session up as a whole: the DNS lookup, a proxy handshake, the TCP connection, TLS, the greeting and a STARTTLS upgrade. \u003ccode\u003egreetingTimeout\u003c/code\u003e still bounds the greeting and the STARTTLS handshake within it.\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003e421\u003c/code\u003e reply ends the SMTP session. When the server closes an idle connection, \u003ccode\u003eSMTPConnection\u003c/code\u003e emits only \u003ccode\u003eend\u003c/code\u003e, not an \u003ccode\u003eECONNECTION\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eA content stream that was already read or destroyed fails the message with \u003ccode\u003eESTREAM\u003c/code\u003e instead of producing an empty attachment. Content streams of a message that fails are destroyed.\u003c/li\u003e\n\u003cli\u003eWith \u003ccode\u003eopportunisticTLS\u003c/code\u003e, authentication is skipped on the unencrypted connection after a failed STARTTLS, unless \u003ccode\u003eforceAuth\u003c/code\u003e is set.\u003c/li\u003e\n\u003cli\u003eThe envelope is pipelined (MAIL FROM, RCPT TO and DATA in one batch) when the server announces PIPELINING.\u003c/li\u003e\n\u003cli\u003eErrors carry \u003ccode\u003eoriginalCode\u003c/code\u003e (the system error code Nodemailer replaced, such as \u003ccode\u003eECONNREFUSED\u003c/code\u003e) and, for \u003ccode\u003eETIMEDOUT\u003c/code\u003e, \u003ccode\u003etimeoutType\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eharden message streams, SMTP connections and the connection pool (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8009da6e10bb8e10d7f0948a25d65895fdcd64f1\"\u003e8009da6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edo not read the environment or the interface table on import (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/094179d176d2ebe7a28742411ad427d3c87a3981\"\u003e094179d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eend the SMTP session on any 421 reply and drive the envelope through one step (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/5638ac1914342460df270f736e7ceb0a844cf83a\"\u003e5638ac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ekeep ERR_ACCESS_DENIED from the Node.js permission model (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8b33a3d4fedee3431b97da7da12af954c3c8dceb\"\u003e8b33a3d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elet the proxy handshake and the SMTP connection share one deadline (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/91ed683f7a1e9ff8c56e24fb76facf16af08b162\"\u003e91ed683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e decode an SMTPUTF8 domain from its A-label form (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e436f4dccbc8b0fb57b4747ebaafa5bb035c15cb\"\u003ee436f4d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e finish an encoded part only after its output was read (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/ec97d8f679a1d9d47bbebb03ea064f5fa6f58d01\"\u003eec97d8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eqp:\u003c/strong\u003e encode a lone CR or LF in binary quoted-printable parts (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/42b91d9a0fe18eea412c9774c5c142adf5b3efc7\"\u003e42b91d9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e count the wait for the greeting against connectionTimeout (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/bdcd0462cab163eca3c34058d09b9981ab671c47\"\u003ebdcd046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e drop the connection when DATA is taken after a refused sender (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/f90fb045bc24f96a128710791b2fa443e64f55fd\"\u003ef90fb04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e refuse a second connect() call (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/24ba2e0847ecb8202540f1c5e53483bd119ae4f2\"\u003e24ba2e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eturn Nagle off for SMTP sockets and report an early sendmail exit as such (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fa9b8d300bf642cd9e11f6732ebb312c09868677\"\u003efa9b8d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\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/nodemailer/nodemailer/blob/master/CHANGELOG.md\"\u003enodemailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.1...v10.1.2\"\u003e10.1.2\u003c/a\u003e (2026-10-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebound the work a message can make the mailer do and keep per-message auth off the transport's token endpoint (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003ee347fa2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.0...v10.1.1\"\u003e10.1.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e strip credentials on any cross-origin redirect (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/a15360cd2cd12e4670e96ab0b7290e8c862391cf\"\u003ea15360c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.16...v10.1.0\"\u003e10.1.0\u003c/a\u003e (2026-10-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eharden message streams, SMTP connections and the connection pool (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8009da6e10bb8e10d7f0948a25d65895fdcd64f1\"\u003e8009da6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edo not read the environment or the interface table on import (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/094179d176d2ebe7a28742411ad427d3c87a3981\"\u003e094179d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eend the SMTP session on any 421 reply and drive the envelope through one step (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/5638ac1914342460df270f736e7ceb0a844cf83a\"\u003e5638ac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ekeep ERR_ACCESS_DENIED from the Node.js permission model (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8b33a3d4fedee3431b97da7da12af954c3c8dceb\"\u003e8b33a3d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elet the proxy handshake and the SMTP connection share one deadline (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/91ed683f7a1e9ff8c56e24fb76facf16af08b162\"\u003e91ed683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e decode an SMTPUTF8 domain from its A-label form (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e436f4dccbc8b0fb57b4747ebaafa5bb035c15cb\"\u003ee436f4d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e finish an encoded part only after its output was read (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/ec97d8f679a1d9d47bbebb03ea064f5fa6f58d01\"\u003eec97d8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eqp:\u003c/strong\u003e encode a lone CR or LF in binary quoted-printable parts (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/42b91d9a0fe18eea412c9774c5c142adf5b3efc7\"\u003e42b91d9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e count the wait for the greeting against connectionTimeout (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/bdcd0462cab163eca3c34058d09b9981ab671c47\"\u003ebdcd046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e drop the connection when DATA is taken after a refused sender (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/f90fb045bc24f96a128710791b2fa443e64f55fd\"\u003ef90fb04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e refuse a second connect() call (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/24ba2e0847ecb8202540f1c5e53483bd119ae4f2\"\u003e24ba2e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eturn Nagle off for SMTP sockets and report an early sendmail exit as such (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fa9b8d300bf642cd9e11f6732ebb312c09868677\"\u003efa9b8d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eencode base64 and quoted-printable without per-chunk delays (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fd377bbf559363860aedbedba6f107348fc152d2\"\u003efd377bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.15...v10.0.16\"\u003e10.0.16\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaddressparser:\u003c/strong\u003e keep an escaped parenthesis inside a comment (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/c4ae20d074ac0510cc2d0cbd6039ee7fab3a4ca8\"\u003ec4ae20d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e keep the case of cookie names (\u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1888\"\u003e#1888\u003c/a\u003e) (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/9f16eedf8de0485e6d07969113db992ff70f89ce\"\u003e9f16eed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e read the cookie name-value pair by position (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/645e97c8f0586404d9fb861c9527be7572c2c832\"\u003e645e97c\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/nodemailer/nodemailer/commit/8454a24ba7ad3b32cca1aed07ae7fc05aa960f19\"\u003e\u003ccode\u003e8454a24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1894\"\u003e#1894\u003c/a\u003e from nodemailer/release-please--branches--master--co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/667cea61672a74aa2213075609ccd08010e5bf94\"\u003e\u003ccode\u003e667cea6\u003c/code\u003e\u003c/a\u003e chore(master): release 10.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003e\u003ccode\u003ee347fa2\u003c/code\u003e\u003c/a\u003e fix: bound the work a message can make the mailer do and keep per-message aut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e58217ca2735c5169ef492f5695b848896f3bfaa\"\u003e\u003ccode\u003ee58217c\u003c/code\u003e\u003c/a\u003e chore: add Oveyon SMTP service (\u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1892\"\u003e#1892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/...\n\n_Description has been truncated_","html_url":"https://github.com/nelsonbravosalas-creator/MAESTRO-COMERCIAL/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nelsonbravosalas-creator%2FMAESTRO-COMERCIAL/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"},{"uuid":"5919690159","node_id":"PR_kwDOTv4Hic8AAAABJRnjPQ","number":166,"state":"open","title":"deps: bump the production group across 1 directory with 27 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-10-19T07:26:11.000Z","updated_at":"2026-10-19T07:48:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"production","update_count":27,"packages":[{"name":"@aws-sdk/client-bedrock-runtime","old_version":"3.1141.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@lobehub/icons","old_version":"5.21.0","new_version":"6.0.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@modelcontextprotocol/sdk","old_version":"1.30.1","new_version":"1.32.1","repository_url":"https://github.com/modelcontextprotocol/typescript-sdk"},{"name":"@toon-format/toon","old_version":"4.1.1","new_version":"4.4.0","repository_url":"https://github.com/toon-format/toon"},{"name":"csv-stringify","old_version":"6.8.3","new_version":"6.9.0","repository_url":"https://github.com/adaltas/node-csv"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"fumadocs-core","old_version":"16.15.15","new_version":"16.17.4","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.15.15","new_version":"16.17.4","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"ink","old_version":"7.1.1","new_version":"8.0.0","repository_url":"https://github.com/vadimdemedes/ink"},{"name":"js-yaml","old_version":"5.4.2","new_version":"5.5.0","repository_url":"https://github.com/nodeca/js-yaml"},{"name":"lucide-react","old_version":"1.48.0","new_version":"1.58.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"marked","old_version":"18.0.14","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"material-symbols","old_version":"0.47.5","new_version":"0.48.0","repository_url":"https://github.com/marella/material-symbols"},{"name":"mermaid","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"next-intl","old_version":"4.14.7","new_version":"4.14.9","repository_url":"https://github.com/amannn/next-intl"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"playwright","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-is","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"smol-toml","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"sql.js","old_version":"1.14.2","new_version":"1.15.0","repository_url":"https://github.com/sql-js/sql.js"},{"name":"undici","old_version":"8.11.2","new_version":"8.12.2","repository_url":"https://github.com/nodejs/undici"},{"name":"ws","old_version":"8.21.3","new_version":"8.22.0","repository_url":"https://github.com/websockets/ws"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1141.0` | `3.1152.0` |\n| [@lobehub/icons](https://github.com/lobehub/lobe-icons) | `5.21.0` | `6.0.0` |\n| [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) | `1.30.1` | `1.32.1` |\n| [@toon-format/toon](https://github.com/toon-format/toon) | `4.1.1` | `4.4.0` |\n| [csv-stringify](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify) | `6.8.3` | `6.9.0` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.15.15` | `16.17.4` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.15.15` | `16.17.4` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.1.1` | `8.0.0` |\n| [js-yaml](https://github.com/nodeca/js-yaml) | `5.4.2` | `5.5.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.48.0` | `1.58.0` |\n| [marked](https://github.com/markedjs/marked) | `18.0.14` | `18.1.1` |\n| [material-symbols](https://github.com/marella/material-symbols/tree/HEAD/material-symbols) | `0.47.5` | `0.48.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `12.0.0` | `12.2.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.6` | `16.4.2` |\n| [next-intl](https://github.com/amannn/next-intl) | `4.14.7` | `4.14.9` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [playwright](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [react-is](https://github.com/react/react/tree/HEAD/packages/react-is) | `19.3.0` | `19.3.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.9.0` | `1.9.1` |\n| [sql.js](https://github.com/sql-js/sql.js) | `1.14.2` | `1.15.0` |\n| [undici](https://github.com/nodejs/undici) | `8.11.2` | `8.12.2` |\n| [ws](https://github.com/websockets/ws) | `8.21.3` | `8.22.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n\n\nUpdates `@aws-sdk/client-bedrock-runtime` from 3.1141.0 to 3.1152.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e@​aws-sdk/client-bedrock-runtime's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1152.0\u003c/h2\u003e\n\u003ch4\u003e3.1152.0(2026-10-14)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-marketplace-metering:\u003c/strong\u003e  Documentation update - added a Get started pointer to the AWS Marketplace AI Metering Agent Skill in the BatchMeterUsage API reference. No API or behavior change. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c97db28292cf4ec8de51ddc76178597172e98472\"\u003ec97db282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-10-14 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/91a8a07c64dbb5cfb15497d8a5f2ae1f5b2608ad\"\u003e91a8a07c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  This release adds parentInstance to infrastructure configurations, so builds can use an already-running instance from an Amazon EC2 Auto Scaling group. It also adds terminateInstanceOnCompletion, which keeps build and test instances running after image creation ends. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e8a5e26b4bd8fafd9332718ed4619ecc4e31d37a\"\u003ee8a5e26b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudfront:\u003c/strong\u003e  This release adds a new \u0026quot;IpAddressType\u0026quot; field to \u0026quot;VPCOriginEndpointConfig\u0026quot;, allowing customers to specify whether their VPC origin accepts IPv4-only or dualstack connections. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6bae6413938d6e5c07943f48c1e5d84d8283f7bb\"\u003e6bae6413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family now lets you store SFTP server host keys in AWS Secrets Manager in your own AWS account. This gives you greater control over your server identity and helps simplify server migrations and failover. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/9d0e88661d8029e1715580646e67e8594e786417\"\u003e9d0e8866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dynamodb-streams:\u003c/strong\u003e  Add support for a new iterator type (AT TIMESTAMP) for DynamoDB Streams GetShardIterator API that allows reading from a specific point in time from the stream. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/150e6ae315ed77756d261a62d4598c0208195c9a\"\u003e150e6ae3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-ec2:\u003c/strong\u003e  Adds T8i instance sizes to the InstanceType enum. T8i instances are low-cost burstable instances powered by custom sixth generation Intel Xeon 6 processors, available exclusively on AWS, and built on the latest sixth generation AWS Nitro cards (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/65c6056b0bc8fab6261ac7b52e8a3421a4281152\"\u003e65c6056b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-arc-region-switch:\u003c/strong\u003e  Features - Adds support for an optional payload to invoke the Lambda function with as part of the Custom action Lambda execution block (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d21aa72b05ec8c1e32822574fbabacaafa799382\"\u003ed21aa72b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  With dual-stack enabled, all requests now resolve to the endpoint in the partition's primary Region (for example, organizations.us-east-1.api.aws) and are signed for that Region. Previously, requests from other Regions resolved to a nonexistent endpoint. No API changes. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/9324745e8c9c2c684a636fe2e307be3fe0571b22\"\u003e9324745e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  This release supports scoping Amazon Bedrock AgentCore Gateway rate limits by request header or request body field. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/30c5bca25f88043a285593ca76ecb3d36dce6206\"\u003e30c5bca2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lambda:\u003c/strong\u003e  AWS Lambda now supports an optional X-Ray trace header for chained invocations in durable executions, enabling child invocations to be linked to the initiating span. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/08219be0475f234f09f35b3e461d7a12d69f3dd2\"\u003e08219be0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Releasing support for Custom Detection Rule Runtime Monitoring (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0cb32b8fef5d0f269c6cc4d5ad599f2fb819fc09\"\u003e0cb32b8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elib-transfer-manager:\u003c/strong\u003e  publish as a preview package (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/41080929c1e5a81980f0bda4a35eadd0b6e048a9\"\u003e41080929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1152.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1151.0\u003c/h2\u003e\n\u003ch4\u003e3.1151.0(2026-10-13)\u003c/h4\u003e\n\u003ch5\u003eChores\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003elib-transfer-manager:\u003c/strong\u003e  move lib-transfer-manager to preview/ folder (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8351\"\u003e#8351\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5037a0065a1f6ae6a87ff7ce4884e3ef3be61a64\"\u003e5037a006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003escripts:\u003c/strong\u003e  add preview/ folder to build tooling (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8350\"\u003e#8350\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a922905ad8bca584f271cf88b589a22d0a5003ad\"\u003ea922905a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lambda-web:\u003c/strong\u003e  Documentation update to include common use cases. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/643507a09d50416e30f2a24c921e6f1e9dda4ad0\"\u003e643507a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-10-13 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d399458247460784fed4fbe11c14e98f0a07847a\"\u003ed3994582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lakeformation:\u003c/strong\u003e  Added new LakeFormation APIs and documentation updates for Simple Row-level Security (RLS). (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c7a586fc4addf0c2dd3851a90311a377e62137f8\"\u003ec7a586fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-agent-registry-control:\u003c/strong\u003e  AWS Agent Registry is improving recently launched custom metadata schema feature to make shared attributes easier to manage. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ed00d0bb8d831f1b2461b637356f327a1afd9837\"\u003eed00d0bb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-omics:\u003c/strong\u003e  With Expanded container registry support, you can use container images from registries such as Seqera (Wave), NVIDIA NGC, and Google Artifact Registry with AWS HealthOmics private workflows, without manually migrating images into Amazon ECR or editing your workflow definitions. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/db38274026895b84d7d8e31b4f835999dbe800cd\"\u003edb382740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-route-53-domains:\u003c/strong\u003e  Route 53 Domains now supports premium domains. This release adds consent objects to operations on premium domains and a new GetDomainPrices API. Also, the Flags and PublicKey fields were deprecated from the DnssecKey response. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c5cc6f506dc764122f7ed68d82cd178c94be068b\"\u003ec5cc6f50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-gamelift:\u003c/strong\u003e  Adds support for new instance types in the C8a, C8i, C9g, M8a, M8i, and M9g families for managed EC2 and container fleets (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5145677226e133de057c148d8060e0edb4ff567f\"\u003e51456772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-appstream:\u003c/strong\u003e  Adds support for administrators to require users to re-authenticate OneDrive and Google Drive storage connectors when a streaming session is reused. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2b6f2af5b0c06ec6185450e03b4bf4198a1a2a44\"\u003e2b6f2af5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-connect:\u003c/strong\u003e  New APIs to support aliases and versions for ContactFlow. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/39466baaf544133768153f920bafe6b97dfc3323\"\u003e39466baa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-appintegrations:\u003c/strong\u003e  This release adds the Connect JWT authentication type and the AudienceOverride field to AuthConfig, letting A2A server applications authenticate with JWTs issued by Amazon Connect. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/3b212b20265a8d1f62178c7dd65f6f3e8368efde\"\u003e3b212b20\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/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md\"\u003e@​aws-sdk/client-bedrock-runtime's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1151.0...v3.1152.0\"\u003e3.1152.0\u003c/a\u003e (2026-10-14)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1150.0...v3.1151.0\"\u003e3.1151.0\u003c/a\u003e (2026-10-13)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1149.0...v3.1150.0\"\u003e3.1150.0\u003c/a\u003e (2026-10-12)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1148.0...v3.1149.0\"\u003e3.1149.0\u003c/a\u003e (2026-10-09)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1147.0...v3.1148.0\"\u003e3.1148.0\u003c/a\u003e (2026-10-08)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1146.0...v3.1147.0\"\u003e3.1147.0\u003c/a\u003e (2026-10-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1145.0...v3.1146.0\"\u003e3.1146.0\u003c/a\u003e (2026-10-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/3ce8aa778c22193dad5f7fcefe239e3a74a3cd4f\"\u003e\u003ccode\u003e3ce8aa7\u003c/code\u003e\u003c/a\u003e Publish v3.1152.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d6adfcb7baa396dd42060a74382b6aa2a1cbf0b5\"\u003e\u003ccode\u003ed6adfcb\u003c/code\u003e\u003c/a\u003e Publish v3.1151.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4c9a334a79b631cc110fb3a1d67695b4c07baf46\"\u003e\u003ccode\u003e4c9a334\u003c/code\u003e\u003c/a\u003e Publish v3.1150.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a960c14e8ce09ab8fd09352e40d75c6b9d52c1ca\"\u003e\u003ccode\u003ea960c14\u003c/code\u003e\u003c/a\u003e Publish v3.1149.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5773a7515472dbdf2760c61e4a462b71800c50e7\"\u003e\u003ccode\u003e5773a75\u003c/code\u003e\u003c/a\u003e chore(codegen): sync for endpoint cache fix and pre-schema error fallback (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime/issues/8\"\u003e#8\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/1bc04256c276089739faa71754dba4fde75e05aa\"\u003e\u003ccode\u003e1bc0425\u003c/code\u003e\u003c/a\u003e Publish v3.1148.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/663046d58796f32069e5198f95a3070b2f5ef969\"\u003e\u003ccode\u003e663046d\u003c/code\u003e\u003c/a\u003e Publish v3.1147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/054298b1520fc45a7017966674a5ac3aa6f32a04\"\u003e\u003ccode\u003e054298b\u003c/code\u003e\u003c/a\u003e Publish v3.1146.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0199117830b689aa169a0e4c472484cde9c129cd\"\u003e\u003ccode\u003e0199117\u003c/code\u003e\u003c/a\u003e Publish v3.1145.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ce262812f5156daee0c2070854970e504b7cd15c\"\u003e\u003ccode\u003ece26281\u003c/code\u003e\u003c/a\u003e Publish v3.1144.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1152.0/clients/client-bedrock-runtime\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons` from 5.21.0 to 6.0.0\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'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/v5.23.1...v6.0.0\"\u003eVersion 6.0.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-10-15\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: Adopt lobe-ui 6 and drop antd [force major].\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/559e761\"\u003e559e761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Adopt lobe-ui 6 and drop antd [force major], closes \u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/432\"\u003e#432\u003c/a\u003e (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/a83b922\"\u003ea83b922\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\u003ch3\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v5.23.0...v5.23.1\"\u003eVersion 5.23.1\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-10-13\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e🐛 Bug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Meta icon for Muse Wonder models, use Node 22 in release CI so tsdown can load its config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's fixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Meta icon for Muse Wonder models (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/6f2c20d\"\u003e6f2c20d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Node 22 in release CI so tsdown can load its config (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/5f19aab\"\u003e5f19aab\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\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/8a1b2821bb768c484fe8da20c5e1838b6bf551a9\"\u003e\u003ccode\u003e8a1b282\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v6.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/a83b92271575dd7367334cfc554027ec96104b9c\"\u003e\u003ccode\u003ea83b922\u003c/code\u003e\u003c/a\u003e ✨ feat: adopt lobe-ui 6 and drop antd [force major] (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/559e761192814e612ae40e9d516c5b18c86cf0a7\"\u003e\u003ccode\u003e559e761\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/bb666a6fa2b5e76b7e184eec574949f64a4a562b\"\u003e\u003ccode\u003ebb666a6\u003c/code\u003e\u003c/a\u003e fix: README 图片链接（npmmirror 图床、失效资产、生成脚本） (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/05a9b8c41e4735a4a2b6d2f1e43574bd8ec6c8cb\"\u003e\u003ccode\u003e05a9b8c\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.23.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/5f19aab07ead914089a3b4672ff042966e1db620\"\u003e\u003ccode\u003e5f19aab\u003c/code\u003e\u003c/a\u003e 🐛 fix: use Node 22 in release CI so tsdown can load its config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/67c955577316c56c276dd406c4c5b7c2b9715b4b\"\u003e\u003ccode\u003e67c9555\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/436\"\u003e#436\u003c/a\u003e from lobehub/fix/muse-wonder-icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/6f2c20d7d6b8b99e43cd7b346a902a5855ab5564\"\u003e\u003ccode\u003e6f2c20d\u003c/code\u003e\u003c/a\u003e 🐛 fix: use Meta icon for Muse Wonder models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/bcdb7c82792a854c2967f7328e11a30205ea584d\"\u003e\u003ccode\u003ebcdb7c8\u003c/code\u003e\u003c/a\u003e 🔨 build: generate per-module exports map at CI build time (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/913b01b178312707b47c3b73881e9fe558027d83\"\u003e\u003ccode\u003e913b01b\u003c/code\u003e\u003c/a\u003e 🔨 build: replace father with tsdown to emit Node-ESM-resolvable output (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v5.21.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@modelcontextprotocol/sdk` from 1.30.1 to 1.32.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/releases\"\u003e@​modelcontextprotocol/sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.32.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] docs: state the principles in CLAUDE.md by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2939\"\u003emodelcontextprotocol/typescript-sdk#2939\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] docs: point the README at v2 and say what v1.x supports by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2942\"\u003emodelcontextprotocol/typescript-sdk#2942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.32.1 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2954\"\u003emodelcontextprotocol/typescript-sdk#2954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.32.0...1.32.1\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.32.0...1.32.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.32.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRedirects:\u003c/strong\u003e the HTTP client transports now follow a redirect only when it stays on the same origin (same scheme, host and port; http to https on the same host is allowed). A deployment whose endpoint redirects to another host or port either configures the final URL or sets \u003ccode\u003eredirectPolicy: 'follow'\u003c/code\u003e on \u003ccode\u003eStreamableHTTPClientTransport\u003c/code\u003e or \u003ccode\u003eSSEClientTransport\u003c/code\u003e. In browsers, a redirected request fails unless that option is set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew options, both off unless you set them:\u003c/strong\u003e \u003ccode\u003emaxToolInputElements\u003c/code\u003e on \u003ccode\u003eMcpServer\u003c/code\u003e limits the number of array elements and object members in a tool call's arguments. \u003ccode\u003eexpectedResource\u003c/code\u003e on \u003ccode\u003erequireBearerAuth\u003c/code\u003e accepts only tokens issued for this server (the token's audience).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] fix(client): follow redirects only within the endpoint's origin by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2902\"\u003emodelcontextprotocol/typescript-sdk#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: point SECURITY.md at GitHub Security Advisories (v1.x) by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2910\"\u003emodelcontextprotocol/typescript-sdk#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] examples: close idle sessions and cap the session map by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2914\"\u003emodelcontextprotocol/typescript-sdk#2914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] fix(tasks): keep tasks of the in-memory task store within the session that created them by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2925\"\u003emodelcontextprotocol/typescript-sdk#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] feat(server): add maxToolInputElements option to limit the number of elements in tool-call arguments by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2927\"\u003emodelcontextprotocol/typescript-sdk#2927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] fix(server): accept tools/call and prompts/get requests that omit arguments by \u003ca href=\"https://github.com/raashish1601\"\u003e\u003ccode\u003e@​raashish1601\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2045\"\u003emodelcontextprotocol/typescript-sdk#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] feat(auth): add expectedResource to requireBearerAuth by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2930\"\u003emodelcontextprotocol/typescript-sdk#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] test(e2e): cover tools/call and prompts/get without arguments by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2931\"\u003emodelcontextprotocol/typescript-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.32.0 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2935\"\u003emodelcontextprotocol/typescript-sdk#2935\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/raashish1601\"\u003e\u003ccode\u003e@​raashish1601\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2045\"\u003emodelcontextprotocol/typescript-sdk#2045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.31.0...1.32.0\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.31.0...1.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.31.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStored OAuth tokens and client information now include an \u003ccode\u003eissuer\u003c/code\u003e field. Storage that rejects unknown fields needs to allow it.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003eexpectedIssuer\u003c/code\u003e when constructing \u003ccode\u003eClientCredentialsProvider\u003c/code\u003e, \u003ccode\u003ePrivateKeyJwtProvider\u003c/code\u003e or \u003ccode\u003eStaticPrivateKeyJwtProvider\u003c/code\u003e. Constructing them without it is deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] Bind stored OAuth credentials to the authorization server that issued them by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2888\"\u003emodelcontextprotocol/typescript-sdk#2888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.31.0 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2890\"\u003emodelcontextprotocol/typescript-sdk#2890\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.31.0\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.31.0\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/modelcontextprotocol/typescript-sdk/commit/ff07b001194fe60ee9deb2121cf119057565796d\"\u003e\u003ccode\u003eff07b00\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.32.1 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/8a74d504a9ac1250f209325536f2f6c443e04ae6\"\u003e\u003ccode\u003e8a74d50\u003c/code\u003e\u003c/a\u003e [v1.x] docs: point the README at v2 and say what v1.x supports (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/a8cf50360f1366ffee174ac337146657bad9be2c\"\u003e\u003ccode\u003ea8cf503\u003c/code\u003e\u003c/a\u003e [v1.x] docs: state the principles in CLAUDE.md (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/32549b00a9a808265f35a29f92fdf27fa4aac2ef\"\u003e\u003ccode\u003e32549b0\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.32.0 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/588d51dbe337000705890fad81e874eb080174c2\"\u003e\u003ccode\u003e588d51d\u003c/code\u003e\u003c/a\u003e [v1.x] test(e2e): cover tools/call and prompts/get without arguments (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2931\"\u003e#2931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/5a0724d14cf34a27a3b070224d2996cdd611df9f\"\u003e\u003ccode\u003e5a0724d\u003c/code\u003e\u003c/a\u003e [v1.x] feat(auth): add expectedResource to requireBearerAuth (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/0ca0b62d93c6cb403b3b96122eff3a3140b84cc0\"\u003e\u003ccode\u003e0ca0b62\u003c/code\u003e\u003c/a\u003e [v1.x] fix(server): accept tools/call and prompts/get requests that omit argu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/fd26801b3b387742fe24a90ed4b275dd6072209f\"\u003e\u003ccode\u003efd26801\u003c/code\u003e\u003c/a\u003e [v1.x] feat(server): add maxToolInputElements option to limit the number of e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/727075b5bbeb77fbea22041b36b72a73042160fa\"\u003e\u003ccode\u003e727075b\u003c/code\u003e\u003c/a\u003e [v1.x] fix(tasks): keep tasks of the in-memory task store within the session ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/0ff63772dae796f41578ace47f7c814f4d86fa24\"\u003e\u003ccode\u003e0ff6377\u003c/code\u003e\u003c/a\u003e [v1.x] examples: close idle sessions and cap the session map (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@toon-format/toon` from 4.1.1 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/toon-format/toon/releases\"\u003e@​toon-format/toon's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport spec v4.4  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/362\"\u003etoon-format/toon#362\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/236a7b9\"\u003e\u003c!-- raw HTML omitted --\u003e(236a7)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep usage off stdout and split short option values  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/55483e6\"\u003e\u003c!-- raw HTML omitted --\u003e(55483)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote a root string that starts with U+FEFF  -  by \u003ca href=\"https://github.com/Iams4kura\"\u003e\u003ccode\u003e@​Iams4kura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/343\"\u003etoon-format/toon#343\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/0936414\"\u003e\u003c!-- raw HTML omitted --\u003e(09364)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep the last duplicate key when decoding with \u003ccode\u003e--no-strict\u003c/code\u003e  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/353\"\u003etoon-format/toon#353\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/c6dd07a\"\u003e\u003c!-- raw HTML omitted --\u003e(c6dd0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edecode\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eThree decoder cases that diverged from the spec  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/355\"\u003etoon-format/toon#355\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/4234208\"\u003e\u003c!-- raw HTML omitted --\u003e(42342)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFollow the spec 4.2 decoder rules  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/357\"\u003etoon-format/toon#357\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/b620f9c\"\u003e\u003c!-- raw HTML omitted --\u003e(b620f)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eencode\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eNormalize sparse array holes to null  -  by \u003ca href=\"https://github.com/Iams4kura\"\u003e\u003ccode\u003e@​Iams4kura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/335\"\u003etoon-format/toon#335\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/033d885\"\u003e\u003c!-- raw HTML omitted --\u003e(033d8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/toon-format/toon/compare/v4.1.1...v4.4.0\"\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/toon-format/toon/commit/92d7fc6d8af920afc99d1b6533cfc976c472fe7d\"\u003e\u003ccode\u003e92d7fc6\u003c/code\u003e\u003c/a\u003e chore: release v4.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/83241b8b584b33b3de678e2bbf5b83742760902d\"\u003e\u003ccode\u003e83241b8\u003c/code\u003e\u003c/a\u003e chore: upgrade dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/d0d8268694cd0d4894a8ae61c4c426cc33cf605a\"\u003e\u003ccode\u003ed0d8268\u003c/code\u003e\u003c/a\u003e docs: update the spec versions of the implementations (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/033d8851c579f175490ac8b020451fab072b5bef\"\u003e\u003ccode\u003e033d885\u003c/code\u003e\u003c/a\u003e fix(encode): normalize sparse array holes to null (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/236a7b987c896d26d8c9510c2b7571049a3dceaa\"\u003e\u003ccode\u003e236a7b9\u003c/code\u003e\u003c/a\u003e feat: support spec v4.4 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/fee1f34c87b2a9bf80823bf42331001f0d80dbc4\"\u003e\u003ccode\u003efee1f34\u003c/code\u003e\u003c/a\u003e docs: bump toon-fu to spec 4.3 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/3ca0c23bc55587d8b4e7eda1cc2be93c6f1a2895\"\u003e\u003ccode\u003e3ca0c23\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@toon-format/spec\u003c/code\u003e to v4.2.1 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/109decf93e4023372e6b4e5ab74fa110096505aa\"\u003e\u003ccode\u003e109decf\u003c/code\u003e\u003c/a\u003e docs: add toon-fu to community implementations (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/a0b3c22fe826f7c48e67cd3e9482bc76ebe7efd5\"\u003e\u003ccode\u003ea0b3c22\u003c/code\u003e\u003c/a\u003e docs: add the v4.2 section to the v4 release page (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/12a1bac2e0749aae3d46c2fe13d9fd71f36a04f8\"\u003e\u003ccode\u003e12a1bac\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@toon-format/spec\u003c/code\u003e to v4.2.0 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/toon-format/toon/compare/v4.1.1...v4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `csv-stringify` from 6.8.3 to 6.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adaltas/node-csv/blob/master/packages/csv-stringify/CHANGELOG.md\"\u003ecsv-stringify's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adaltas/node-csv/compare/csv-stringify@6.8.3...csv-stringify@6.9.0\"\u003e6.9.0\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e expose csv error and normalize_options (\u003ca href=\"https://github.com/adaltas/node-csv/commit/963388da88d150e0ab2dafa2ad4382917c25cc06\"\u003e963388d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e do not alter the source record when columns is set (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/504\"\u003e#504\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/041deff3f9b811e73ac0d151d00c605eaf2a00d6\"\u003e041deff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve header cast context when eof is false (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/505\"\u003e#505\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/a38ef064a099cdac907cd170d028d8ced3fb1c52\"\u003ea38ef06\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve negative numeric values (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/510\"\u003e#510\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/0002d56f882eb386510ee725d318f06bfeccc9cc\"\u003e0002d56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve objects returned by cast functions (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/509\"\u003e#509\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/1742c9ff3386f9a20e3fdcf452322e75b3a19f1a\"\u003e1742c9f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e quote fields containing a carriage return (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/d64d410b21cf126d410c79c9448b648531a2e8af\"\u003ed64d410\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/adaltas/node-csv/commit/594c6469c4a7376c1048d13c47859c2f91674206\"\u003e\u003ccode\u003e594c646\u003c/code\u003e\u003c/a\u003e chore(release): publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/9f041459c37f881ecf2f3a2610f7b76f5df89632\"\u003e\u003ccode\u003e9f04145\u003c/code\u003e\u003c/a\u003e build: latest dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/d64d410b21cf126d410c79c9448b648531a2e8af\"\u003e\u003ccode\u003ed64d410\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): quote fields containing a carriage return (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/963388da88d150e0ab2dafa2ad4382917c25cc06\"\u003e\u003ccode\u003e963388d\u003c/code\u003e\u003c/a\u003e feat(csv-stringify): expose csv error and normalize_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/041deff3f9b811e73ac0d151d00c605eaf2a00d6\"\u003e\u003ccode\u003e041deff\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): do not alter the source record when columns is set (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/a38ef064a099cdac907cd170d028d8ced3fb1c52\"\u003e\u003ccode\u003ea38ef06\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): preserve header cast context when eof is false (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/8d4173d6d8dbb375ba8699cfd1d83af93b921f80\"\u003e\u003ccode\u003e8d4173d\u003c/code\u003e\u003c/a\u003e build: latest dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/c8caa1ccd262151c7d11add8fb7b454ed1d447a9\"\u003e\u003ccode\u003ec8caa1c\u003c/code\u003e\u003c/a\u003e build: generate latest dist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/3433750d78b890cb4c05c959af259e950c4ba473\"\u003e\u003ccode\u003e3433750\u003c/code\u003e\u003c/a\u003e test: eslint format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6c45c9b2f5aac96b2097229749a3521840cf1dc2\"\u003e\u003ccode\u003e6c45c9b\u003c/code\u003e\u003c/a\u003e build: remove npx usage in package scripts\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adaltas/node-csv/commits/csv-stringify@6.9.0/packages/csv-stringify\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.15.15 to 16.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs@16.17.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eKeyboard-scrollable MDX tables\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables of \u003ccode\u003edefaultMdxComponents\u003c/code\u003e are focusable, so keyboard users can scroll wide tables in Safari.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3706\"\u003e#3706\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eUse \u003ccode\u003eprose-sm\u003c/code\u003e and \u003ccode\u003eprose-xs\u003c/code\u003e for small prose\u003c/h3\u003e\n\u003cp\u003eSmall prose in TOC items, type tables, API descriptions and AI chat scales its code and headings with the text.\u003c/p\u003e\n\u003ch3\u003eSpacious: define \u003ccode\u003e--fd-docs-height\u003c/code\u003e for pages\u003c/h3\u003e\n\u003cp\u003eSticky content of pages, like the example column of API pages, fits the page panel.\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLightbox for zoomable images\u003c/h3\u003e\n\u003cp\u003eZoomable images inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e open in one viewer, browse them with arrow keys, swipes or the side buttons.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003eimport { Lightbox } from 'fumadocs-ui/components/image-zoom';\n\u003cp\u003e\u0026lt;Lightbox\u0026gt;\u003cbr /\u003e\n\u0026lt;MDX components={getMDXComponents()} /\u0026gt;\u003cbr /\u003e\n\u0026lt;/Lightbox\u0026gt;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe image title is shown as caption, pass \u003ccode\u003ecaption\u003c/code\u003e to \u003ccode\u003e\u0026lt;ImageZoom /\u0026gt;\u003c/code\u003e for rich content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ermiz\u003c/code\u003e props don't apply inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded translation keys of the image viewer to \u003ccode\u003e@fumadocs/language\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eShow failed searches in the search dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;SearchDialog /\u0026gt;\u003c/code\u003e accepts the \u003ccode\u003eerror\u003c/code\u003e of search hooks, \u003ccode\u003e\u0026lt;SearchDialogList /\u0026gt;\u003c/code\u003e shows it above the previous results.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.2\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/fuma-nama/fumadocs/commit/aedcf4cc8e87da24f106827393c8d2bcf7e96f98\"\u003e\u003ccode\u003eaedcf4c\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ca6c7dd47d8ce13baac5c1161a9ea2a818fbc731\"\u003e\u003ccode\u003eca6c7dd\u003c/code\u003e\u003c/a\u003e fix(ui): focusable tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/481ca804dc701005eedcf5c3b88e26b5d3ce62ea\"\u003e\u003ccode\u003e481ca80\u003c/code\u003e\u003c/a\u003e feat(openapi): better default for allowed origins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0de0c90ffcce866ea3946b6ecbe53c45a5e88034\"\u003e\u003ccode\u003e0de0c90\u003c/code\u003e\u003c/a\u003e feat(openapi): standalone package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b039d94ac8ab45e63a5ad30d16db37119b479781\"\u003e\u003ccode\u003eb039d94\u003c/code\u003e\u003c/a\u003e fix(openapi): avoid storing secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/f510d67db33cb35089fa0bfa094a2ab65a19ae50\"\u003e\u003ccode\u003ef510d67\u003c/code\u003e\u003c/a\u003e fix(*): enforce prose size variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/28136ec6ffb875cd1d02927d2197653aff8836d1\"\u003e\u003ccode\u003e28136ec\u003c/code\u003e\u003c/a\u003e feat(openapi): better example request/response sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/aefd67cb89ddd399a1446be7f6452f702aac7f9f\"\u003e\u003ccode\u003eaefd67c\u003c/code\u003e\u003c/a\u003e fix(openapi): preserve backward compatibility \u0026amp; page-level auth stores\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/dd361bfefc3346bbd855c4a98e4f8dae909c0039\"\u003e\u003ccode\u003edd361bf\u003c/code\u003e\u003c/a\u003e feat(openapi): full auth methods support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/6ef535eacc87e2308c9cea6f2823c3c4968268a4\"\u003e\u003ccode\u003e6ef535e\u003c/code\u003e\u003c/a\u003e docs: fix lint\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.15.15...fumadocs@16.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.15.15 to 16.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs@16.17.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eKeyboard-scrollable MDX tables\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables of \u003ccode\u003edefaultMdxComponents\u003c/code\u003e are focusable, so keyboard users can scroll wide tables in Safari.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3706\"\u003e#3706\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eUse \u003ccode\u003eprose-sm\u003c/code\u003e and \u003ccode\u003eprose-xs\u003c/code\u003e for small prose\u003c/h3\u003e\n\u003cp\u003eSmall prose in TOC items, type tables, API descriptions and AI chat scales its code and headings with the text.\u003c/p\u003e\n\u003ch3\u003eSpacious: define \u003ccode\u003e--fd-docs-height\u003c/code\u003e for pages\u003c/h3\u003e\n\u003cp\u003eSticky content of pages, like the example column of API pages, fits the page panel.\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLightbox for zoomable images\u003c/h3\u003e\n\u003cp\u003eZoomable images inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e open in one viewer, browse them with arrow keys, swipes or the side buttons.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003eimport { Lightbox } from 'fumadocs-ui/components/image-zoom';\n\u003cp\u003e\u0026lt;Lightbox\u0026gt;\u003cbr /\u003e\n\u0026lt;MDX components={getMDXComponents()} /\u0026gt;\u003cbr /\u003e\n\u0026lt;/Lightbox\u0026gt;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe image title is shown as caption, pass \u003ccode\u003ecaption\u003c/code\u003e to \u003ccode\u003e\u0026lt;ImageZoom /\u0026gt;\u003c/code\u003e for rich content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ermiz\u003c/code\u003e props don't apply inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded translation keys of the image viewer to \u003ccode\u003e@fumadocs/language\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eShow failed searches in the search dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;SearchDialog /\u0026gt;\u003c/code\u003e accepts the \u003ccode\u003eerror\u003c/code\u003e of search hooks, \u003ccode\u003e\u0026lt;SearchDialogList /\u0026gt;\u003c/code\u003e shows it above the previous results.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.2\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/fuma-nama/fumadocs/commit/aedcf4cc8e87da24f106827393c8d2bcf7e96f98\"\u003e\u003ccode\u003eaedcf4c\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ca6c7dd47d8ce13baac5c1161a9ea2a818fbc731\"\u003e\u003ccode\u003eca6c7dd\u003c/code\u003e\u003c/a\u003e fix(ui): focusable tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/481ca804dc701005eedcf5c3b88e26b5d3ce62ea\"\u003e\u003ccode\u003e481ca80\u003c/code\u003e\u003c/a\u003e feat(openapi): better default for allowed origins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0de0c90ffcce866ea3946b6ecbe53c45a5e88034\"\u003e\u003ccode\u003e0de0c90\u003c/code\u003e\u003c/a\u003e feat(openapi): standalone package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b039d94ac8ab45e63a5ad30d16db37119b479781\"\u003e\u003ccode\u003eb039d94\u003c/code\u003e\u003c/a\u003e fix(openapi): avoid storing secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/f510d67db33cb35089fa0bfa094a2ab65a19ae50\"\u003e\u003ccode\u003ef510d67\u003c/code\u003e\u003c/a\u003e fix(*): enforce prose size variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/28136ec6ffb875cd1d02927d2197653aff8836d1\"\u003e\u003ccode\u003e28136ec\u003c/code\u003e\u003c/a\u003e feat(openapi): better example request/response sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/aefd67cb89ddd399a1446be7f6452f702aac7f9f\"\u003e\u003ccode\u003eaefd67c\u003c/code\u003e\u003c/a\u003e fix(openapi): preserve backward compatibility \u0026amp; page-level auth stores\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/dd361bfefc3346bbd855c4a98e4f8dae909c0039\"\u003e\u003ccode\u003edd361bf\u003c/code\u003e\u003c/a\u003e feat(openapi): full auth methods support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/6ef535eacc87e2308c9cea6f2823c3c4968268a4\"\u003e\u003ccode\u003e6ef535e\u003c/code\u003e\u003c/a\u003e docs: fix lint\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.15.15...fumadocs@16.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ink` from 7.1.1 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vadimdemedes/ink/releases\"\u003eink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire React 19.3+  7829102\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eminWidth\u003c/code\u003e and \u003ccode\u003emaxWidth\u003c/code\u003e on \u003ccode\u003e\u0026lt;Box\u0026gt;\u003c/code\u003e now only accept numbers (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/1029\"\u003e#1029\u003c/a\u003e)  7cd7fd9\n\u003cul\u003e\n\u003cli\u003ePercentage strings were never documented as supported, and Yoga resolved them against the wrong ancestor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estdin\u003c/code\u003e, \u003ccode\u003estdout\u003c/code\u003e, and \u003ccode\u003estderr\u003c/code\u003e are now typed as generic Node.js streams (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/981\"\u003e#981\u003c/a\u003e)  eb82d8f\n\u003cul\u003e\n\u003cli\u003eThis applies to the \u003ccode\u003erender()\u003c/code\u003e options and to \u003ccode\u003euseStdin()\u003c/code\u003e, \u003ccode\u003euseStdout()\u003c/code\u003e, and \u003ccode\u003euseStderr()\u003c/code\u003e. TTY-only properties like \u003ccode\u003estdout.columns\u003c/code\u003e are no longer part of the types\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euseInput\u003c/code\u003e no longer receives unrecognized terminal control sequences (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/1014\"\u003e#1014\u003c/a\u003e)  c76893e\n\u003cul\u003e\n\u003cli\u003eMouse reports, focus in/out events, cursor position reports, and other terminal replies used to arrive in \u003ccode\u003einput\u003c/code\u003e with the ESC stripped, as if typed. They are now dropped\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/vadimdemedes/ink#contentoffsetx\"\u003e\u003ccode\u003econtentOffsetX\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#contentoffsety\"\u003e\u003ccode\u003econtentOffsetY\u003c/code\u003e\u003c/a\u003e props to \u003ccode\u003e\u0026lt;Box\u0026gt;\u003c/code\u003e for building scrollable views (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/765\"\u003e#765\u003c/a\u003e)  3ba5828\n\u003cul\u003e\n\u003cli\u003eCombine with \u003ccode\u003eoverflow=\u0026quot;hidden\u0026quot;\u003c/code\u003e. See the \u003ca href=\"https://github.com/vadimdemedes/ink/tree/master/examples/scroll\"\u003escroll example\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/vadimdemedes/ink#clientwidth\"\u003e\u003ccode\u003eclientWidth\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#clientheight\"\u003e\u003ccode\u003eclientHeight\u003c/code\u003e\u003c/a\u003e to \u003ccode\u003euseBoxMetrics()\u003c/code\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#measureelementref\"\u003e\u003ccode\u003emeasureElement()\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/988\"\u003e#988\u003c/a\u003e)  3ba5828\n\u003cul\u003e\n\u003cli\u003eThe element size excluding borders, which is the space its content can occupy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAccept any Node.js stream for the \u003ccode\u003estdin\u003c/code\u003e, \u003ccode\u003estdout\u003c/code\u003e, and \u003ccode\u003estderr\u003c/code\u003e options of \u003ccode\u003erender()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/981\"\u003e#981\u003c/a\u003e)  eb82d8f\n\u003cul\u003e\n\u003cli\u003eFor example, \u003ccode\u003ePassThrough\u003c/code\u003e or other \u003ccode\u003eReadable\u003c/co...\n\n_Description has been truncated_","html_url":"https://github.com/mayankjain1815-commits/OmniRoute/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayankjain1815-commits%2FOmniRoute/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"},{"uuid":"5917916477","node_id":"PR_kwDORsiiJc8AAAABJQMpXw","number":27,"state":"open","title":"Bump the npm-minor-and-patch group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-19T04:40:35.000Z","updated_at":"2026-10-19T04:40:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":10,"packages":[{"name":"esbuild","old_version":"0.28.1","new_version":"0.28.2","repository_url":"https://github.com/evanw/esbuild"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"jspdf-autotable","old_version":"5.0.8","new_version":"5.0.9","repository_url":"https://github.com/simonbengtsson/jsPDF-AutoTable"},{"name":"mssql","old_version":"12.7.0","new_version":"12.7.9","repository_url":"https://github.com/tediousjs/node-mssql"},{"name":"pdfkit","old_version":"0.18.0","new_version":"0.20.2","repository_url":"https://github.com/foliojs/pdfkit"},{"name":"react","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-router-dom","old_version":"7.18.3","new_version":"7.18.4","repository_url":"https://github.com/remix-run/react-router"},{"name":"zod","old_version":"4.4.3","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [esbuild](https://github.com/evanw/esbuild) | `0.28.1` | `0.28.2` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.0` | `8.7.1` |\n| [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable) | `5.0.8` | `5.0.9` |\n| [mssql](https://github.com/tediousjs/node-mssql) | `12.7.0` | `12.7.9` |\n| [pdfkit](https://github.com/foliojs/pdfkit) | `0.18.0` | `0.20.2` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.8` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.8` | `19.3.1` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.3` | `7.18.4` |\n| [zod](https://github.com/colinhacks/zod) | `4.4.3` | `4.6.7` |\n\n\nUpdates `esbuild` from 0.28.1 to 0.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evanw/esbuild/releases\"\u003eesbuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix tree shaking bug due to TypeScript import alias (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific \u003ccode\u003eimport\u003c/code\u003e assignment and looks something like this:\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003eimport Base from './dep.js';\r\nimport Alias = Base.SomeType;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS minification bug involving \u003ccode\u003e\u0026amp;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug where esbuild's CSS minifier incorrectly removed a \u003ccode\u003e\u0026amp;\u003c/code\u003e when it was unsafe to do so. Here is an example:\u003c/p\u003e\n\u003cpre lang=\"css\"\u003e\u003ccode\u003e/* Original code */\r\n.a .b {\r\n  \u0026amp; .b:not(\u0026amp; .c) {\r\n    color: red;\r\n  }\r\n}\r\n\u003cp\u003e/* Old output (with --minify) */\u003cbr /\u003e\n.a .b{.b:not(\u0026amp; .c){color:red}}\u003c/p\u003e\n\u003cp\u003e/* New output (with --minify) */\u003cbr /\u003e\n.a .b{\u0026amp; .b:not(\u0026amp; .c){color:red}}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis should match \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;yes\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e but not \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;no\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e. The old output incorrectly matched both.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid overwriting input files without \u003ccode\u003e--allow-overwrite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor example: \u003ccode\u003eesbuild input.js --outfile=input.js\u003c/code\u003e tells esbuild to overwrite \u003ccode\u003einput.js\u003c/code\u003e with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.\u003c/p\u003e\n\u003cp\u003eThis release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless \u003ccode\u003e--allow-overwrite\u003c/code\u003e is explicitly present. This is done by not writing out any files when a build error is encountered.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect code generated when using top-level await (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing \u003ccode\u003easync\u003c/code\u003e on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an \u003ccode\u003easync\u003c/code\u003e module wrapper.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a minification bug with lowered logical assignment operators (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4508\"\u003e#4508\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Original code\r\nfunction foo() {\r\n  let x\r\n  bar(x ||= {})\r\n\u003c/code\u003e\u003c/pre\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/evanw/esbuild/blob/main/CHANGELOG.md\"\u003eesbuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix tree shaking bug due to TypeScript import alias (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific \u003ccode\u003eimport\u003c/code\u003e assignment and looks something like this:\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003eimport Base from './dep.js';\nimport Alias = Base.SomeType;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS minification bug involving \u003ccode\u003e\u0026amp;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug where esbuild's CSS minifier incorrectly removed a \u003ccode\u003e\u0026amp;\u003c/code\u003e when it was unsafe to do so. Here is an example:\u003c/p\u003e\n\u003cpre lang=\"css\"\u003e\u003ccode\u003e/* Original code */\n.a .b {\n  \u0026amp; .b:not(\u0026amp; .c) {\n    color: red;\n  }\n}\n\u003cp\u003e/* Old output (with --minify) */\u003cbr /\u003e\n.a .b{.b:not(\u0026amp; .c){color:red}}\u003c/p\u003e\n\u003cp\u003e/* New output (with --minify) */\u003cbr /\u003e\n.a .b{\u0026amp; .b:not(\u0026amp; .c){color:red}}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis should match \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;yes\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e but not \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;no\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e. The old output incorrectly matched both.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid overwriting input files without \u003ccode\u003e--allow-overwrite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor example: \u003ccode\u003eesbuild input.js --outfile=input.js\u003c/code\u003e tells esbuild to overwrite \u003ccode\u003einput.js\u003c/code\u003e with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.\u003c/p\u003e\n\u003cp\u003eThis release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless \u003ccode\u003e--allow-overwrite\u003c/code\u003e is explicitly present. This is done by not writing out any files when a build error is encountered.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect code generated when using top-level await (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing \u003ccode\u003easync\u003c/code\u003e on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an \u003ccode\u003easync\u003c/code\u003e module wrapper.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a minification bug with lowered logical assignment operators (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4508\"\u003e#4508\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Original code\nfunction foo() {\n  let x\n\u003c/code\u003e\u003c/pre\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/evanw/esbuild/commit/609683d892977362a0f99026cb74b96263d728a9\"\u003e\u003ccode\u003e609683d\u003c/code\u003e\u003c/a\u003e publish 0.28.2 to npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/11b1fe48df6859393d9469f323b5ebd17baaf989\"\u003e\u003ccode\u003e11b1fe4\u003c/code\u003e\u003c/a\u003e add to release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/ab50d91559a27e54cd0a27a403389130ea10d97d\"\u003e\u003ccode\u003eab50d91\u003c/code\u003e\u003c/a\u003e css: fix green/blue channel swap in oklch gamut mapping (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4488\"\u003e#4488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/04627b6cf99b4a7491bebb0268173a7c77a85030\"\u003e\u003ccode\u003e04627b6\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e: \u003ccode\u003easync\u003c/code\u003e TLA checks need a worklist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/5c15177a308c7224604058a769c4abf0a66b0a36\"\u003e\u003ccode\u003e5c15177\u003c/code\u003e\u003c/a\u003e disable \u003ccode\u003egopls\u003c/code\u003e in the \u003ccode\u003ego\u003c/code\u003e folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/fc2ee9babc5a2e8ea7ec7c10dd5850b71f7cec7e\"\u003e\u003ccode\u003efc2ee9b\u003c/code\u003e\u003c/a\u003e css: adjust parser to allow \u003ccode\u003e--foo: {...}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/209db54371e62ad1c50e12e56bb93c74c53b0408\"\u003e\u003ccode\u003e209db54\u003c/code\u003e\u003c/a\u003e release notes for css nesting bugfix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/c625d31bf08a0647ec724bf76c7115f7aec55971\"\u003e\u003ccode\u003ec625d31\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e: preserve nested ampersands during minification (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4500\"\u003e#4500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/34474e278528a60f58c959c0f422d2bfa6f6886d\"\u003e\u003ccode\u003e34474e2\u003c/code\u003e\u003c/a\u003e better isolation of current part in js parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/07f6e8c50677e0b41e5ed726c08b0ea200b14e5b\"\u003e\u003ccode\u003e07f6e8c\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e: \u003ccode\u003eimport\u003c/code\u003e assignment tree-shaking bug\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evanw/esbuild/compare/v0.28.1...v0.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jspdf-autotable` from 5.0.8 to 5.0.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/releases\"\u003ejspdf-autotable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature/text option pass by \u003ca href=\"https://github.com/TimT1919\"\u003e\u003ccode\u003e@​TimT1919\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simonbengtsson/jsPDF-AutoTable/pull/1114\"\u003esimonbengtsson/jsPDF-AutoTable#1114\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/TimT1919\"\u003e\u003ccode\u003e@​TimT1919\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simonbengtsson/jsPDF-AutoTable/pull/1114\"\u003esimonbengtsson/jsPDF-AutoTable#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\"\u003ehttps://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\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/simonbengtsson/jsPDF-AutoTable/commit/af6dd38ff6b2383069407ef352efcea127e2cb82\"\u003e\u003ccode\u003eaf6dd38\u003c/code\u003e\u003c/a\u003e 5.0.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/bad76df5e1ee9e7bdbca98d80c3970eac1ba3385\"\u003e\u003ccode\u003ebad76df\u003c/code\u003e\u003c/a\u003e test: add test case that textOptions is passed to jspdf.text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/443bb0e41e4808ba1f7601ef415722e6871c29c1\"\u003e\u003ccode\u003e443bb0e\u003c/code\u003e\u003c/a\u003e feat: pass textOptions to autoTableText in printRow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/d66b06b96fc68a008a21602a11d10626aeef7651\"\u003e\u003ccode\u003ed66b06b\u003c/code\u003e\u003c/a\u003e feat: pass textOptions to jspdf.text in autoTableText\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/898e2751095c79b7b83f21d3da23087c415ab7b3\"\u003e\u003ccode\u003e898e275\u003c/code\u003e\u003c/a\u003e feat: add textOptions to Styles\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mssql` from 12.7.0 to 12.7.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tediousjs/node-mssql/releases\"\u003emssql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.7.9\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.8...v12.7.9\"\u003e12.7.9\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereject begin() and prepare() with ECONNCLOSED when the pool is not connected (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d7bb9a3f84fbb8ae59fc0ab98d2ed52053436155\"\u003ed7bb9a3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject begin() and prepare() with ENOCONN when there is no pool (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c26163ee8d898dedcee4b311762c1886264e62d0\"\u003ec26163e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 bulk loads swallowing what their callback throws (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/670c61244fec839b2cb0b11fa287c751ac29a2f6\"\u003e670c612\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.7...v12.7.8\"\u003e12.7.8\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecall a request's callback once when it throws (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c4790cdcbc57ea4f62426302f547bac3f2c30286\"\u003ec4790cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease the connection when msnodesqlv8 throws starting a request (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/608da61878841ab0efb2dd14e44c74ee90aefd85\"\u003e608da61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esettle msnodesqlv8 bulk loads when no connection can be acquired (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/7774ae0162b66270bf9e13b5ba9b6ca04d917e3d\"\u003e7774ae0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.6...v12.7.7\"\u003e12.7.7\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecomplete msnodesqlv8 streams when an error ends the batch (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/adbb02832a733e5bdd029b0a017d14c90a51cb91\"\u003eadbb028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egive the connection back when a transaction fails to begin (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/1ac92d163ff6bfe8854e02a16b3bf44d6dfd12ca\"\u003e1ac92d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egive the connection back when an msnodesqlv8 transaction fails to begin (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/8372c96b08f1e5a4325b7fc7782ef510ba5a64f0\"\u003e8372c96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epass request errors to the destination of Request.pipe() (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fc19d959c67d2a7acfe8ab1b8fd718697a5060fd\"\u003efc19d95\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epublish the destroy of a pooled tedious connection that has already closed (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fb66299f658fdcc9ec60dcc58d53a7cf12280b24\"\u003efb66299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease a piped request when its destination fails (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d039a07671cc6d7fab64aa8bb828ba631f6f766a\"\u003ed039a07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume a request when its readable stream is destroyed (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/cbcd0f44ab20e49966e0bb0ca8a880810a4a9424\"\u003ecbcd0f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 streams losing rows under back pressure (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/061048ec3455611803c001d30c8966c8539c3263\"\u003e061048e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 streams resumed after they end from hanging the connection (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/081483fcc5c2d60c7534a7537554f557e89ddfaf\"\u003e081483f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.5...v12.7.6\"\u003e12.7.6\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebulk load created tables and Xml columns on tedious (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/0a7a02c0e3ea216d6c4070310ce7002f12c806c2\"\u003e0a7a02c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.4...v12.7.5\"\u003e12.7.5\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ekeep every preceding error on msnodesqlv8 requests (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d040e22a13abb96788d3d41f600b21cb2098dd8a\"\u003ed040e22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject a terminated msnodesqlv8 statement with its own error (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/3468d963e26634b23b1cfd255b66a8307be9fca2\"\u003e3468d96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject msnodesqlv8 requests whose errors do not end the batch (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/6cedc31f524823a2ee337e33607400030405343b\"\u003e6cedc31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereport cancelled msnodesqlv8 requests, including paused streams, as ECANCEL (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/11923a26e8f2ce7a0b681036b693efaab6949736\"\u003e11923a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereport errors from msnodesqlv8 commit and rollback (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/77a8dd825b8ce31937790fd2ffeeb535b61276f4\"\u003e77a8dd8\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/tediousjs/node-mssql/commit/d0803a081f13fb9efb7b8d9cb06f93c54c6ff619\"\u003e\u003ccode\u003ed0803a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1932\"\u003e#1932\u003c/a\u003e from dhensby/fix/msnodesqlv8-bulk-bind-reentry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/97aa78e4162d1d1fb3ed4d984a69f1b1b6335025\"\u003e\u003ccode\u003e97aa78e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1931\"\u003e#1931\u003c/a\u003e from dhensby/fix/transaction-prepare-connected-guard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/670c61244fec839b2cb0b11fa287c751ac29a2f6\"\u003e\u003ccode\u003e670c612\u003c/code\u003e\u003c/a\u003e fix: stop msnodesqlv8 bulk loads swallowing what their callback throws\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fddb3a3359832ed2104c3eea4dd58def24e40ea6\"\u003e\u003ccode\u003efddb3a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1927\"\u003e#1927\u003c/a\u003e from dhensby/fix/pool-acquire-callback-reentry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d7bb9a3f84fbb8ae59fc0ab98d2ed52053436155\"\u003e\u003ccode\u003ed7bb9a3\u003c/code\u003e\u003c/a\u003e fix: reject begin() and prepare() with ECONNCLOSED when the pool is not conne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c26163ee8d898dedcee4b311762c1886264e62d0\"\u003e\u003ccode\u003ec26163e\u003c/code\u003e\u003c/a\u003e fix: reject begin() and prepare() with ENOCONN when there is no pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/da4447de2626e7fc6cc769c613402d5030639a9b\"\u003e\u003ccode\u003eda4447d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1925\"\u003e#1925\u003c/a\u003e from dhensby/fix/msnodesqlv8-bulk-acquire-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/e08812ccf3bc3a9d35d3b54f3f186c149f3dcb36\"\u003e\u003ccode\u003ee08812c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1926\"\u003e#1926\u003c/a\u003e from dhensby/docs/ereqinprog-request-errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c4790cdcbc57ea4f62426302f547bac3f2c30286\"\u003e\u003ccode\u003ec4790cd\u003c/code\u003e\u003c/a\u003e fix: call a request's callback once when it throws\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/608da61878841ab0efb2dd14e44c74ee90aefd85\"\u003e\u003ccode\u003e608da61\u003c/code\u003e\u003c/a\u003e fix: release the connection when msnodesqlv8 throws starting a request\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.0...v12.7.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdfkit` from 0.18.0 to 0.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/foliojs/pdfkit/releases\"\u003epdfkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.20.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bundlers and file tracers packing the ESM copies of the standard font metrics instead of the CommonJS ones the Node build actually loads, which left \u003ccode\u003eCannot find module\u003c/code\u003e errors for every standard font at runtime, by resolving the internal \u003ccode\u003e#standard-fonts/*\u003c/code\u003e mapping to a single file under all conditions\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.file()\u003c/code\u003e throwing when the same in-memory attachment is embedded twice under one name, because the creation and modified dates the deduplication check compares are absent for sources that are not read from disk\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.text()\u003c/code\u003e throwing \u003ccode\u003eunsupported number: NaN\u003c/code\u003e when \u003ccode\u003elineBreak: false\u003c/code\u003e is combined with \u003ccode\u003eunderline\u003c/code\u003e, \u003ccode\u003estrike\u003c/code\u003e, \u003ccode\u003elink\u003c/code\u003e or \u003ccode\u003egoTo\u003c/code\u003e, because the rendered width was computed from the line wrapper's measurements, which are never produced when wrapping is disabled\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.20.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a Node ESM build so \u003ccode\u003eimport 'pdfkit'\u003c/code\u003e in Node resolves to the Node build (real file system, native zlib, Node streams, self-registering standard fonts) instead of the browser bundle\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.20.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eTLDR:  \u0026quot;A PDF generation library for Node.js\u0026quot; -\u0026gt; \u0026quot;A JavaScript PDF generation library\u0026quot;\u003c/p\u003e\n\u003ch3\u003eStandard Font Support rewritten\u003c/h3\u003e\n\u003cp\u003eStandard font support has been rewritten to use pre-parsed font metrics instead of parsing raw AFM definitions at runtime. The new approach is more efficient (less runtime overhead and memory usage) and reduces the size of the browser bundle significantly. Standalone build which bundles all standard fonts is down to 1.3MB from 2.3MB.\u003c/p\u003e\n\u003cp\u003eIn Node, font metrics are loaded lazily as before, while in browser builds, except the standalone one, each font must be imported from \u003ccode\u003epdfkit/standard-fonts/*\u003c/code\u003e and registered with \u003ccode\u003eregisterStdFonts()\u003c/code\u003e. Previously, to use a standard font in browser was necessary to use a bundler.\u003c/p\u003e\n\u003cp\u003eSee usage example in output helpers section below.\u003c/p\u003e\n\u003ch3\u003eRemoval of Node specific dependencies\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eBuffer\u003c/code\u003e is no longer used internally. \u003ccode\u003eUint8Array\u003c/code\u003e is now the minimum denominator for binary data in both Node and browsers. Since \u003ccode\u003eBuffer\u003c/code\u003e is a Uint8Array subclass, this change is fully backward compatible.\u003c/p\u003e\n\u003cp\u003eNative \u003ccode\u003efs\u003c/code\u003e, \u003ccode\u003ezlib\u003c/code\u003e and \u003ccode\u003eReadableStream\u003c/code\u003e are conditionally imported only in Node. Browser builds use minimal implementations. This approach gives us the best of both worlds: Node builds still use the native modules, while browser ones are portable.\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/diegomura\"\u003e\u003ccode\u003e@​diegomura\u003c/code\u003e\u003c/a\u003e for his help in removing the Node specific dependencies.\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003eregisterFile\u003c/code\u003e API\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eregisterFile(path, data)\u003c/code\u003e API allows registering in-memory files globally. The \u003ccode\u003edata\u003c/code\u003e argument must be a \u003ccode\u003eUint8Array\u003c/code\u003e. Passing \u003ccode\u003eundefined\u003c/code\u003e as data unregisters the path.\u003c/p\u003e\n\u003cp\u003eIn browsers, it can be used as a simplified virtual file system. In Node, this is useful for registering fonts, images and other resources that are not available on disk. The native file system is still used when the path is not registered.\u003c/p\u003e\n\u003cpre lang=\"javascript\"\u003e\u003ccode\u003eimport { PDFDocument, registerFile } from 'pdfkit';\r\n\u003cp\u003econst response = await fetch('/fonts/Roboto-Regular.ttf');\nconst fontData = new Uint8Array(await response.arrayBuffer());\u003c/p\u003e\n\u003cp\u003eregisterFile('fonts/Roboto-Regular.ttf', fontData);\u003c/p\u003e\n\u003cp\u003econst doc = new PDFDocument();\u003c/p\u003e\n\u003cp\u003e// register an alias for the font path\ndoc.registerFont('Roboto', 'fonts/Roboto-Regular.ttf');\n// or use the path directly\ndoc.font('fonts/Roboto-Regular.ttf');\u003c/p\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/foliojs/pdfkit/blob/master/CHANGELOG.md\"\u003epdfkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e[v0.20.2] - 2026-08-29\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bundlers and file tracers packing the ESM copies of the standard font metrics instead of the CommonJS ones the Node build actually loads, which left \u003ccode\u003eCannot find module\u003c/code\u003e errors for every standard font at runtime, by resolving the internal \u003ccode\u003e#standard-fonts/*\u003c/code\u003e mapping to a single file under all conditions\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.file()\u003c/code\u003e throwing when the same in-memory attachment is embedded twice under one name, because the creation and modified dates the deduplication check compares are absent for sources that are not read from disk\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.text()\u003c/code\u003e throwing \u003ccode\u003eunsupported number: NaN\u003c/code\u003e when \u003ccode\u003elineBreak: false\u003c/code\u003e is combined with \u003ccode\u003eunderline\u003c/code\u003e, \u003ccode\u003estrike\u003c/code\u003e, \u003ccode\u003elink\u003c/code\u003e or \u003ccode\u003egoTo\u003c/code\u003e, because the rendered width was computed from the line wrapper's measurements, which are never produced when wrapping is disabled\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.20.1] - 2026-08-23\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a Node ESM build so \u003ccode\u003eimport 'pdfkit'\u003c/code\u003e in Node resolves to the Node build (real file system, native zlib, Node streams, self-registering standard fonts) instead of the browser bundle\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.20.0] - 2026-08-23\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING CHANGE] Remove the virtual file system (\u003ccode\u003epdfkit/virtual-fs\u003c/code\u003e). Browser builds no longer depend on \u003ccode\u003efs\u003c/code\u003e: use \u003ccode\u003eregisterFile\u003c/code\u003e to register \u003ccode\u003eUint8Array\u003c/code\u003e data under a path, pass a \u003ccode\u003eUint8Array\u003c/code\u003e or \u003ccode\u003eArrayBuffer\u003c/code\u003e directly to \u003ccode\u003eregisterFont\u003c/code\u003e, \u003ccode\u003eimage\u003c/code\u003e and \u003ccode\u003efile\u003c/code\u003e, or pass a data URL directly to \u003ccode\u003eimage\u003c/code\u003e and \u003ccode\u003efile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregisterFile(path, data, options)\u003c/code\u003e to globally register in-memory files in Node and browsers, with optional \u003ccode\u003ebirthtime\u003c/code\u003e and \u003ccode\u003ectime\u003c/code\u003e metadata. Passing \u003ccode\u003eundefined\u003c/code\u003e as data unregisters the path\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Export \u003ccode\u003ePDFDocument\u003c/code\u003e, \u003ccode\u003eLineWrapper\u003c/code\u003e and \u003ccode\u003eregisterFile\u003c/code\u003e as named exports from the main Node and browser entry points while preserving the default \u003ccode\u003ePDFDocument\u003c/code\u003e export\u003c/li\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003etoBlob(document)\u003c/code\u003e and \u003ccode\u003etoBytes(document)\u003c/code\u003e output helpers under \u003ccode\u003epdfkit/output\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAccept already-parsed fontkit \u003ccode\u003eFont\u003c/code\u003e instances in \u003ccode\u003edoc.font()\u003c/code\u003e and \u003ccode\u003eregisterFont\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eLoad the PDF/A ICC profile from disk only when needed in Node, while continuing to bundle it in browser builds\u003c/li\u003e\n\u003cli\u003eAdd tools to convert raw AFM standard-font definitions into parsed or compact runtime JavaScript modules\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Use generated standard-font data instead of parsing raw AFM definitions at runtime. Node loads font metrics lazily; browser applications must import each font they use from \u003ccode\u003epdfkit/standard-fonts/*\u003c/code\u003e and register it with \u003ccode\u003eregisterStdFonts()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Restrict AcroForm options to documented mappings and explicit escape hatches.\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Stop automatically uppercasing annotation option keys.\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Throw from \u003ccode\u003eaddNamedEmbeddedFile\u003c/code\u003e when no ref is given, instead of writing an unparseable \u003ccode\u003eundefined\u003c/code\u003e token into the \u003ccode\u003e/EmbeddedFiles\u003c/code\u003e name tree\u003c/li\u003e\n\u003cli\u003eDo not mutate options passed to \u003ccode\u003edoc.annotate()\u003c/code\u003e and its convenience methods (link, note, strike, lineAnnotation, rectAnnotation, ellipseAnnotation, textAnnotation, fileAnnotation)\u003c/li\u003e\n\u003cli\u003ePersist font options when adding a new page. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1739\"\u003e#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eUint8Array\u003c/code\u003e instead of Node's \u003ccode\u003eBuffer\u003c/code\u003e internally\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edate\u003c/code\u003e text field formatting emitting invalid JavaScript, so the format was never applied. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1546\"\u003e#1546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eindentAllLines\u003c/code\u003e applying the indent again on every paragraph and every page break, and keep it applied across continued text. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1606\"\u003e#1606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a hole in a sparse array being skipped entirely, which shifted every later entry down one\u003c/li\u003e\n\u003cli\u003eEncrypt strings inside name trees. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.19.1] - 2026-06-10\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix RGB JPEG embedded as DeviceGray (0.19.0 regression) (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.19.0] - 2026-06-07\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump node version requirement to 20+\u003c/li\u003e\n\u003cli\u003eBump minimum supported browsers to Firefox 115, iOS/Safari 16\u003c/li\u003e\n\u003cli\u003eFix text with input x as null\u003c/li\u003e\n\u003cli\u003eAdd opacity option to \u003ccode\u003edoc.image()\u003c/code\u003e to control image transparency\u003c/li\u003e\n\u003cli\u003eFix corrupted PDF when mixing standard and embedded fonts that share postscript name\u003c/li\u003e\n\u003cli\u003eFix PDF/UA compliance issues in kitchen-sink-accessible example\u003c/li\u003e\n\u003cli\u003eAdd bbox and placement options to PDFStructureElement for PDF/UA compliance\u003c/li\u003e\n\u003cli\u003eExtend \u003ccode\u003eroundedRect\u003c/code\u003e with \u003ccode\u003eborderRadius\u003c/code\u003e as number for all corners or per-corner array (CSS order)\u003c/li\u003e\n\u003cli\u003eFix accessibility: scope in TH element\u003c/li\u003e\n\u003cli\u003eFix PDF Name escaping for spot colors with spaces (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1644\"\u003e#1644\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/foliojs/pdfkit/commit/8d72a71c3e2b03f3253c221065e9efcc69ca5b7d\"\u003e\u003ccode\u003e8d72a71\u003c/code\u003e\u003c/a\u003e v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/70c9ad5adc5264c82f87805e1448b2028307fd13\"\u003e\u003ccode\u003e70c9ad5\u003c/code\u003e\u003c/a\u003e Document the parameter list each destination type takes (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/e04b677d71ce8e3af1263454e3e25c346b479535\"\u003e\u003ccode\u003ee04b677\u003c/code\u003e\u003c/a\u003e Fix doc.text() throwing NaN with lineBreak false and underline/strike/link/go...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/c6f57c63eca91eb4f4d97eb59aee303cfb2a8532\"\u003e\u003ccode\u003ec6f57c6\u003c/code\u003e\u003c/a\u003e fix: resolve \u003ccode\u003e#standard-fonts/*\u003c/code\u003e to one file under every condition (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/b87b5aca02c815482b0b098a9a90e5b0eba2f5d6\"\u003e\u003ccode\u003eb87b5ac\u003c/code\u003e\u003c/a\u003e Fix case-insensitive lookup for named CSS colors (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1780\"\u003e#1780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/69671d9df0ff24878e9e800d4495bd30b043f324\"\u003e\u003ccode\u003e69671d9\u003c/code\u003e\u003c/a\u003e Fix doc.file() throwing when the same in-memory attachment is added twice (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/1f1abb809ee1aa766bd2f8f400c43b5bf3221b77\"\u003e\u003ccode\u003e1f1abb8\u003c/code\u003e\u003c/a\u003e Bump ip-address from 10.2.0 to 10.4.0 (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/f58c4c7d01ad9a39fbbc4c026c93f05711bc3788\"\u003e\u003ccode\u003ef58c4c7\u003c/code\u003e\u003c/a\u003e Bump postcss from 8.5.15 to 8.5.25 (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/f048bddde0057f0ececa4972d7ccf687ea36b168\"\u003e\u003ccode\u003ef048bdd\u003c/code\u003e\u003c/a\u003e v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/910c86a84a17f524dcc4360bf195e6c4a6203908\"\u003e\u003ccode\u003e910c86a\u003c/code\u003e\u003c/a\u003e Add Node ESM build: route the node import condition to a real Node bundle (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/foliojs/pdfkit/compare/v0.18.0...v0.20.2\"\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.8 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e19.3.0 (September 9, 2026)\u003c/h2\u003e\n\u003cp\u003eBelow is a list of all new features, APIs, and bug fixes.\u003c/p\u003e\n\u003cp\u003eRead the \u003ca href=\"https://react.dev/blog/2026/09/09/react-19-3\"\u003eReact 19.3 release post\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003eNew React Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;ViewTransition /\u0026gt;\u003c/code\u003e: Adds \u003ccode\u003e\u0026lt;ViewTransition /\u0026gt;\u003c/code\u003e and \u003ccode\u003eaddTransitionType\u003c/code\u003e APIs to power View Transition animations in React (\u003ca href=\"https://github.com/sebmarkbage\"\u003e\u003ccode\u003e@​sebmarkbage\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jackpope\"\u003e\u003ccode\u003e@​jackpope\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/gaearon\"\u003e\u003ccode\u003e@​gaearon\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/31975\"\u003e#31975\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31987\"\u003e#31987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31996\"\u003e#31996\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31999\"\u003e#31999\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32001\"\u003e#32001\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32002\"\u003e#32002\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32028\"\u003e#32028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32029\"\u003e#32029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32031\"\u003e#32031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32034\"\u003e#32034\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32038\"\u003e#32038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32041\"\u003e#32041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32050\"\u003e#32050\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32090\"\u003e#32090\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32105\"\u003e#32105\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32254\"\u003e#32254\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32379\"\u003e#32379\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32422\"\u003e#32422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32462\"\u003e#32462\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32540\"\u003e#32540\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32545\"\u003e#32545\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32585\"\u003e#32585\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32599\"\u003e#32599\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32611\"\u003e#32611\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32612\"\u003e#32612\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32617\"\u003e#32617\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32651\"\u003e#32651\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32653\"\u003e#32653\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32656\"\u003e#32656\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32664\"\u003e#32664\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32699\"\u003e#32699\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32723\"\u003e#32723\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32734\"\u003e#32734\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32751\"\u003e#32751\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32752\"\u003e#32752\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32760\"\u003e#32760\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32761\"\u003e#32761\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32764\"\u003e#32764\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32772\"\u003e#32772\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32790\"\u003e#32790\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32819\"\u003e#32819\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32820\"\u003e#32820\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32822\"\u003e#32822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32833\"\u003e#32833\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32849\"\u003e#32849\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33094\"\u003e#33094\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33191\"\u003e#33191\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33200\"\u003e#33200\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33206\"\u003e#33206\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33293\"\u003e#33293\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33330\"\u003e#33330\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33331\"\u003e#33331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33332\"\u003e#33332\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33357\"\u003e#33357\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33362\"\u003e#33362\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33433\"\u003e#33433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33576\"\u003e#33576\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34374\"\u003e#34374\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34450\"\u003e#34450\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34481\"\u003e#34481\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34500\"\u003e#34500\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34502\"\u003e#34502\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34510\"\u003e#34510\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34511\"\u003e#34511\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34539\"\u003e#34539\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35567\"\u003e#35567\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35564\"\u003e#35564\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35485\"\u003e#35485\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35380\"\u003e#35380\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35063\"\u003e#35063\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35060\"\u003e#35060\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34676\"\u003e#34676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36917\"\u003e#36917\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35337\"\u003e#35337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35520\"\u003e#35520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFragment Refs: Add Refs to \u003ccode\u003e\u0026lt;Fragment /\u0026gt;\u003c/code\u003e to support composable platform behavior (\u003ca href=\"https://github.com/jackpope\"\u003e\u003ccode\u003e@​jackpope\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/sebmarkbage\"\u003e\u003ccode\u003e@​sebmarkbage\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Dhakshin2007\"\u003e\u003ccode\u003e@​Dhakshin2007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/chirokas\"\u003e\u003ccode\u003e@​chirokas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/teamleaderleo\"\u003e\u003ccode\u003e@​teamleaderleo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/fallintoplace\"\u003e\u003ccode\u003e@​fallintoplace\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/32465\"\u003e#32465\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32613\"\u003e#32613\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32619\"\u003e#32619\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32654\"\u003e#32654\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32660\"\u003e#32660\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32682\"\u003e#32682\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32722\"\u003e#32722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32813\"\u003e#32813\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32814\"\u003e#32814\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33056\"\u003e#33056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33058\"\u003e#33058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33093\"\u003e#33093\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34069\"\u003e#34069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34103\"\u003e#34103\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34544\"\u003e#34544\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34545\"\u003e#34545\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37062\"\u003e#37062\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37061\"\u003e#37061\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37060\"\u003e#37060\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36047\"\u003e#36047\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36010\"\u003e#36010\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35642\"\u003e#35642\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35641\"\u003e#35641\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35637\"\u003e#35637\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35630\"\u003e#35630\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34935\"\u003e#34935\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37457\"\u003e#37457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37408\"\u003e#37408\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37326\"\u003e#37326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37251\"\u003e#37251\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37171\"\u003e#37171\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37169\"\u003e#37169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37168\"\u003e#37168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37167\"\u003e#37167\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37166\"\u003e#37166\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37165\"\u003e#37165\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37164\"\u003e#37164\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37163\"\u003e#37163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37162\"\u003e#37162\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37161\"\u003e#37161\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37160\"\u003e#37160\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37125\"\u003e#37125\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37063\"\u003e#37063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew React DOM Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebrowser()\u003c/code\u003e: a new \u003ccode\u003ereact-dom\u003c/code\u003e API that returns a usable which errors during server rendering and resolves in the browser. \u003ccode\u003euse(browser())\u003c/code\u003e inside a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary marks a subtree as browser-only without reporting a recoverable error (\u003ca href=\"https://github.com/gnoff\"\u003e\u003ccode\u003e@​gnoff\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/37143\"\u003e#37143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37241\"\u003e#37241\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eAdded an \u003ccode\u003eonBrowserBailout\u003c/code\u003e option to the \u003ccode\u003ereact-dom/server\u003c/code\u003e APIs to observe when a subtree defers to the browser (\u003ca href=\"https://github.com/gnoff\"\u003e\u003ccode\u003e@​gnoff\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/37193\"\u003e#37193\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable Trusted Types API integration (\u003ca href=\"https://github.com/rickhanlonii\"\u003e\u003ccode\u003e@​rickhanlonii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/35816\"\u003e#35816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransitions now render independently instead of being entangled into a single render, so a slow transition no longer holds up unrelated ones (\u003ca href=\"https://github.com/acdlite\"\u003e\u003ccode\u003e@​acdlite\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/37290\"\u003e#37290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a DEV-only warning when a component appears to have been unblocked by calling \u003ccode\u003euse()\u003c/code\u003e conditionally (\u003ca href=\"https://github.com/hoxyq\"\u003e\u003ccode\u003e@​hoxyq\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/37104\"\u003e#37104\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37203\"\u003e#37203\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37491\"\u003e#37491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003ch3\u003eReact\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast Refresh Fixes\n\u003cul\u003e\n\u003cli\u003eFix Fast Refresh to find and remount edits to components wrapped behind \u003ccode\u003elazy()\u003c/code\u003e (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36965\"\u003e#36965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Fast Refresh so edits to a \u003ccode\u003ememo()\u003c/code\u003e comparison function take effect (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36964\"\u003e#36964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Fast Refresh crash when an edit changes the kind of a component's type (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36963\"\u003e#36963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUn...\n\n_Description has been truncated_","html_url":"https://github.com/linuxlearner-germany/Ausbildungsdoku_webapp/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxlearner-germany%2FAusbildungsdoku_webapp/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"},{"uuid":"5917763186","node_id":"PR_kwDOTzKjms8AAAABJQEuhw","number":19,"state":"open","title":"build(deps): bump the production-dependencies group across 1 directory with 5 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-10-19T04:25:08.000Z","updated_at":"2026-10-19T04:25:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":5,"packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.1","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"firebase-admin","old_version":"13.10.0","new_version":"14.5.0","repository_url":"https://github.com/firebase/firebase-admin-node"},{"name":"firebase-functions","old_version":"6.6.0","new_version":"7.4.0","repository_url":"https://github.com/firebase/firebase-functions"},{"name":"zod","old_version":"3.25.76","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production-dependencies group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.1` | `8.7.1` |\n| [firebase-admin](https://github.com/firebase/firebase-admin-node) | `13.10.0` | `14.5.0` |\n| [firebase-functions](https://github.com/firebase/firebase-functions) | `6.6.0` | `7.4.0` |\n| [zod](https://github.com/colinhacks/zod) | `3.25.76` | `4.6.7` |\n\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.1 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.1...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firebase-admin` from 13.10.0 to 14.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-admin-node/releases\"\u003efirebase-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.5.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(fcm): migrate topic subscriptions to FCM v1 API (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3211\"\u003e#3211\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.5.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3260\"\u003e#3260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon and \u003ccode\u003e@​types/sinon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3254\"\u003e#3254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump google-auth-library from 10.9.0 to 11.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3255\"\u003e#3255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump jwks-rsa from 4.0.1 to 4.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3259\"\u003e#3259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.4.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(ml): deprecate Machine Learning APIs (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.4.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​types/lodash\u003c/code\u003e from 4.17.24 to 4.17.25 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3256\"\u003e#3256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupgrade \u003ccode\u003e@​google-cloud/storage\u003c/code\u003e and \u003ccode\u003e@​google-cloud/firestore\u003c/code\u003e to the most recent version (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3253\"\u003e#3253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fast-uri from 3.1.5 to 3.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3249\"\u003e#3249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump browserslist from 4.28.4 to 4.28.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump nock from 14.0.16 to 14.0.17 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ccode\u003e@​fastify/busboy\u003c/code\u003e from 3.2.0 to 3.2.2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3246\"\u003e#3246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(docs): add custom \u003ccode\u003e@excludeFromDocs\u003c/code\u003e tag to filter generated docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3206\"\u003e#3206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ccode\u003e@​firebase/database-compat\u003c/code\u003e from 2.1.4 to 2.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3242\"\u003e#3242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/app-compat\u003c/code\u003e from 0.5.15 to 0.5.17 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3243\"\u003e#3243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/auth-types\u003c/code\u003e from 0.13.1 to 0.13.2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(ml): Skip flaky ML tests blocking nightly builds (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3241\"\u003e#3241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump brace-expansion (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/auth-compat\u003c/code\u003e from 0.6.8 to 0.6.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3238\"\u003e#3238\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.3.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(dataconnect): update \u0026quot;X-Client-Version\u0026quot; header value to match the \u003ccode\u003eNode/Admin/{version}\u003c/code\u003e convention (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3230\"\u003e#3230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(dataconnect): add \u0026quot;X-Firebase-Sqlconnect-Affinity\u0026quot; header for GSLB soft stickiness (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3227\"\u003e#3227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(dataconnect): add \u0026quot;X-Client-Version\u0026quot; header for cloud monitoring (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3222\"\u003e#3222\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.3.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3237\"\u003e#3237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade \u003ccode\u003e@google-cloud\u003c/code\u003e and typescript-eslint dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3236\"\u003e#3236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​types/node\u003c/code\u003e from 26.1.1 to 26.2.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3231\"\u003e#3231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​microsoft/api-extractor\u003c/code\u003e from 7.58.9 to 7.58.12 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3224\"\u003e#3224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fast-uri from 3.1.4 to 3.1.5 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3228\"\u003e#3228\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/firebase/firebase-admin-node/commit/50ab2502c1faaf0685891ee5087a20dfd20eba2a\"\u003e\u003ccode\u003e50ab250\u003c/code\u003e\u003c/a\u003e [chore] Release 14.5.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3260\"\u003e#3260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/f95737bb34abd15db5e0f8ceb8f2d2d7399c73bf\"\u003e\u003ccode\u003ef95737b\u003c/code\u003e\u003c/a\u003e feat(fcm): migrate topic subscriptions to FCM v1 API (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3211\"\u003e#3211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/1163924a7503de29a6c98e9ccf89dca17adb99a3\"\u003e\u003ccode\u003e1163924\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon and \u003ccode\u003e@​types/sinon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3254\"\u003e#3254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/df9a14854779a37488b912dc4a243fb934b71a4c\"\u003e\u003ccode\u003edf9a148\u003c/code\u003e\u003c/a\u003e build(deps): bump google-auth-library from 10.9.0 to 11.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3255\"\u003e#3255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/7505a1cf7d0af573e9e1620cc230a429b16f9a93\"\u003e\u003ccode\u003e7505a1c\u003c/code\u003e\u003c/a\u003e build(deps): bump jwks-rsa from 4.0.1 to 4.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3259\"\u003e#3259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/7cf116b4c4e73ff5b58814f343738535153fdf08\"\u003e\u003ccode\u003e7cf116b\u003c/code\u003e\u003c/a\u003e [chore] Release 14.4.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/72994c4547be462b48b4ffaf645828214d982d1b\"\u003e\u003ccode\u003e72994c4\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump \u003ccode\u003e@​types/lodash\u003c/code\u003e from 4.17.24 to 4.17.25 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3256\"\u003e#3256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/c151174db2b1fed3ed4b35838d4eedcd561bd6fa\"\u003e\u003ccode\u003ec151174\u003c/code\u003e\u003c/a\u003e upgrade \u003ccode\u003e@​google-cloud/storage\u003c/code\u003e and  \u003ccode\u003e@​google-cloud/firestore\u003c/code\u003e to the most recent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/cda2de96a7df4705b81d627facc8a79ad20cae58\"\u003e\u003ccode\u003ecda2de9\u003c/code\u003e\u003c/a\u003e build(deps): bump fast-uri from 3.1.5 to 3.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3249\"\u003e#3249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/cb892610deaff505edf8d6a50f2d7e4342b1410b\"\u003e\u003ccode\u003ecb89261\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump browserslist from 4.28.4 to 4.28.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-admin-node/compare/v13.10.0...v14.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firebase-functions` from 6.6.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-functions/releases\"\u003efirebase-functions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\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/firebase/firebase-functions/commit/8a8bae4484673c70bb201b1425daeeeb0e960381\"\u003e\u003ccode\u003e8a8bae4\u003c/code\u003e\u003c/a\u003e fix(identity): handle IS_NOT_TENANT filtering in SDK wrapper instead of Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3dca676d5518e87796c660de0375d007ffef8767\"\u003e\u003ccode\u003e3dca676\u003c/code\u003e\u003c/a\u003e fix(params): retain \u003ca href=\"https://github.com/alpha\"\u003e\u003ccode\u003e@​alpha\u003c/code\u003e\u003c/a\u003e tag on WireParamSpec to prevent stripped dts expor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/e10e90052b6a675680b5f7e32aacd7dd262677e2\"\u003e\u003ccode\u003ee10e900\u003c/code\u003e\u003c/a\u003e Auth v2 public release (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/5318afeeb9c6d496dca289430d41bf9b71ee4e10\"\u003e\u003ccode\u003e5318afe\u003c/code\u003e\u003c/a\u003e fix(params): remove internal WireParamSpec from public exports (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1960\"\u003e#1960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/27025b0081f8cedc9276186bbb16ecb67023a2ba\"\u003e\u003ccode\u003e27025b0\u003c/code\u003e\u003c/a\u003e docs(ai): explicitly declare tools and toolConfig on Vertex GenerateC… (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1958\"\u003e#1958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3d15762c78d10d5bc218c8e26dfe7a80e455591e\"\u003e\u003ccode\u003e3d15762\u003c/code\u003e\u003c/a\u003e fix(params): restore backwards compatibility for declared params with pre-\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/dd11b14ed3e7adacbbffc69a30131ac9ac69a450\"\u003e\u003ccode\u003edd11b14\u003c/code\u003e\u003c/a\u003e fix(scripts): pass space-separated flags in cloudbuild.yaml (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1956\"\u003e#1956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/a26938e909a142441a707782f30c925be2a6bd43\"\u003e\u003ccode\u003ea26938e\u003c/code\u003e\u003c/a\u003e feat: unify global manifest on globalThis for forward-compatible manifest ext...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/0d78dc2c7e5be3393e4900f238f68fcad8573010\"\u003e\u003ccode\u003e0d78dc2\u003c/code\u003e\u003c/a\u003e feat: remove custom tags feature and standardize release tags (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3dab44a723b8cfc356193159cbcc7d5520e17e8c\"\u003e\u003ccode\u003e3dab44a\u003c/code\u003e\u003c/a\u003e Auth event v1 compat (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1953\"\u003e#1953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-functions/compare/v6.6.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zod` from 3.25.76 to 4.6.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/colinhacks/zod/releases\"\u003ezod's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.6.7\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eb500a2ee95134f81d74da7911d7378dd2853d042 4.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSix malicious commits pushed to \u003ccode\u003emain\u003c/code\u003e on September 21 with a compromised git credential were reverted the same day in \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6620\"\u003e#6620\u003c/a\u003e and have since been removed from the history of \u003ccode\u003emain\u003c/code\u003e. None were ever published to npm. The npm provenance for 4.6.6 names 284243fb, the pre-rewrite copy of 9c219833 with identical contents.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e0cd3af5e9f50ad11bbcd4407a46a21b8848ba574 docs: load the en locale directly in Zod Mini\u003c/li\u003e\n\u003cli\u003e9d5e60f162997b764b40d45aa02481888db50dea docs: import locales from zod/locales, not z.locales\u003c/li\u003e\n\u003cli\u003e34a626f307871ecbb0123947559328dc52ed5e3e docs: tighten the z.locales tree-shaking note\u003c/li\u003e\n\u003cli\u003e74304ce5b5796b5edb9a88ceb8e170b6ea3e82df release: stage npm versions instead of publishing them (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6622\"\u003e#6622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb2ef983e0711ff6517d6020b021071e2e5653efa docs: add Code for Japan to bronze sponsors\u003c/li\u003e\n\u003cli\u003e8fb2faf0584828a6a027d8279db36f6f52784462 docs: crop the Code for Japan logo and list it first in bronze\u003c/li\u003e\n\u003cli\u003ebacad518c41610d654658172d325874bf0ee6290 docs: square the Code for Japan logo to match the other bronze tiles\u003c/li\u003e\n\u003cli\u003ec42596bd1c87e941d7241d10e012c5c196adcc10 release: hold the run on the release-approval environment until the staged versions are approved (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6638\"\u003e#6638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea2ba4a67986a3e6b2b131be30084a2f460d9ea67 fix(types): declare record output and input as members, not base type arguments (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6645\"\u003e#6645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea0ebf970f2d752e5f58527cd2942ff48be4f46bd fix(v4): check array, set and map size bounds before parsing elements (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6652\"\u003e#6652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e529f78dd9431b07f49647fee3aa0819b3f8b66b7 4.6.6\u003c/li\u003e\n\u003cli\u003e9c219833c3a3764fa1f1ea9c5ecec8254a63c0b1 ci: stage at verbose so a failed OIDC token exchange says why\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.5\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ed2b135cfb7a3582b9eb515756b9166bcb9521f4a docs: add the 4.6.x patch highlights to the 4.6 post\u003c/li\u003e\n\u003cli\u003ef1448f7cee00df9fe1e9ad84a000aa1828cc8bc1 docs: fold the 4.6.x patch highlights into the 4.6 post's own sections\u003c/li\u003e\n\u003cli\u003ede65a5cb39ed22a507fac935788f718fa88d104f docs: lead the properties section with the check and add a Zod Mini tab (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6598\"\u003e#6598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e56222cd1532c07bcb91b67df529cab4c0a215330 feat(instanceof): key the .properties() shape off the instance type (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6600\"\u003e#6600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eca0229a404818290e6cdcfefcd7eb2d04bcbb543 Revert \u0026quot;feat: add z.currencyCode() over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6595\"\u003e#6595\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003ecc4cd4ee9c52fcaa10964e48cc144541e41a5ed9 Revert \u0026quot;Revert \u0026quot;feat: add z.currencyCode() over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6595\"\u003e#6595\u003c/a\u003e)\u0026quot;\u0026quot;\u003c/li\u003e\n\u003cli\u003e0f3f5ee3ca56c7574bf849e54f79e9a6e02562ee 4.6.5\u003c/li\u003e\n\u003cli\u003e59bbc03e10c636b9eb3c393dfeb552819774ec21 chore: re-pin the integration peers to the workspace zod after the 4.6.5 bump\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.4\u003c/h2\u003e\n\u003cp\u003eA patch on top of \u003ca href=\"https://github.com/colinhacks/zod/releases/tag/v4.6.3\"\u003e4.6.3\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/d6bc1e30\"\u003e\u003ccode\u003ed6bc1e30\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003ez.currencyCode()\u003c/code\u003e over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6595\"\u003e#6595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/ad32d751\"\u003e\u003ccode\u003ead32d751\u003c/code\u003e\u003c/a\u003e perf: \u003ccode\u003ez.url()\u003c/code\u003e rejects an invalid URL with \u003ccode\u003eURL.canParse()\u003c/code\u003e instead of a throwing constructor, about 50x faster; fewer allocations on the validation path (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6588\"\u003e#6588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/2bb08717\"\u003e\u003ccode\u003e2bb08717\u003c/code\u003e\u003c/a\u003e chore: re-pin the integration peers to the workspace zod after the 4.6.4 bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/f6e1701a\"\u003e\u003ccode\u003ef6e1701a\u003c/code\u003e\u003c/a\u003e chore(deps): bump next to 15.5.25 and vite to 7.3.6 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6153\"\u003e#6153\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.3\u003c/h2\u003e\n\u003cp\u003eA patch on top of \u003ca href=\"https://github.com/colinhacks/zod/releases/tag/v4.6.2\"\u003e4.6.2\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/413cce9a\"\u003e\u003ccode\u003e413cce9a\u003c/code\u003e\u003c/a\u003e fix(v4): make z.properties() a check again (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6594\"\u003e#6594\u003c/a\u003e) — removes the standalone \u003ccode\u003ez.properties()\u003c/code\u003e schema from 4.6.0; \u003ccode\u003ez.instanceof().properties()\u003c/code\u003e and \u003ccode\u003e.check(...z.properties())\u003c/code\u003e are unchanged\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/75d63ee1\"\u003e\u003ccode\u003e75d63ee1\u003c/code\u003e\u003c/a\u003e docs: show only the \u003ccode\u003e.properties()\u003c/code\u003e method form in the 4.6 post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/46da9572\"\u003e\u003ccode\u003e46da9572\u003c/code\u003e\u003c/a\u003e docs: match the error-message examples to what the parsers emit\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/colinhacks/zod/commit/b500a2ee95134f81d74da7911d7378dd2853d042\"\u003e\u003ccode\u003eb500a2e\u003c/code\u003e\u003c/a\u003e 4.6.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/9c219833c3a3764fa1f1ea9c5ecec8254a63c0b1\"\u003e\u003ccode\u003e9c21983\u003c/code\u003e\u003c/a\u003e ci: stage at verbose so a failed OIDC token exchange says why\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/529f78dd9431b07f49647fee3aa0819b3f8b66b7\"\u003e\u003ccode\u003e529f78d\u003c/code\u003e\u003c/a\u003e 4.6.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/a0ebf970f2d752e5f58527cd2942ff48be4f46bd\"\u003e\u003ccode\u003ea0ebf97\u003c/code\u003e\u003c/a\u003e fix(v4): check array, set and map size bounds before parsing elements (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6652\"\u003e#6652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/a2ba4a67986a3e6b2b131be30084a2f460d9ea67\"\u003e\u003ccode\u003ea2ba4a6\u003c/code\u003e\u003c/a\u003e fix(types): declare record output and input as members, not base type argumen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c42596bd1c87e941d7241d10e012c5c196adcc10\"\u003e\u003ccode\u003ec42596b\u003c/code\u003e\u003c/a\u003e release: hold the run on the release-approval environment until the staged ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/bacad518c41610d654658172d325874bf0ee6290\"\u003e\u003ccode\u003ebacad51\u003c/code\u003e\u003c/a\u003e docs: square the Code for Japan logo to match the other bronze tiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/8fb2faf0584828a6a027d8279db36f6f52784462\"\u003e\u003ccode\u003e8fb2faf\u003c/code\u003e\u003c/a\u003e docs: crop the Code for Japan logo and list it first in bronze\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/b2ef983e0711ff6517d6020b021071e2e5653efa\"\u003e\u003ccode\u003eb2ef983\u003c/code\u003e\u003c/a\u003e docs: add Code for Japan to bronze sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/74304ce5b5796b5edb9a88ceb8e170b6ea3e82df\"\u003e\u003ccode\u003e74304ce\u003c/code\u003e\u003c/a\u003e release: stage npm versions instead of publishing them (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6622\"\u003e#6622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/colinhacks/zod/compare/v3.25.76...v4.6.7\"\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 zod since your current version.\u003c/p\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/SonuSojan/garage-boilerplate-sonu/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonuSojan%2Fgarage-boilerplate-sonu/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"},{"uuid":"5916159343","node_id":"PR_kwDOM6ADXc8AAAABJOzxUA","number":742,"state":"open","title":"build(deps): bump the non-major-dependencies group across 1 directory with 35 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-10-19T01:17:16.000Z","updated_at":"2026-10-19T01:23:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"non-major-dependencies","update_count":35,"packages":[{"name":"eslint-plugin-prettier","old_version":"5.5.6","new_version":"5.5.7","repository_url":"https://github.com/prettier/eslint-plugin-prettier"},{"name":"knip","old_version":"6.40.0","new_version":"6.41.0","repository_url":"https://github.com/webpro-nl/knip"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.71.1","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@nestjs/common","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/jwt","old_version":"12.0.2","new_version":"12.0.3","repository_url":"https://github.com/nestjs/jwt"},{"name":"@nestjs/platform-express","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@sentry/nestjs","old_version":"11.6.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"bullmq","old_version":"6.3.11","new_version":"6.3.15","repository_url":"https://github.com/taskforcesh/bullmq"},{"name":"mongoose","old_version":"9.11.1","new_version":"9.11.2","repository_url":"https://github.com/Automattic/mongoose"},{"name":"nodemailer","old_version":"10.0.16","new_version":"10.1.1","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"uuid","old_version":"14.0.2","new_version":"14.0.3","repository_url":"https://github.com/uuidjs/uuid"},{"name":"@nestjs/schematics","old_version":"12.0.6","new_version":"12.0.7","repository_url":"https://github.com/nestjs/schematics"},{"name":"@nestjs/testing","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"24.19.1","new_version":"24.19.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"ts-jest","old_version":"29.4.14","new_version":"29.4.15","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"@sentry/react","old_version":"11.6.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"@tanstack/react-query","old_version":"5.104.1","new_version":"5.104.3","repository_url":"https://github.com/TanStack/query"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dropzone","old_version":"20.1.2","new_version":"20.1.3","repository_url":"https://github.com/react-dropzone/react-dropzone"},{"name":"@playwright/test","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-docs","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-links","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@testing-library/user-event","old_version":"14.6.7","new_version":"14.6.8","repository_url":"https://github.com/testing-library/user-event"},{"name":"jsdom","old_version":"30.1.2","new_version":"30.1.3","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/mswjs/msw"},{"name":"sass","old_version":"1.105.1","new_version":"1.105.2","repository_url":"https://github.com/sass/dart-sass"},{"name":"storybook","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"}],"path":null,"ecosystem":"npm"},"body":"Bumps the non-major-dependencies group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | `5.5.6` | `5.5.7` |\n| [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `6.40.0` | `6.41.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.1` | `8.71.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.3` | `5.0.5` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `12.1.2` | `12.1.3` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `12.1.2` | `12.1.3` |\n| [@nestjs/jwt](https://github.com/nestjs/jwt) | `12.0.2` | `12.0.3` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `12.1.2` | `12.1.3` |\n| [@sentry/nestjs](https://github.com/getsentry/sentry-javascript) | `11.6.0` | `11.8.0` |\n| [bullmq](https://github.com/taskforcesh/bullmq) | `6.3.11` | `6.3.15` |\n| [mongoose](https://github.com/Automattic/mongoose) | `9.11.1` | `9.11.2` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.16` | `10.1.1` |\n| [uuid](https://github.com/uuidjs/uuid) | `14.0.2` | `14.0.3` |\n| [@nestjs/schematics](https://github.com/nestjs/schematics) | `12.0.6` | `12.0.7` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `12.1.2` | `12.1.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.19.1` | `24.19.2` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.14` | `29.4.15` |\n| [@sentry/react](https://github.com/getsentry/sentry-javascript) | `11.6.0` | `11.8.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.1` | `5.104.3` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [react-dropzone](https://github.com/react-dropzone/react-dropzone) | `20.1.2` | `20.1.3` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.6.1` | `10.6.2` |\n| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `10.6.1` | `10.6.2` |\n| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `10.6.1` | `10.6.2` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.6.1` | `10.6.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.7` | `14.6.8` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.2` | `30.1.3` |\n| [msw](https://github.com/mswjs/msw) | `3.0.2` | `3.0.3` |\n| [sass](https://github.com/sass/dart-sass) | `1.105.1` | `1.105.2` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.6.1` | `10.6.2` |\n\n\nUpdates `eslint-plugin-prettier` from 5.5.6 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/prettier/eslint-plugin-prettier/releases\"\u003eeslint-plugin-prettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003e#796\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e! - Fix fallback diagnostic locations for all supported line endings.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/805\"\u003e#805\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - Report a clear error when the sync worker fails to load, so a missing \u003ccode\u003eprettier\u003c/code\u003e dependency now fails fast with \u003ccode\u003eCannot find package 'prettier'\u003c/code\u003e instead of hanging ESLint indefinitely.\u003c/p\u003e\n\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/truongbo17\"\u003e\u003ccode\u003e@​truongbo17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/798\"\u003eprettier/eslint-plugin-prettier#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003eprettier/eslint-plugin-prettier#796\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-plugin-prettier/compare/v5.5.6...v5.5.7\"\u003ehttps://github.com/prettier/eslint-plugin-prettier/compare/v5.5.6...v5.5.7\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/eslint-plugin-prettier/blob/main/CHANGELOG.md\"\u003eeslint-plugin-prettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003e#796\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e! - Fix fallback diagnostic locations for all supported line endings.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/805\"\u003e#805\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - Report a clear error when the sync worker fails to load, so a missing \u003ccode\u003eprettier\u003c/code\u003e dependency now fails fast with \u003ccode\u003eCannot find package 'prettier'\u003c/code\u003e instead of hanging ESLint indefinitely.\u003c/p\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/prettier/eslint-plugin-prettier/commit/e6dd27a4e4015748b2e87c646be2c1a530789343\"\u003e\u003ccode\u003ee6dd27a\u003c/code\u003e\u003c/a\u003e chore: keep packageManager when cleaning package.json for release (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7544956b642d4e653c235d178432e4d60a312b6b\"\u003e\u003ccode\u003e7544956\u003c/code\u003e\u003c/a\u003e chore: release eslint-plugin-prettier (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/799\"\u003e#799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/e3e52386bd8ab1604d4d41ecd961de5e6749eed8\"\u003e\u003ccode\u003ee3e5238\u003c/code\u003e\u003c/a\u003e ci: enable npm publish provenance for changesets v3 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/807\"\u003e#807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7c923c41069c939d6c6c8b7cfcad8f6a266f5276\"\u003e\u003ccode\u003e7c923c4\u003c/code\u003e\u003c/a\u003e build(deps): Bump http-cache-semantics from 4.2.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/806\"\u003e#806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e fix: bump synckit to surface worker failures instead of hanging (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/a6b3feb3ce5d0bf785ddf4a83d24cf6a5c4bb902\"\u003e\u003ccode\u003ea6b3feb\u003c/code\u003e\u003c/a\u003e docs: explain line endings and \u003ccode\u003eendOfLine\u003c/code\u003e behavior (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/2f6ba1dca350a40857884103a7bf0e74b64901f7\"\u003e\u003ccode\u003e2f6ba1d\u003c/code\u003e\u003c/a\u003e ci: exercise the getLocFromIndex ponyfill on ESLint 9 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/803\"\u003e#803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/cf1d2c5cffb7520d28fe680603cc4906ada0816f\"\u003e\u003ccode\u003ecf1d2c5\u003c/code\u003e\u003c/a\u003e chore(deps): update (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/802\"\u003e#802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/9f14a554f9737b1b985e2b26501d3bb2defac920\"\u003e\u003ccode\u003e9f14a55\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e fix: map fallback source locations to actual line starts (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.6...v5.5.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `knip` from 6.40.0 to 6.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/webpro-nl/knip/releases\"\u003eknip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 6.41.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Flue plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2124\"\u003e#2124\u003c/a\u003e) (c52737d45ff008d6d96d4c2d4182048a2aa64602) - thanks \u003ca href=\"https://github.com/LuisFigueroaG\"\u003e\u003ccode\u003e@​LuisFigueroaG\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eMatch all React Native config file extensions (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2125\"\u003e#2125\u003c/a\u003e) (898fdffb37ae0bdb3d2653038eb10c2e01edf983) - thanks \u003ca href=\"https://github.com/LuisFigueroaG\"\u003e\u003ccode\u003e@​LuisFigueroaG\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eConsolidate fixture guidance and extend plugin guidelines (37a4ca04645f71f599e9b530676543f9893bd641)\u003c/li\u003e\n\u003cli\u003eAdd AI contribution policy (b15f0fbb090ea0427240880da2bec602c11cea50)\u003c/li\u003e\n\u003cli\u003eUse files from tsconfig references with --use-tsconfig-files (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2126\"\u003e#2126\u003c/a\u003e) (9618185eafb0c5cb365035f89e9d66718642338a) - thanks \u003ca href=\"https://github.com/kaanisthatyou\"\u003e\u003ccode\u003e@​kaanisthatyou\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCompile gitignore walk patterns once (resolve \u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2127\"\u003e#2127\u003c/a\u003e) (09c80299779fa5abe133ee8f82051c25870007b8)\u003c/li\u003e\n\u003cli\u003eDrop readdir order dependent case from gitignore walk test (ab3da8ff95a05a0fbfba6873b64559017d038aa7)\u003c/li\u003e\n\u003cli\u003efix: recognize binaries from absent optional dependencies (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2120\"\u003e#2120\u003c/a\u003e) (d908556eaa98bf9637a2744d2de089bab31b8dbc) - thanks \u003ca href=\"https://github.com/DreamLongYT\"\u003e\u003ccode\u003e@​DreamLongYT\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eApply a directory's .gitignore before walking its subdirectories (9560c07862d4c72dc956371b9a77e049d83ed4a9)\u003c/li\u003e\n\u003cli\u003eApply nested .gitignore files to workspace globs (23d35421dd67c405254f2f8bcbc09b18d224e338)\u003c/li\u003e\n\u003cli\u003eUpdate gitignore matcher and walk notes (499f85f4544457dc7c51c4a7612fea69773ef3dd)\u003c/li\u003e\n\u003cli\u003eKeep the cwd out of glob patterns and matchers (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2107\"\u003e#2107\u003c/a\u003e) (1e82fb807c88cc46951f2028214569f9a2eb0061) - thanks \u003ca href=\"https://github.com/kaanisthatyou\"\u003e\u003ccode\u003e@​kaanisthatyou\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSupport function configs in Rsbuild plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2122\"\u003e#2122\u003c/a\u003e) (38071db87e9023e5dd61173ce32f9020a1a5d7ff) - thanks \u003ca href=\"https://github.com/bytedoe\"\u003e\u003ccode\u003e@​bytedoe\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSeparate Expo Router plugin; remove expo-router entry points from Expo plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2128\"\u003e#2128\u003c/a\u003e) (ad541764ca7d3c062236661677d1d66d5275122f) - thanks \u003ca href=\"https://github.com/jjjjonathan\"\u003e\u003ccode\u003e@​jjjjonathan\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eLink Expo config discovery source and fold expo6 fixture into expo-router (2ddeca50956790b10580e835df50bc980cce961d)\u003c/li\u003e\n\u003cli\u003eUpdate dependencies (c9f79148f7165314a7b3c801eff926d1d0d6b060)\u003c/li\u003e\n\u003cli\u003eMigrate shell script parsing to unbash v5 (4942cca05303410120a007a5bb23b0c2da725da1)\u003c/li\u003e\n\u003cli\u003eHandle updated Formatly result types (ca9e8315e003dae69646f7500fa98ab9ed403b92)\u003c/li\u003e\n\u003cli\u003ePreserve TypeScript 5.0 compatibility in shell AST filters (957ac7bbd654f6d3d0c4dc4eab2f4aa133ff0b4b)\u003c/li\u003e\n\u003cli\u003ePoint timerify crashes to the Node.js version that fixes them (0c235de096fd3361eb918d1290241fa32a62f089)\u003c/li\u003e\n\u003cli\u003eCopy importer identifier sets into the reverse index (2860d678a87dddb5ad56299119fb6e108ceffa12)\u003c/li\u003e\n\u003cli\u003eClear the resolver cache at the start of a run (10b5bb82ecd03c88b68ace58a7aea23d188cc5f1)\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/webpro-nl/knip/commit/13d7f21e8ec5b30d8fe6d8377c9012b9db96f871\"\u003e\u003ccode\u003e13d7f21\u003c/code\u003e\u003c/a\u003e Release knip@6.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/10b5bb82ecd03c88b68ace58a7aea23d188cc5f1\"\u003e\u003ccode\u003e10b5bb8\u003c/code\u003e\u003c/a\u003e Clear the resolver cache at the start of a run\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/2860d678a87dddb5ad56299119fb6e108ceffa12\"\u003e\u003ccode\u003e2860d67\u003c/code\u003e\u003c/a\u003e Copy importer identifier sets into the reverse index\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/0c235de096fd3361eb918d1290241fa32a62f089\"\u003e\u003ccode\u003e0c235de\u003c/code\u003e\u003c/a\u003e Point timerify crashes to the Node.js version that fixes them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/957ac7bbd654f6d3d0c4dc4eab2f4aa133ff0b4b\"\u003e\u003ccode\u003e957ac7b\u003c/code\u003e\u003c/a\u003e Preserve TypeScript 5.0 compatibility in shell AST filters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/ca9e8315e003dae69646f7500fa98ab9ed403b92\"\u003e\u003ccode\u003eca9e831\u003c/code\u003e\u003c/a\u003e Handle updated Formatly result types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/4942cca05303410120a007a5bb23b0c2da725da1\"\u003e\u003ccode\u003e4942cca\u003c/code\u003e\u003c/a\u003e Migrate shell script parsing to unbash v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/c9f79148f7165314a7b3c801eff926d1d0d6b060\"\u003e\u003ccode\u003ec9f7914\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/2ddeca50956790b10580e835df50bc980cce961d\"\u003e\u003ccode\u003e2ddeca5\u003c/code\u003e\u003c/a\u003e Link Expo config discovery source and fold expo6 fixture into expo-router\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/ad541764ca7d3c062236661677d1d66d5275122f\"\u003e\u003ccode\u003ead54176\u003c/code\u003e\u003c/a\u003e Separate Expo Router plugin; remove expo-router entry points from Expo plugin...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/webpro-nl/knip/commits/knip@6.41.0/packages/knip\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.9.9 to 3.9.10\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.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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.10/CHANGELOG.md#3910\"\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.10\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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\u003eSee \u003ca href=\"https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\"\u003ehttps://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\u003c/a\u003e for details.\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/prettier/prettier/commit/1172b82c295c4f889fd787dc6c78c3e194ebf353\"\u003e\u003ccode\u003e1172b82\u003c/code\u003e\u003c/a\u003e Release 3.9.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d0142273aff2c76f8a69785d42ee2cedc4b0aaa3\"\u003e\u003ccode\u003ed014227\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on perfor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/953b9084329dcd06ed1072a04b333f1e6e9371e8\"\u003e\u003ccode\u003e953b908\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.9.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ad8a6bf4fa23c42fd114683fec43b28a11bd24af\"\u003e\u003ccode\u003ead8a6bf\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.71.1 to 8.71.2\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.71.2\u003c/h2\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] avoid false-positives when not using our parser (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12989\"\u003e#12989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type templates (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12974\"\u003e#12974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] ignore type-only refs for after-used (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12977\"\u003e#12977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] parenthesize constraint in optional tuple elements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12995\"\u003e#12995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] safe fix when the chain ends with a strict null comparison (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12805\"\u003e#12805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match linked packages and packages with missing version in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12948\"\u003e#12948\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAbraham Guo\u003c/li\u003e\n\u003cli\u003eBrad Zacher \u003ca href=\"https://github.com/bradzacher\"\u003e\u003ccode\u003e@​bradzacher\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eVinccool96\u003c/li\u003e\n\u003cli\u003eYounsang Na \u003ca href=\"https://github.com/nayounsang\"\u003e\u003ccode\u003e@​nayounsang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.2\"\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/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/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.2\"\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/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/typescript-eslint/typescript-eslint/commit/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb\"\u003e\u003ccode\u003e7488d68\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.2/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitest/coverage-v8` from 5.0.3 to 5.0.5\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\"\u003e@​vitest/coverage-v8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.5\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep vite default \u003ccode\u003efs.deny\u003c/code\u003e with api token file  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11578\"\u003evitest-dev/vitest#11578\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/28dc1edfb\"\u003e\u003c!-- raw HTML omitted --\u003e(28dc1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle quoted file names in \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11583\"\u003evitest-dev/vitest#11583\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/14921e962\"\u003e\u003c!-- raw HTML omitted --\u003e(14921)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edata\u003c/code\u003e to the \u003ccode\u003eimport.meta.hot\u003c/code\u003e stub  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11590\"\u003evitest-dev/vitest#11590\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/3a8289ac3\"\u003e\u003c!-- raw HTML omitted --\u003e(3a828)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eskip\u003c/code\u003e in \u003ccode\u003eskipIf\u003c/code\u003e, ignore \u003ccode\u003eundefined\u003c/code\u003e options  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11591\"\u003evitest-dev/vitest#11591\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d523a15f2\"\u003e\u003c!-- raw HTML omitted --\u003e(d523a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip builtin loading in async leak detector  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11598\"\u003evitest-dev/vitest#11598\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6\"\u003e\u003c!-- raw HTML omitted --\u003e(fe86a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep the import frame in native loader errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11599\"\u003evitest-dev/vitest#11599\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894\"\u003e\u003c!-- raw HTML omitted --\u003e(9697b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun hook cleanups when a later hook fails  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11605\"\u003evitest-dev/vitest#11605\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a44720\"\u003e\u003c!-- raw HTML omitted --\u003e(6c5a4)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease mocks of finished test files  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11607\"\u003evitest-dev/vitest#11607\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0\"\u003e\u003c!-- raw HTML omitted --\u003e(e9c3d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbort all running tests on cancel  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11606\"\u003evitest-dev/vitest#11606\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6\"\u003e\u003c!-- raw HTML omitted --\u003e(6621a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eIgnore synthetic pagehide events  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11582\"\u003evitest-dev/vitest#11582\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ca0813584\"\u003e\u003c!-- raw HTML omitted --\u003e(ca081)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun plugin buildStart on server creation  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11593\"\u003evitest-dev/vitest#11593\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ea611e44c\"\u003e\u003c!-- raw HTML omitted --\u003e(ea611)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop late connections of closed sessions  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11600\"\u003evitest-dev/vitest#11600\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2\"\u003e\u003c!-- raw HTML omitted --\u003e(f161e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait 30s for the browser to close  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11601\"\u003evitest-dev/vitest#11601\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a\"\u003e\u003c!-- raw HTML omitted --\u003e(6498b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun global setup once with instances  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11596\"\u003evitest-dev/vitest#11596\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c262\"\u003e\u003c!-- raw HTML omitted --\u003e(8dd67)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ereporter\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eEnd reason \u003ccode\u003e\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/39);failed\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/39);\u003c/code\u003e on worker crash  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11568\"\u003evitest-dev/vitest#11568\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff\"\u003e\u003c!-- raw HTML omitted --\u003e(6ae8e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\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/vitest-dev/vitest/commit/7a825db43e2beca0b219d2eadaec334cb81af0c7\"\u003e\u003ccode\u003e7a825db\u003c/code\u003e\u003c/a\u003e chore: release v5.0.5 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11609\"\u003e#11609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a854968d2ffee6025700c69099e6b7f80\"\u003e\u003ccode\u003e2297d93\u003c/code\u003e\u003c/a\u003e fix(coverage): v8 browser memory leak between test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11466\"\u003e#11466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9d17e24e9816878165af4818df84a631\"\u003e\u003ccode\u003ec74e099\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11167\"\u003e#11167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/coverage-v8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 5.0.3 to 5.0.5\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\u003ev5.0.5\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep vite default \u003ccode\u003efs.deny\u003c/code\u003e with api token file  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11578\"\u003evitest-dev/vitest#11578\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/28dc1edfb\"\u003e\u003c!-- raw HTML omitted --\u003e(28dc1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle quoted file names in \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11583\"\u003evitest-dev/vitest#11583\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/14921e962\"\u003e\u003c!-- raw HTML omitted --\u003e(14921)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edata\u003c/code\u003e to the \u003ccode\u003eimport.meta.hot\u003c/code\u003e stub  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11590\"\u003evitest-dev/vitest#11590\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/3a8289ac3\"\u003e\u003c!-- raw HTML omitted --\u003e(3a828)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eskip\u003c/code\u003e in \u003ccode\u003eskipIf\u003c/code\u003e, ignore \u003ccode\u003eundefined\u003c/code\u003e options  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11591\"\u003evitest-dev/vitest#11591\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d523a15f2\"\u003e\u003c!-- raw HTML omitted --\u003e(d523a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip builtin loading in async leak detector  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11598\"\u003evitest-dev/vitest#11598\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6\"\u003e\u003c!-- raw HTML omitted --\u003e(fe86a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep the import frame in native loader errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11599\"\u003evitest-dev/vitest#11599\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894\"\u003e\u003c!-- raw HTML omitted --\u003e(9697b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun hook cleanups when a later hook fails  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11605\"\u003evitest-dev/vitest#11605\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a44720\"\u003e\u003c!-- raw HTML omitted --\u003e(6c5a4)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease mocks of finished test files  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11607\"\u003evitest-dev/vitest#11607\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0\"\u003e\u003c!-- raw HTML omitted --\u003e(e9c3d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbort all running tests on cancel  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11606\"\u003evitest-dev/vitest#11606\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6\"\u003e\u003c!-- raw HTML omitted --\u003e(6621a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eIgnore synthetic pagehide events  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11582\"\u003evitest-dev/vitest#11582\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ca0813584\"\u003e\u003c!-- raw HTML omitted --\u003e(ca081)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun plugin buildStart on server creation  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11593\"\u003evitest-dev/vitest#11593\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ea611e44c\"\u003e\u003c!-- raw HTML omitted --\u003e(ea611)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop late connections of closed sessions  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11600\"\u003evitest-dev/vitest#11600\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2\"\u003e\u003c!-- raw HTML omitted --\u003e(f161e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait 30s for the browser to close  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11601\"\u003evitest-dev/vitest#11601\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a\"\u003e\u003c!-- raw HTML omitted --\u003e(6498b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun global setup once with instances  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11596\"\u003evitest-dev/vitest#11596\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c262\"\u003e\u003c!-- raw HTML omitted --\u003e(8dd67)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ereporter\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eEnd reason \u003ccode\u003e\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/39);failed\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/39);\u003c/code\u003e on worker crash  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11568\"\u003evitest-dev/vitest#11568\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff\"\u003e\u003c!-- raw HTML omitted --\u003e(6ae8e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\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/vitest-dev/vitest/commit/7a825db43e2beca0b219d2eadaec334cb81af0c7\"\u003e\u003ccode\u003e7a825db\u003c/code\u003e\u003c/a\u003e chore: release v5.0.5 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11609\"\u003e#11609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6ed371e43f80ff327f5063693bd6b1ad\"\u003e\u003ccode\u003e6621a72\u003c/code\u003e\u003c/a\u003e fix: abort all running tests on cancel (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11606\"\u003e#11606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0c8d6867de06a3df43ea28a05eeec444\"\u003e\u003ccode\u003ee9c3d72\u003c/code\u003e\u003c/a\u003e fix: release mocks of finished test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11607\"\u003e#11607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c2625943d824e257b87ae57a14094e90eed\"\u003e\u003ccode\u003e8dd67c2\u003c/code\u003e\u003c/a\u003e fix(browser): run global setup once with instances (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11596\"\u003e#11596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a447203a29a0708fbc5de4fb91ea501bdc395\"\u003e\u003ccode\u003e6c5a447\u003c/code\u003e\u003c/a\u003e fix: run hook cleanups when a later hook fails (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11605\"\u003e#11605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894f456b85db91f3824ebe833449305c04\"\u003e\u003ccode\u003e9697b38\u003c/code\u003e\u003c/a\u003e fix: keep the import frame in native loader errors (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11599\"\u003e#11599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a3ae8961f6f2a8abdc89015b6fd0b3aa\"\u003e\u003ccode\u003e6498b66\u003c/code\u003e\u003c/a\u003e fix(browser): wait 30s for the browser to close (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11601\"\u003e#11601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2b3c0bc84982d374094379139e380791\"\u003e\u003ccode\u003ef161e6d\u003c/code\u003e\u003c/a\u003e fix(browser): drop late connections of closed sessions (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11600\"\u003e#11600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6c6aa75481bffe5880b5c4e35ea67927\"\u003e\u003ccode\u003efe86a64\u003c/code\u003e\u003c/a\u003e fix: skip builtin loading in async leak detector (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11598\"\u003e#11598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff0734cf476e30186a83aebe6771aa330\"\u003e\u003ccode\u003e6ae8e89\u003c/code\u003e\u003c/a\u003e fix(reporter): end reason \u003ccode\u003e'failed'\u003c/code\u003e on worker crash (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11568\"\u003e#11568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/common` from 12.1.2 to 12.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e@​nestjs/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.1.3 (2026-10-12)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18111\"\u003e#18111\u003c/a\u003e fix(core,microservices): flush buffered logs when initialization fails (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17993\"\u003e#17993\u003c/a\u003e fix(core,microservices): run transient global enhancers on controllers (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-express\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18110\"\u003e#18110\u003c/a\u003e fix(express): guard async request hook completion (\u003ca href=\"https://github.com/GiHoon1123\"\u003e\u003ccode\u003e@​GiHoon1123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17973\"\u003e#17973\u003c/a\u003e fix(express): destroy the \u003ccode\u003eStreamableFile\u003c/code\u003e source on client disconnect (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17942\"\u003e#17942\u003c/a\u003e fix(express): run wildcard middleware on the bare global prefix path (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18104\"\u003e#18104\u003c/a\u003e fix(core): fail at startup for request-scoped class global enhancers (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18066\"\u003e#18066\u003c/a\u003e fix(core): stop silently dropping request-scoped global enhancers (\u003ca href=\"https://github.com/OmBhandwaldar\"\u003e\u003ccode\u003e@​OmBhandwaldar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18072\"\u003e#18072\u003c/a\u003e fix(core): resolve uri versioned exclusions for the not-found handler (\u003ca href=\"https://github.com/basteez\"\u003e\u003ccode\u003e@​basteez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18075\"\u003e#18075\u003c/a\u003e fix(core): normalize slashes when mapping controllers for middleware (\u003ca href=\"https://github.com/basteez\"\u003e\u003ccode\u003e@​basteez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18086\"\u003e#18086\u003c/a\u003e fix(core): do not mutate the message when assigning an sse event id (\u003ca href=\"https://github.com/Metehan-Bicer\"\u003e\u003ccode\u003e@​Metehan-Bicer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18025\"\u003e#18025\u003c/a\u003e fix(core): end sse streams whose event data cannot be serialized (\u003ca href=\"https://github.com/OmBhandwaldar\"\u003e\u003ccode\u003e@​OmBhandwaldar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18011\"\u003e#18011\u003c/a\u003e fix(core): send status and headers set by handlers on sse responses (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18021\"\u003e#18021\u003c/a\u003e fix(core): honor a shutdown signal received while close() is in flight (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17987\"\u003e#17987\u003c/a\u003e fix(core): settle SSE lifecycle on early disconnect (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17986\"\u003e#17986\u003c/a\u003e fix(core): commit SSE headers for empty streams (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17978\"\u003e#17978\u003c/a\u003e fix(core): preserve explicit null values in reflectable decorators (\u003ca href=\"https://github.com/gophersg\"\u003e\u003ccode\u003e@​gophersg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17966\"\u003e#17966\u003c/a\u003e fix(core): run the shutdown sequence after a failed init (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17963\"\u003e#17963\u003c/a\u003e fix(core): send the expires header on sse responses (\u003ca href=\"https://github.com/Mohamed-Elshesheny\"\u003e\u003ccode\u003e@​Mohamed-Elshesheny\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17953\"\u003e#17953\u003c/a\u003e fix(core): honor global prefix exclusions for overlapping versions (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17950\"\u003e#17950\u003c/a\u003e fix(core): let a \u003ccode\u003eGET\u003c/code\u003e middleware exclusion cover \u003ccode\u003eHEAD\u003c/code\u003e requests (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17951\"\u003e#17951\u003c/a\u003e fix(core): reset the listening state when the application closes (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17945\"\u003e#17945\u003c/a\u003e fix(core): hash \u003ccode\u003eMap\u003c/code\u003e, \u003ccode\u003eSet\u003c/code\u003e and \u003ccode\u003eRegExp\u003c/code\u003e options in deep-hash tokens (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17947\"\u003e#17947\u003c/a\u003e fix(core): treat \u003ccode\u003eVERSION_NEUTRAL\u003c/code\u003e in middleware routes as no version (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17941\"\u003e#17941\u003c/a\u003e fix(core): turn off express \u003ccode\u003ex-powered-by\u003c/code\u003e in \u003ccode\u003euseSecurityHeaders()\u003c/code\u003e (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17939\"\u003e#17939\u003c/a\u003e fix(core): name dynamic host modules in import error messages (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17940\"\u003e#17940\u003c/a\u003e fix(core): isolate nested transient providers injected into properties (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18108\"\u003e#18108\u003c/a\u003e fix(microservices): keep nats status updates alive when a listener throws (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18100\"\u003e#18100\u003c/a\u003e fix(microservices): default server options like the client factory does (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18083\"\u003e#18083\u003c/a\u003e fix(microservices): match rmq '#' wildcards in any position (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18095\"\u003e#18095\u003c/a\u003e fix(microservices): fail mqtt requests whose publish fails (\u003ca href=\"https://github.com/izg0820\"\u003e\u003ccode\u003e@​izg0820\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18085\"\u003e#18085\u003c/a\u003e fix(microservices): preserve null payloads in kafka tombstone records (\u003ca href=\"https://github.com/Hangell\"\u003e\u003ccode\u003e@​Hangell\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18081\"\u003e#18081\u003c/a\u003e fix(microservices): close the connection when the channel close fails (\u003ca href=\"https://github.com/hktitof\"\u003e\u003ccode\u003e@​hktitof\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18071\"\u003e#18071\u003c/a\u003e fix(microservices): return the rmq reply publish so failures are handled (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18060\"\u003e#18060\u003c/a\u003e fix(microservices): fail redis listen on rejected subscriptions (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18056\"\u003e#18056\u003c/a\u003e fix(microservices): clone the kafka record before serializing (\u003ca href=\"https://github.com/Mihir-Rabari\"\u003e\u003ccode\u003e@​Mihir-Rabari\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18054\"\u003e#18054\u003c/a\u003e fix(microservices): do not crash when the redis connection drops (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18043\"\u003e#18043\u003c/a\u003e fix(microservices): fail pending kafka request on deserializer error (\u003ca href=\"https://github.com/hktitof\"\u003e\u003ccode\u003e@​hktitof\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18002\"\u003e#18002\u003c/a\u003e fix(microservices): wait for the TCP TLS handshake (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17995\"\u003e#17995\u003c/a\u003e fix(microservices): survive custom deserializer errors in clients (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18027\"\u003e#18027\u003c/a\u003e fix(microservices): close both kafka client connections when one fails (\u003ca href=\"https://github.com/izg0820\"\u003e\u003ccode\u003e@​izg0820\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18008\"\u003e#18008\u003c/a\u003e fix(microservices): unwrap records returned by message handlers (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18001\"\u003e#18001\u003c/a\u003e fix(microservices): wait for both Redis clients to be ready (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18000\"\u003e#18000\u003c/a\u003e fix(microservices): ignore stale NATS status events (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\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/nestjs/nest/commit/4514623279f6087808e3c8f08fbf9f37d3c17482\"\u003e\u003ccode\u003e4514623\u003c/code\u003e\u003c/a\u003e chore(release): publish v12.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/c5b71871140c0d639b40fa298f77d77182c38aa5\"\u003e\u003ccode\u003ec5b7187\u003c/code\u003e\u003c/a\u003e fix(common): keep custom decorator data that has schema or pipes keys (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/406c40267751baad3f908082365aedf40f9ad498\"\u003e\u003ccode\u003e406c402\u003c/code\u003e\u003c/a\u003e fix(common): reject arrays nested in ParseArrayPipe items (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18073\"\u003e#18073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/529152191ef4b46dc8258726c5ed213a87446a0b\"\u003e\u003ccode\u003e5291521\u003c/code\u003e\u003c/a\u003e fix(common,core,express): answer method miss on an excluded route (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17923\"\u003e#17923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/ea340b134023c3f55ee0efe0c759743605c2ba49\"\u003e\u003ccode\u003eea340b1\u003c/code\u003e\u003c/a\u003e fix(common): collect configurable module alias dependencies (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/1162fdc1b6f62383bae13f30fdd1010e6b1c32d0\"\u003e\u003ccode\u003e1162fdc\u003c/code\u003e\u003c/a\u003e test(common): cover serializer context group overrides (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18026\"\u003e#18026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/5eb62e21aaa38a68c5cd8f3889533d90836ff7be\"\u003e\u003ccode\u003e5eb62e2\u003c/code\u003e\u003c/a\u003e fix(common): isolate file type regexp state (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17983\"\u003e#17983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/c318730ac9d93179a6d67b81dbcc1e524ff79678\"\u003e\u003ccode\u003ec318730\u003c/code\u003e\u003c/a\u003e fix(common): preserve parent validation constraints (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17982\"\u003e#17982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/a468f796cb5c21f9329335707fd5a8392f204393\"\u003e\u003ccode\u003ea468f79\u003c/code\u003e\u003c/a\u003e fix(common): let a redeclared \u003ccode\u003e@Inject()\u003c/code\u003e property replace the parent's (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17949\"\u003e#17949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/97c6e4fcd4a3fb95c297394e1375ede869f5d455\"\u003e\u003ccode\u003e97c6e4f\u003c/code\u003e\u003c/a\u003e fix(common): keep inherited \u003ccode\u003e@Optional()\u003c/code\u003e properties optional (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17944\"\u003e#17944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nestjs/nest/commits/v12.1.3/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/core` from 12.1.2 to 12.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e@​nestjs/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.1.3 (2026-10-12)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18111\"\u003e#18111\u003c/a\u003e fix(core,...\n\n_Description has been truncated_","html_url":"https://github.com/emilhornlund/klurigo/pull/742","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilhornlund%2Fklurigo/issues/742","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/742/packages"},{"uuid":"5913415303","node_id":"PR_kwDOVEDfqc8AAAABJMqtnA","number":19,"state":"open","title":"build(deps): bump express from 5.2.1 to 5.3.0 in the npm-dependencies group","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-10-18T19:42:56.000Z","updated_at":"2026-10-18T19:43:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"the npm-dependencies group","ecosystem":"npm"},"body":"Bumps the npm-dependencies group with 1 update: [express](https://github.com/expressjs/express).\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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 \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/Mr-Nobody-Anonymous/arena-ai-android/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mr-Nobody-Anonymous%2Farena-ai-android/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"},{"uuid":"5907218693","node_id":"PR_kwDOC-YFsc8AAAABJH545g","number":28,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T07:27:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-18T07:23:07.000Z","updated_at":"2026-10-18T07:27:18.000Z","time_to_close":243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/altrdev/high-cpu-node/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/altrdev%2Fhigh-cpu-node/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"},{"uuid":"5906824127","node_id":"PR_kwDOR6Bq7c8AAAABJHmqXw","number":32,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T06:23:10.000Z","updated_at":"2026-10-18T06:23:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":6,"packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.1","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"pg","old_version":"8.22.0","new_version":"8.23.1","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@types/pg","old_version":"8.20.0","new_version":"8.23.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"resend","old_version":"6.18.1","new_version":"6.33.0","repository_url":"https://github.com/resend/resend-node"},{"name":"@types/node","old_version":"26.1.2","new_version":"26.6.5","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 6 updates in the /api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.1` | `8.7.1` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.22.0` | `8.23.1` |\n| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.20.0` | `8.23.1` |\n| [resend](https://github.com/resend/resend-node) | `6.18.1` | `6.33.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.6.5` |\n\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.1 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.1...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 8.22.0 to 8.23.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAll major and minor releases are briefly explained below.\u003c/p\u003e\n\u003cp\u003eFor richer information consult the commit log on github with referenced pull requests.\u003c/p\u003e\n\u003cp\u003eWe do not include break-fix version release in this file.\u003c/p\u003e\n\u003ch2\u003epg@8.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for query \u003ca href=\"https://redirect.github.com/brianc/node-postgres/pull/3652\"\u003e\u003ccode\u003epipelineing\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/brianc/node-postgres/commit/0980cefebe0ae461da8883703be049fe13ca96cf\"\u003e\u003ccode\u003e0980cef\u003c/code\u003e\u003c/a\u003e Publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/2759b2ccf70535d425688dca8a6aec79de49c1ea\"\u003e\u003ccode\u003e2759b2c\u003c/code\u003e\u003c/a\u003e fix(pg): run a named statement with an empty text more than once (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/7feb7dfd70a9f7e5718ab186c80d2658067ce4af\"\u003e\u003ccode\u003e7feb7df\u003c/code\u003e\u003c/a\u003e fix(pg): expose detail and hint on errors from the native client (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3780\"\u003e#3780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/9683053c1eac7f4a1f8910df0d7abdb5f0cb25a7\"\u003e\u003ccode\u003e9683053\u003c/code\u003e\u003c/a\u003e fix(pg): do not treat Sync as connection ending (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3772\"\u003e#3772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/458903894f3514465b74d623f6b92f713b6b952f\"\u003e\u003ccode\u003e4589038\u003c/code\u003e\u003c/a\u003e fix: validate server certificate against host when connecting to an IP addres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/9808955838dd84835c4ca904228c9c2eaeda047e\"\u003e\u003ccode\u003e9808955\u003c/code\u003e\u003c/a\u003e cleanup: Fix typo in comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/2b02f645687b8536f209aecc24f1b4bdb4c32d16\"\u003e\u003ccode\u003e2b02f64\u003c/code\u003e\u003c/a\u003e fix: avoid mutating query config (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/0cef6afdf781e4cbe7eb5ac943df3c14b49c33de\"\u003e\u003ccode\u003e0cef6af\u003c/code\u003e\u003c/a\u003e Reject portal based queries in pipeline mode instead of misrouting rows (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3737\"\u003e#3737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/299148045f921060b5df91343ab4710d46674b08\"\u003e\u003ccode\u003e2991480\u003c/code\u003e\u003c/a\u003e Deprecate serializing invalid \u003ccode\u003eDate\u003c/code\u003es (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/c940d7c206c8545cb195df2ecde230d9ca0279c8\"\u003e\u003ccode\u003ec940d7c\u003c/code\u003e\u003c/a\u003e Fail pipelined queries when the connection dies instead of hanging (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brianc/node-postgres/commits/pg@8.23.1/packages/pg\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/pg` from 8.20.0 to 8.23.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/pg\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `resend` from 6.18.1 to 6.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/resend/resend-node/releases\"\u003eresend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.33.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: inboxes endpoints by \u003ca href=\"https://github.com/isabellaaquino\"\u003e\u003ccode\u003e@​isabellaaquino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1088\"\u003eresend/resend-node#1088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1...v6.33.0\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1...v6.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(receiving): forward raw email bytes without re-decoding them as UTF-8 by \u003ca href=\"https://github.com/RaphaelFakhri\"\u003e\u003ccode\u003e@​RaphaelFakhri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1117\"\u003eresend/resend-node#1117\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/RaphaelFakhri\"\u003e\u003ccode\u003e@​RaphaelFakhri\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1117\"\u003eresend/resend-node#1117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.0...v6.32.1\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.0...v6.32.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): type inbox label colors as hex by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1144\"\u003eresend/resend-node#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.5...v6.32.1-preview-inboxes.6\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.5...v6.32.1-preview-inboxes.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): filter thread list by folders, labels and read, add thread search by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1142\"\u003eresend/resend-node#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(inboxes): type create responses as object and id by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1143\"\u003eresend/resend-node#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.4...v6.32.1-preview-inboxes.5\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.4...v6.32.1-preview-inboxes.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): support reply all on thread reply by \u003ca href=\"https://github.com/felipefreitag\"\u003e\u003ccode\u003e@​felipefreitag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1141\"\u003eresend/resend-node#1141\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.3...v6.32.1-preview-inboxes.4\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.3...v6.32.1-preview-inboxes.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): support idempotency key on inbox sending methods by \u003ca href=\"https://github.com/Cisneiros\"\u003e\u003ccode\u003e@​Cisneiros\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1140\"\u003eresend/resend-node#1140\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.2...v6.32.1-preview-inboxes.3\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.2...v6.32.1-preview-inboxes.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): add agent settings get and update by \u003ca href=\"https://github.com/felipefreitag\"\u003e\u003ccode\u003e@​felipefreitag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1138\"\u003eresend/resend-node#1138\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/resend/resend-node/blob/canary/CHANGELOG.md\"\u003eresend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eresend@6.32.1-preview-inboxes.1\u003c/h2\u003e\n\u003ch3\u003eAdd the \u003ccode\u003einbox.*\u003c/code\u003e webhook events to \u003ccode\u003eWebhookEvent\u003c/code\u003e and \u003ccode\u003eWebhookEventPayload\u003c/code\u003e\u003c/h3\u003e\n\u003ch2\u003eresend@6.32.1-preview-inboxes.0\u003c/h2\u003e\n\u003ch3\u003eAlign inbox thread, draft, and label types with the public API\u003c/h3\u003e\n\u003ch2\u003eresend@6.28.1-preview-inboxes.0\u003c/h2\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.inboxes\u003c/code\u003e with nested \u003ccode\u003ethreads\u003c/code\u003e, \u003ccode\u003ethreads.emails\u003c/code\u003e, \u003ccode\u003elabels\u003c/code\u003e, and \u003ccode\u003edrafts\u003c/code\u003e\u003c/h3\u003e\n\u003ch2\u003eresend@6.18.0\u003c/h2\u003e\n\u003ch3\u003eSupport tags and scheduledAt in batch email options\u003c/h3\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.suppressions\u003c/code\u003e with \u003ccode\u003eadd\u003c/code\u003e, \u003ccode\u003eget\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003eremove\u003c/code\u003e, and batch \u003ccode\u003eadd\u003c/code\u003e/\u003ccode\u003eremove\u003c/code\u003e methods for managing suppression list entries\u003c/h3\u003e\n\u003ch2\u003eresend@6.18.0-canary.0 (canary)\u003c/h2\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.suppressions\u003c/code\u003e with \u003ccode\u003eadd\u003c/code\u003e, \u003ccode\u003eget\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003eremove\u003c/code\u003e, and batch \u003ccode\u003eadd\u003c/code\u003e/\u003ccode\u003eremove\u003c/code\u003e methods for managing suppression list entries\u003c/h3\u003e\n\u003ch2\u003eresend@6.17.2\u003c/h2\u003e\n\u003ch3\u003efix response types for removing contacts out of segments and removing api keys\u003c/h3\u003e\n\u003ch2\u003eresend@6.17.1\u003c/h2\u003e\n\u003ch3\u003eremove resource field, it was a dead field\u003c/h3\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/resend/resend-node/commit/5afae4b29a80e4acd5d6080c731439cb5a152f01\"\u003e\u003ccode\u003e5afae4b\u003c/code\u003e\u003c/a\u003e feat: inboxes endpoints (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/a56aa492406c989f86fb99fc0d019706eb121ead\"\u003e\u003ccode\u003ea56aa49\u003c/code\u003e\u003c/a\u003e fix(receiving): forward raw email bytes without re-decoding them as UTF-8 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/7388c5f17d0514d717d58b84d51addad5b769aa1\"\u003e\u003ccode\u003e7388c5f\u003c/code\u003e\u003c/a\u003e chore(deps): update softprops/action-gh-release digest to efb3536 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1104\"\u003e#1104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/291cccdacac59573eb4a348386fd7b054e24afa4\"\u003e\u003ccode\u003e291cccd\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency next to v16.3.6 [security] (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/7f10587e8eb490c460237fda570353cdd15e43c7\"\u003e\u003ccode\u003e7f10587\u003c/code\u003e\u003c/a\u003e chore(deps): bump morgan from 1.10.1 to 1.12.1 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1120\"\u003e#1120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/8485d02f75f5bdb82b604a7d7f194b7b216dfc0d\"\u003e\u003ccode\u003e8485d02\u003c/code\u003e\u003c/a\u003e chore: bump version to 6.32.0 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/c1c7e879ef24ab7c305e90d9bfde04c57133dcc8\"\u003e\u003ccode\u003ec1c7e87\u003c/code\u003e\u003c/a\u003e fix(batch): treat null request headers as no custom headers (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/b9a3e5a61d8653c5e4873d89feb014258688ec7e\"\u003e\u003ccode\u003eb9a3e5a\u003c/code\u003e\u003c/a\u003e fix(batch): send request headers in every HeadersInit form (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/ed3b151e93ff595f9fa6f1f0043196aacffb143a\"\u003e\u003ccode\u003eed3b151\u003c/code\u003e\u003c/a\u003e fix: treat an aborted error response as a network failure (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1123\"\u003e#1123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/1a4b02909c7a96c84a7390ac3b5738af98d7c96d\"\u003e\u003ccode\u003e1a4b029\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-node action to v7 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1106\"\u003e#1106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/resend/resend-node/compare/v6.18.1...v6.33.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 26.1.2 to 26.6.5\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\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/tomiwaaluko/tomiwaalukov3/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomiwaaluko%2Ftomiwaalukov3/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"},{"uuid":"5906062773","node_id":"PR_kwDOUNX6P88AAAABJHBWMw","number":585,"state":"closed","title":"Bump qs and express in /remix-sdk","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T04:19:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-18T04:17:54.000Z","updated_at":"2026-10-18T04:19:49.000Z","time_to_close":114,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"qs","repository_url":"https://github.com/ljharb/qs","old_version":"6.15.3","new_version":"6.16.1"},{"name":"express","repository_url":"https://github.com/expressjs/express","old_version":"4.22.2","new_version":"4.22.3"}],"path":"/remix-sdk","ecosystem":"npm"},"body":"Bumps [qs](https://github.com/ljharb/qs) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\nUpdates `qs` from 6.15.3 to 6.16.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ljharb/qs/blob/main/CHANGELOG.md\"\u003eqs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003cstrong\u003e6.16.1\u003c/strong\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: do not mutate an object input\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: stop re-encoding structural separator dots when \u003ccode\u003eencodeDotInKeys\u003c/code\u003e is set (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: pass the full encoder arguments with \u003ccode\u003eencodeValuesOnly\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: encode \u003ccode\u003e+\u003c/code\u003e as \u003ccode\u003e%2B\u003c/code\u003e in iso-8859-1 mode so values round-trip (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] parse: only convert top-level dots to brackets when allowDots is on (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: ignore inherited array format names (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: do not throw on elements with no callable \u003ccode\u003etoString\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: seed an overflow container's index from its own keys, not just the source\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: keep a \u003ccode\u003estrictMerge\u003c/code\u003e conflict container's index and \u003ccode\u003earrayLimit\u003c/code\u003e correct\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: only treat \u003ccode\u003e[]\u003c/code\u003e as array syntax when it ends the key\u003c/li\u003e\n\u003cli\u003e[Perf] \u003ccode\u003edecode\u003c/code\u003e: skip decoders when there is no percent sign (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Robustness] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: apply \u003ccode\u003earrayLimit\u003c/code\u003e to the two-element array built for colliding values\u003c/li\u003e\n\u003cli\u003e[Robustness] \u003ccode\u003eparse\u003c/code\u003e: bound the nesting added by repeated \u003ccode\u003estrictMerge\u003c/code\u003e conflicts (credit \u003ca href=\"https://github.com/Yeaseen\"\u003e\u003ccode\u003e@​Yeaseen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] document that \u003ccode\u003eqs\u003c/code\u003e and flat parsers disagree about parameter names\u003c/li\u003e\n\u003cli\u003e[Docs] clarify that \u003ccode\u003ethrowOnLimitExceeded\u003c/code\u003e limits each array, not the total number of values\u003c/li\u003e\n\u003cli\u003e[Docs] clarify 6.14.1/6.15.2 parse bracket behavior change (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/567\"\u003e#567\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ljharb/qs/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[meta] fix changelog indents\u003c/li\u003e\n\u003cli\u003e[actions] set least-privilege \u003ccode\u003ecache-mode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003edecode\u003c/code\u003e: add missing cases\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: characterize the \u003ccode\u003e]=\u003c/code\u003e split when an \u003ccode\u003e=\u003c/code\u003e precedes any bracket group (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: \u003ccode\u003eallowDots\u003c/code\u003e: cover stray close brackets before a dot\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003e@ljharb/eslint-config\u003c/code\u003e, \u003ccode\u003eeslint\u003c/code\u003e, \u003ccode\u003etape\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003cstrong\u003e6.16.0\u003c/strong\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[New] \u003ccode\u003estringify\u003c/code\u003e: add a \u003ccode\u003edepth\u003c/code\u003e option to bound recursion depth (default \u003ccode\u003eInfinity\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] stringify: serialize Date values when a filter is provided\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: enforce \u003ccode\u003earrayLimit\u003c/code\u003e on comma groups under \u003ccode\u003e[]=\u003c/code\u003e when \u003ccode\u003ethrowOnLimitExceeded\u003c/code\u003e is set\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: flatten a collection appended to an overflowed array (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003eisBuffer\u003c/code\u003e: do not invoke a non-callable \u003ccode\u003econstructor.isBuffer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: do not let \u003ccode\u003eallowEmptyArrays\u003c/code\u003e skip cycle detection (or drop own keys) on an empty array with own properties\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: encode dots in a top-level key with a primitive value when encodeDotInKeys is set (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] threat model: clarify \u003ccode\u003estringify\u003c/code\u003e deep-nesting DoS is caller-bounded\u003c/li\u003e\n\u003cli\u003e[Docs] clarify \u003ccode\u003earrayLimit\u003c/code\u003e is a representation threshold, not an element-count cap\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: remove a test that pinned \u003ccode\u003e[]=\u003c/code\u003e comma groups escaping \u003ccode\u003earrayLimit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003estringify\u003c/code\u003e: pin current \u003ccode\u003eencodeDotInKeys\u003c/code\u003e separator-dot behavior\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003e@ljharb/eslint-config\u003c/code\u003e, \u003ccode\u003eeslint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003eeslint\u003c/code\u003e, \u003ccode\u003eevalmd\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\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/2471b66ae696a8a10915c01453ae2c0f139a5adc\"\u003e\u003ccode\u003e2471b66\u003c/code\u003e\u003c/a\u003e v6.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/51f736e94b079b8479fa8f668acba84c1e177596\"\u003e\u003ccode\u003e51f736e\u003c/code\u003e\u003c/a\u003e [Docs] document that \u003ccode\u003eqs\u003c/code\u003e and flat parsers disagree about parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/40239f7564e99ab92eb9125defaaf4779a26b03a\"\u003e\u003ccode\u003e40239f7\u003c/code\u003e\u003c/a\u003e [Dev Deps] update \u003ccode\u003etape\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/d219359f5bedc42815190b2448160fae06b7817c\"\u003e\u003ccode\u003ed219359\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003eparse\u003c/code\u003e: do not mutate an object input\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/98157dc1b770240ed4fb91da0faa3fb404b80474\"\u003e\u003ccode\u003e98157dc\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003estringify\u003c/code\u003e: stop re-encoding structural separator dots when `encodeDot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/cb075c5c4410c36f3cefc1f11b014537c5bb9558\"\u003e\u003ccode\u003ecb075c5\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: pass the full encoder arguments wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/4b89c03f58d61b06636f37b8a1544d4273364620\"\u003e\u003ccode\u003e4b89c03\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003eutils\u003c/code\u003e: encode \u003ccode\u003e+\u003c/code\u003e as \u003ccode\u003e%2B\u003c/code\u003e in iso-8859-1 mode so values round-trip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/266527db14153527c407fe163331ebe0165a6fd4\"\u003e\u003ccode\u003e266527d\u003c/code\u003e\u003c/a\u003e [Perf] \u003ccode\u003edecode\u003c/code\u003e: skip decoders when there is no percent sign\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/82c5bd012c2c9bcf6b81fb62acd9dd3fdb5de674\"\u003e\u003ccode\u003e82c5bd0\u003c/code\u003e\u003c/a\u003e [Tests] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003edecode\u003c/code\u003e: add missing cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/3ee412caf5fd26abc4f7644c66a8c708187280db\"\u003e\u003ccode\u003e3ee412c\u003c/code\u003e\u003c/a\u003e [Tests] \u003ccode\u003eparse\u003c/code\u003e: characterize the \u003ccode\u003e]=\u003c/code\u003e split when an \u003ccode\u003e=\u003c/code\u003e precedes any bracket...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ljharb/qs/compare/v6.15.3...v6.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.2 to 4.22.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/blob/v4.22.3/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.22.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAllow conditional revalidation for QUERY requests\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereq.fresh\u003c/code\u003e now includes QUERY in the freshness check, so QUERY responses can return 304 when a validator matches\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps: qs@~6.16.0\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/expressjs/express/commit/899b52494e74327905c16164decdc6e51f803af8\"\u003e\u003ccode\u003e899b524\u003c/code\u003e\u003c/a\u003e 4.22.3 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7466\"\u003e#7466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/1fad2c30eff02268bb9751f9d0cb6644c14b0fbb\"\u003e\u003ccode\u003e1fad2c3\u003c/code\u003e\u003c/a\u003e ci: add npm staged publication with dist-tag support (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7465\"\u003e#7465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/41386506a9ca6874a79b304f1baafd50522e6078\"\u003e\u003ccode\u003e4138650\u003c/code\u003e\u003c/a\u003e deps: qs@~6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7440\"\u003e#7440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/61ccf2ea8c1bd19cbca6acfb7cd276c5fcd410d3\"\u003e\u003ccode\u003e61ccf2e\u003c/code\u003e\u003c/a\u003e feat: allow conditional revalidation for QUERY requests (v4) (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7377\"\u003e#7377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/715101bd27ec9c14a7ccc8a37c476f330d98ad53\"\u003e\u003ccode\u003e715101b\u003c/code\u003e\u003c/a\u003e Update path-to-regexp to 0.1.13 because CVE-2026-4867 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7135\"\u003e#7135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/f472e5fe28d7a4c1ec8b6832d504c46f8a056d1c\"\u003e\u003ccode\u003ef472e5f\u003c/code\u003e\u003c/a\u003e docs: fix the release date format for 4.22.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.2...v4.22.3\"\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 express since your current version.\u003c/p\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 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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ops-ai/Toggly.Samples/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/ops-ai/Toggly.Samples/pull/585","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ops-ai%2FToggly.Samples/issues/585","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/585/packages"},{"uuid":"5903577485","node_id":"PR_kwDOVKCyNc8AAAABJFHuJg","number":9,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-18T09:00:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T22:06:13.000Z","updated_at":"2026-10-18T09:00:07.000Z","time_to_close":39232,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/Saneajayy/MyCourse/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saneajayy%2FMyCourse/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"5903474594","node_id":"PR_kwDOUj9-888AAAABJFCzIQ","number":21,"state":"open","title":"Bump express from 5.2.1 to 5.3.0 in /server","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-10-17T21:52:56.000Z","updated_at":"2026-10-17T21:53:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"/server","ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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/mananv1791/Weather-App/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mananv1791%2FWeather-App/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"5903392031","node_id":"PR_kwDOUXP4CM8AAAABJE-wvg","number":21,"state":"open","title":"Bump the production-dependencies group with 12 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-10-17T21:42:04.000Z","updated_at":"2026-10-17T21:44:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":12,"packages":[{"name":"@google/genai","old_version":"2.22.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/js-genai"},{"name":"@supabase/supabase-js","old_version":"2.116.0","new_version":"2.117.3","repository_url":"https://github.com/supabase/supabase-js"},{"name":"dodopayments","old_version":"2.54.2","new_version":"2.55.0","repository_url":"https://github.com/dodopayments/dodopayments-typescript"},{"name":"dotenv","old_version":"17.4.2","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"lucide-react","old_version":"0.546.0","new_version":"1.57.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"motion","old_version":"12.43.0","new_version":"14.2.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production-dependencies group with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@google/genai](https://github.com/googleapis/js-genai) | `2.22.0` | `2.29.1` |\n| [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) | `2.116.0` | `2.117.3` |\n| [dodopayments](https://github.com/dodopayments/dodopayments-typescript) | `2.54.2` | `2.55.0` |\n| [dotenv](https://github.com/motdotla/dotenv) | `17.4.2` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.3` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.546.0` | `1.57.0` |\n| [motion](https://github.com/motiondivision/motion) | `12.43.0` | `14.2.0` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n\nUpdates `@google/genai` from 2.22.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/js-genai/releases\"\u003e@​google/genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\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/googleapis/js-genai/blob/main/CHANGELOG.md\"\u003e@​google/genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003elyria-3.5\u003c/code\u003e, \u003ccode\u003egemini-omni-1.1-flash\u003c/code\u003e, and \u003ccode\u003egemini-omni-flash-preview\u003c/code\u003e to Interactions \u003ccode\u003eModel\u003c/code\u003e enum (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4ce63d11497cc86567ecc7e44677cd687f28deac\"\u003e4ce63d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport continuation_token in Interactions (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a888ad73abda6a64dfb140599438afca1033ee2f\"\u003ea888ad7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.25.0...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2026-10-01)\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/googleapis/js-genai/commit/2e083a76600f37755dab8c4947dd45881f05f33a\"\u003e\u003ccode\u003e2e083a7\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.1 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/51cf872f3b60050fe63e9d8a1e3cadaae24c05e0\"\u003e\u003ccode\u003e51cf872\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e\u003ccode\u003e567cc8a\u003c/code\u003e\u003c/a\u003e fix: concatenate output_text across multi-step model responses in a turn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/1693f7cce750e5e9c3615e5a90b4602029cb0979\"\u003e\u003ccode\u003e1693f7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2013\"\u003e#2013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f66291c8556719ed60d10a85aacb9561d996471b\"\u003e\u003ccode\u003ef66291c\u003c/code\u003e\u003c/a\u003e chore: return early on generate content if automatic continuation is not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e\u003ccode\u003e0885fb9\u003c/code\u003e\u003c/a\u003e fix(js): do not set initial prompt token count for requests that do not use a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e\u003ccode\u003e10e850c\u003c/code\u003e\u003c/a\u003e fix: Raise default HTTP timeouts so long-running requests aren't killed clien...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003e\u003ccode\u003ef3d10a6\u003c/code\u003e\u003c/a\u003e fix(js): fix streaming continuation edge cases (stale token, AbortError, init...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/3ecb0b542c30e4b26c82fc8be96c1e753f99bae8\"\u003e\u003ccode\u003e3ecb0b5\u003c/code\u003e\u003c/a\u003e chore: internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e\u003ccode\u003e8478e12\u003c/code\u003e\u003c/a\u003e fix: Update EnvironmentConfig.env schema to map keys to EnvVar or string.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.22.0...v2.29.1\"\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.116.0 to 2.117.3\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.117.3\u003c/h2\u003e\n\u003ch2\u003e2.117.3 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump next to patch RCE in realtime-js example (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e send a Blob or File with its own content type (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2714\"\u003e#2714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e treat TimeoutError as an abort in retry guard (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBruno Gale \u003ca href=\"https://github.com/fresh55\"\u003e\u003ccode\u003e@​fresh55\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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\u003ev2.117.3-canary.1\u003c/h2\u003e\n\u003ch2\u003e2.117.3-canary.1 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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\u003ev2.117.3-canary.0\u003c/h2\u003e\n\u003ch2\u003e2.117.3-canary.0 (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump next to patch RCE in realtime-js example (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e send a Blob or File with its own content type (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2714\"\u003e#2714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e treat TimeoutError as an abort in retry guard (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBruno Gale \u003ca href=\"https://github.com/fresh55\"\u003e\u003ccode\u003e@​fresh55\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003ev2.117.2\u003c/h2\u003e\n\u003ch2\u003e2.117.2 (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e avoid instantiation depth errors for large relationship unions (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2701\"\u003e#2701\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\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.117.3 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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.117.2 (2026-09-25)\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.117.1 (2026-09-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e return stored session when a refresh loses to another tab (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2698\"\u003e#2698\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.117.0 (2026-09-22)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e enable passkey API by default and deprecate experimental passkey opt-in (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2695\"\u003e#2695\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efadymak\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/supabase-js/commit/4d23055805ce2cf853686b704cfaec1a701d29c6\"\u003e\u003ccode\u003e4d23055\u003c/code\u003e\u003c/a\u003e fix(storage): send multipart fields before files (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/a684cf97b67fd71670bab5030fe88b219f2c09fe\"\u003e\u003ccode\u003ea684cf9\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.2 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/54c225dacb1fc5f5a0a97c93908a46b7e8f5c9cc\"\u003e\u003ccode\u003e54c225d\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.1 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/739b35128c7fdefed78d747e5ea2ec80a2bcde2f\"\u003e\u003ccode\u003e739b351\u003c/code\u003e\u003c/a\u003e fix(auth): return stored session when a refresh loses to another tab (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2698\"\u003e#2698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/f34d4284d8c73a3b57a4c1228b62ef3c8c3f9fca\"\u003e\u003ccode\u003ef34d428\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.0 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/cc45ccfd1dd8ef9ee87d69adaf16c1947cbf7dc4\"\u003e\u003ccode\u003ecc45ccf\u003c/code\u003e\u003c/a\u003e feat(auth): enable passkey API by default and deprecate experimental passkey ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c5112864f7830ad2fbd0c0c8368491021f530aea\"\u003e\u003ccode\u003ec511286\u003c/code\u003e\u003c/a\u003e docs(realtime): document relationship of \u003ccode\u003eaccessToken()\u003c/code\u003e and heartbeat (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2680\"\u003e#2680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/84af33f79e5732633c2a20a2ecc6d3535879c4d8\"\u003e\u003ccode\u003e84af33f\u003c/code\u003e\u003c/a\u003e chore(release): version 2.116.0 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-js/commits/v2.117.3/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 `dodopayments` from 2.54.2 to 2.55.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/releases\"\u003edodopayments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.55.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003e2.55.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e93d61b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e16ef1e2\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/dodopayments/dodopayments-typescript/blob/main/CHANGELOG.md\"\u003edodopayments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003e2.55.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e93d61b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e16ef1e2\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/dodopayments/dodopayments-typescript/commit/f38a877c6a466038097446729cb51e5f16892d3f\"\u003e\u003ccode\u003ef38a877\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/373\"\u003e#373\u003c/a\u003e from dodopayments/release-please--branches--main--com...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/6b2da7af7feb1346a540ee49202b43ea5a1699b1\"\u003e\u003ccode\u003e6b2da7a\u003c/code\u003e\u003c/a\u003e release: 2.55.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e\u003ccode\u003e93d61b6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/372\"\u003e#372\u003c/a\u003e from dodopayments/stlc-generated-38531523791\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e\u003ccode\u003e16ef1e2\u003c/code\u003e\u003c/a\u003e feat(api): payment service periods, retry attempts and subscription renewal p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/11c4ba5860efaaf5a5bfa6d7aae8b565ba13391e\"\u003e\u003ccode\u003e11c4ba5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/370\"\u003e#370\u003c/a\u003e from dodopayments/ci/ghcr-github-token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/75d00f66d291d0ea27bf2da500f2c0b5f2c5ab99\"\u003e\u003ccode\u003e75d00f6\u003c/code\u003e\u003c/a\u003e ci(mcp): push the MCP Docker image to GHCR with GITHUB_TOKEN\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 17.4.2 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.6...v18.0.7\"\u003e18.0.7\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat undefined settings like \u003ccode\u003equiet: true\u003c/code\u003e as null rather than falsey (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI should honor \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting in \u003ccode\u003e.env\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.6\"\u003e18.0.6\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse smarter \u003ccode\u003eparseBoolean\u003c/code\u003e not Boolean() to fix override (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.4...v18.0.5\"\u003e18.0.5\u003c/a\u003e (2026-09-30)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing typescript module declaration (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance for large .env files (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.3...v18.0.4\"\u003e18.0.4\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eimport dotenv/config\u003c/code\u003e should default quiet: true (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.2...v18.0.3\"\u003e18.0.3\u003c/a\u003e (2026-09-22)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePatch \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting when inside .env file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.1...v18.0.2\"\u003e18.0.2\u003c/a\u003e (2026-09-21)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePatch additional edge cases for the fast parser (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.0...v18.0.1\"\u003e18.0.1\u003c/a\u003e (2026-09-18)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle file urls in config logging (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1054\"\u003e#1054\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/295320751866efa323236c719cdc1b5306fa3de7\"\u003e\u003ccode\u003e2953207\u003c/code\u003e\u003c/a\u003e 18.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/9944723d89e6f776897f171bfc6b945dfad23c57\"\u003e\u003ccode\u003e9944723\u003c/code\u003e\u003c/a\u003e make more readable for undefined -\u0026gt; null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/d455db06a7b37acd8b240793a888efaba75885f4\"\u003e\u003ccode\u003ed455db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:motdotla/dotenv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v17.4.2...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.546.0 to 1.57.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.57.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003efolder-user\u003c/code\u003e and \u003ccode\u003efolder-user\u003c/code\u003e icons by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4603\"\u003elucide-icons/lucide#4603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ecalendar-chevrons-left\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/5001\"\u003elucide-icons/lucide#5001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eusers-collaboration\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4922\"\u003elucide-icons/lucide#4922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eBelarusian ruble\u003c/code\u003e icon by \u003ca href=\"https://github.com/js-best\"\u003e\u003ccode\u003e@​js-best\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4984\"\u003elucide-icons/lucide#4984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ecircle-fading-play\u003c/code\u003e icon by \u003ca href=\"https://github.com/tatianatsiguleva\"\u003e\u003ccode\u003e@​tatianatsiguleva\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4990\"\u003elucide-icons/lucide#4990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ecpu-ai\u003c/code\u003e icon by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4992\"\u003elucide-icons/lucide#4992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eguitar-electric\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4917\"\u003elucide-icons/lucide#4917\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003egraph-star\u003c/code\u003e icon by \u003ca href=\"https://github.com/Nitero\"\u003e\u003ccode\u003e@​Nitero\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4983\"\u003elucide-icons/lucide#4983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the svelte-deps group with 2 updates 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/4996\"\u003elucide-icons/lucide#4996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump preact from 11.0.0 to 11.0.1 in the preact-deps group 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/4999\"\u003elucide-icons/lucide#4999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e from 6.1.1 to 6.1.2 in the react-deps group 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/4995\"\u003elucide-icons/lucide#4995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eperfume\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4426\"\u003elucide-icons/lucide#4426\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/js-best\"\u003e\u003ccode\u003e@​js-best\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4984\"\u003elucide-icons/lucide#4984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tatianatsiguleva\"\u003e\u003ccode\u003e@​tatianatsiguleva\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4990\"\u003elucide-icons/lucide#4990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4992\"\u003elucide-icons/lucide#4992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nitero\"\u003e\u003ccode\u003e@​Nitero\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4983\"\u003elucide-icons/lucide#4983\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.56.0...1.57.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.56.0...1.57.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.56.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eserver-nas\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4537\"\u003elucide-icons/lucide#4537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons,categories): fix \u003ccode\u003enotifications\u003c/code\u003e category name and refine \u003ccode\u003ecircle-x\u003c/code\u003e tags by \u003ca href=\"https://github.com/Rachit315\"\u003e\u003ccode\u003e@​Rachit315\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4994\"\u003elucide-icons/lucide#4994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003emessage-circle-text\u003c/code\u003e icon 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/4898\"\u003elucide-icons/lucide#4898\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/Rachit315\"\u003e\u003ccode\u003e@​Rachit315\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4994\"\u003elucide-icons/lucide#4994\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.55.0...1.56.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.55.0...1.56.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.55.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003email-dot\u003c/code\u003e icon by \u003ca href=\"https://github.com/elenakovelskikh\"\u003e\u003ccode\u003e@​elenakovelskikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3230\"\u003elucide-icons/lucide#3230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(lint): split lint jobs and annotate Prettier and JSON schema errors in PRs 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/4982\"\u003elucide-icons/lucide#4982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sharp from 0.35.4 to 0.35.5 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/4987\"\u003elucide-icons/lucide#4987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump next from 16.3.6 to 16.3.8 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/4988\"\u003elucide-icons/lucide#4988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(lucide): add tests for empty icons error and DocumentFragment root in createIcons by \u003ca href=\"https://github.com/grzdev\"\u003e\u003ccode\u003e@​grzdev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4967\"\u003elucide-icons/lucide#4967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ephone-log\u003c/code\u003e icon by \u003ca href=\"https://github.com/Levi-Bensley\"\u003e\u003ccode\u003e@​Levi-Bensley\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3598\"\u003elucide-icons/lucide#3598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(copilot-instruction): Adjust instruction text to allow more then 4 use-cases 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/4989\"\u003elucide-icons/lucide#4989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ewifi-lock\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4913\"\u003elucide-icons/lucide#4913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): Add \u003ccode\u003ehandle-bottom-right\u003c/code\u003e icon by \u003ca href=\"https://github.com/ocavue\"\u003e\u003ccode\u003e@​ocavue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/1793\"\u003elucide-icons/lucide#1793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(lucide-react): add tests for DynamicIcon fallback and ref forwarding by \u003ca href=\"https://github.com/grzdev\"\u003e\u003ccode\u003e@​grzdev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4966\"\u003elucide-icons/lucide#4966\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003escrew\u003c/code\u003e icon by \u003ca href=\"https://github.com/edik17\"\u003e\u003ccode\u003e@​edik17\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4932\"\u003elucide-icons/lucide#4932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003euser-round-star\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/3469\"\u003elucide-icons/lucide#3469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eshield-house\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4602\"\u003elucide-icons/lucide#4602\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/lucide-icons/lucide/commit/3f1255ecfa1b5b3a231e4aeb027781761204e187\"\u003e\u003ccode\u003e3f1255e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4995\"\u003e#4995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/949bc6d61f5964a98f99f4eb9b5bc291949ca18f\"\u003e\u003ccode\u003e949bc6d\u003c/code\u003e\u003c/a\u003e test(lucide-react): add tests for DynamicIcon fallback and ref forwarding (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/98331e287029edeff0e04f269439884d060af703\"\u003e\u003ccode\u003e98331e2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the react-deps group across 1 directory with 3 updates (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4951\"\u003e#4951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/09aa9c5c62c3b4b519fbb8c9ce1c396cc12f4dae\"\u003e\u003ccode\u003e09aa9c5\u003c/code\u003e\u003c/a\u003e chore(deps): Upgrade to vite 8 (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4950\"\u003e#4950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/e042fec3b59b2bc36a07bcd8b433c1aedde1db29\"\u003e\u003ccode\u003ee042fec\u003c/code\u003e\u003c/a\u003e fix(packages): declare \u003ccode\u003e@types/react\u003c/code\u003e as an optional peer dependency (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/f06ac67e33d645c40b8ce19a0419c85c5d7dd751\"\u003e\u003ccode\u003ef06ac67\u003c/code\u003e\u003c/a\u003e chore(typchecking): More typecheck jobs for all packages (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4885\"\u003e#4885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/94e4cb9d9db5907053ebf3636a97c45529cf776b\"\u003e\u003ccode\u003e94e4cb9\u003c/code\u003e\u003c/a\u003e chore(dependencies): Update dependencies (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4806\"\u003e#4806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/99d25bdee231922e73e19525f57a585d1682fab2\"\u003e\u003ccode\u003e99d25bd\u003c/code\u003e\u003c/a\u003e feat(packages): extract icon build logic into \u003ccode\u003e@lucide/shared\u003c/code\u003e (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4409\"\u003e#4409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/75b55160aa9edd7095dfed1a6e3d88e66fb2b153\"\u003e\u003ccode\u003e75b5516\u003c/code\u003e\u003c/a\u003e chore(dev): upgrade ESLint to latest compatible stack (v10) (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4378\"\u003e#4378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/0f8d48b266e7af1e2bab49ff12ab6ec0795ed204\"\u003e\u003ccode\u003e0f8d48b\u003c/code\u003e\u003c/a\u003e test(packages): updates unit test snapshots with face-slightly-smiling (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.57.0/packages/lucide-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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `motion` from 12.43.0 to 14.2.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\"\u003emotion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.2.0] 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHardware accelerated independent transforms like \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003escaleX\u003c/code\u003e etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.1.1] 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix velocity hand-off for hardware-accelerated springs.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecubicBezier\u003c/code\u003e: More accurate, 2x faster.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eReorder\u003c/code\u003e: Fix click events on reoredered items.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euseTransform\u003c/code\u003e: Fix desync when source is set in an effect under Strict Mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.1.0] 2026-10-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanimateLayout\u003c/code\u003e: Layout animations for vanilla JS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDelay animation start when main thread held to prevent visual jumps.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ewhileHover\u003c/code\u003e/\u003ccode\u003ewhileTap\u003c/code\u003e getting stuck after Fast Refresh reorders siblings.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escroll\u003c/code\u003e/\u003ccode\u003euseScroll\u003c/code\u003e: Fix reporting of elastic overscroll.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAnimatePresence\u003c/code\u003e: Fix \u003ccode\u003epopLayout\u003c/code\u003e when rendering into another window or iframe.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanimate\u003c/code\u003e: Fix JS animations jumping ahead when played after a pause at non-\u003ccode\u003e1\u003c/code\u003e speed.\u003c/li\u003e\n\u003cli\u003eAllow layout animations inside dragged elements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.0.0] 2026-10-02\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved internal APIs restored in \u003ccode\u003e13.5.1\u003c/code\u003e for compatibility with \u003ccode\u003eframer-motion\u003c/code\u003e \u003ccode\u003e13.0\u003c/code\u003e–\u003ccode\u003e13.4\u003c/code\u003e. Future removed internal APIs won't cause cross-compatibility issues since pinning internal \u003ccode\u003eframer-motion\u003c/code\u003e, \u003ccode\u003emotion-dom\u003c/code\u003e and \u003ccode\u003emotion-utils\u003c/code\u003e dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[13.5.1] 2026-10-02\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Fall back to the attribute in readSVGValue when computed style is empty.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Internal changes to \u003ccode\u003eanimateChanges\u003c/code\u003e for size reductions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003escroll\u003c/code\u003e: Temporarily reverted removal of internal \u003ccode\u003eobserveTimeline\u003c/code\u003e API to fix compatibility with previous \u003ccode\u003e13.x\u003c/code\u003e APIs. Moving to pinned dependencies before removing in \u003ccode\u003e14.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyleEffect\u003c/code\u003e: Cleaning up an earlier value no longer removes a value that was bound to the same key after it.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esvgEffect\u003c/code\u003e: No longer writes transforms and origins as attributes.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: \u003ccode\u003einherit={false}\u003c/code\u003e now correctly not inheriting parent animations.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Fix \u003ccode\u003esortNodePosition\u003c/code\u003e throwing when a sibling hasn't mounted\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/motiondivision/motion/commit/bd3a91b4a995ece766982cb6785d27bc4026340b\"\u003e\u003ccode\u003ebd3a91b\u003c/code\u003e\u003c/a\u003e v14.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/c35493f2d750b998bd0e166f2efa597bbef8baa3\"\u003e\u003ccode\u003ec35493f\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/e0c0e7fa8c47a0b070ffd630a5fc2d03d68e58f9\"\u003e\u003ccode\u003ee0c0e7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3897\"\u003e#3897\u003c/a\u003e from motiondivision/claude/independent-transform-waa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9f4da2eead9fa859d0cbcae035bcd624679e56b3\"\u003e\u003ccode\u003e9f4da2e\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into claude/independent-transform-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/c53fcc687af6bf9013374b0407931918f1882a2b\"\u003e\u003ccode\u003ec53fcc6\u003c/code\u003e\u003c/a\u003e Trim transform group code and reuse shared helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/23b2a5697ffa854d6da4c26b04ea0d2425e033d7\"\u003e\u003ccode\u003e23b2a56\u003c/code\u003e\u003c/a\u003e v14.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/7d5bb804f52741a2a7ff6981ae45690e5105b1fe\"\u003e\u003ccode\u003e7d5bb80\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/4840bbc4ae6aae27c24d00f34f5db18da8433fb9\"\u003e\u003ccode\u003e4840bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3915\"\u003e#3915\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-use...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9dc3a409227d484ca321cd48a4b3d8139c756d69\"\u003e\u003ccode\u003e9dc3a40\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3916\"\u003e#3916\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-reo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/5ce6caf4362a15a06a84257538234d6e4e181487\"\u003e\u003ccode\u003e5ce6caf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3914\"\u003e#3914\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-cub...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motiondivision/motion/compare/v12.43.0...v14.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pino` from 10.3.1 to 10.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pinojs/pino/releases\"\u003epino's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning on incompatible formatters.level with multi-target transports by \u003ca href=\"https://github.com/lraveri\"\u003e\u003ccode\u003e@​lraveri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2381\"\u003epinojs/pino#2381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: use TSTyche for type testing by \u003ca href=\"https://github.com/mrazauskas\"\u003e\u003ccode\u003e@​mrazauskas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2376\"\u003epinojs/pino#2376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Sentry Native Integration Docs by \u003ca href=\"https://github.com/KyleTryon\"\u003e\u003ccode\u003e@​KyleTryon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2394\"\u003epinojs/pino#2394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add flush limitation warning for pino-pretty, fix \u003ca href=\"https://redirect.github.com/pinojs/pino/issues/1015\"\u003e#1015\u003c/a\u003e by \u003ca href=\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2402\"\u003epinojs/pino#2402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(browser): add redaction supp...\n\n_Description has been truncated_","html_url":"https://github.com/vaishakh19/datings.lol/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishakh19%2Fdatings.lol/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"5902148003","node_id":"PR_kwDOPPPQu88AAAABJEBDGg","number":8287,"state":"closed","title":"deps: bump the minor-and-patch group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T14:59:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T19:17:09.000Z","updated_at":"2026-10-18T14:59:38.000Z","time_to_close":70947,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"minor-and-patch","update_count":40,"packages":[{"name":"@anthropic-ai/sdk","old_version":"0.127.0","new_version":"0.134.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@contentauth/c2pa-node","old_version":"0.9.7","new_version":"0.9.9","repository_url":"https://github.com/contentauth/c2pa-js"},{"name":"@google-cloud/kms","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"@google-cloud/storage","old_version":"8.2.0","new_version":"8.4.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"@google/genai","old_version":"2.23.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/js-genai"},{"name":"@opentelemetry/api-logs","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/exporter-logs-otlp-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/resources","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-logs","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@slack/web-api","old_version":"8.1.1","new_version":"8.2.0","repository_url":"https://github.com/slackapi/node-slack-sdk"},{"name":"@workos-inc/widgets","old_version":"1.18.0","new_version":"1.20.0","repository_url":"https://github.com/workos/widgets"},{"name":"csv-parse","old_version":"7.0.2","new_version":"7.0.3","repository_url":"https://github.com/adaltas/node-csv"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"file-type","old_version":"22.1.1","new_version":"22.2.0","repository_url":"https://github.com/sindresorhus/file-type"},{"name":"google-auth-library","old_version":"11.1.0","new_version":"11.3.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"isomorphic-dompurify","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/kkomelin/isomorphic-dompurify"},{"name":"mammoth","old_version":"1.12.3","new_version":"1.13.0","repository_url":"https://github.com/mwilliamson/mammoth.js"},{"name":"marked","old_version":"18.0.13","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"openai","old_version":"7.20.0","new_version":"7.33.0","repository_url":"https://github.com/openai/openai-node"},{"name":"pg","old_version":"8.23.0","new_version":"8.23.1","repository_url":"https://github.com/brianc/node-postgres"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"posthog-node","old_version":"5.52.4","new_version":"5.56.1","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"resend","old_version":"6.28.1","new_version":"6.33.0","repository_url":"https://github.com/resend/resend-node"},{"name":"svix","old_version":"2.5.0","new_version":"2.8.0","repository_url":"https://github.com/svix/svix-webhooks"},{"name":"tldts","old_version":"7.4.13","new_version":"7.4.18","repository_url":"https://github.com/remusao/tldts"},{"name":"undici","old_version":"8.11.2","new_version":"8.12.2","repository_url":"https://github.com/nodejs/undici"},{"name":"uuid","old_version":"14.0.2","new_version":"14.0.3","repository_url":"https://github.com/uuidjs/uuid"},{"name":"ws","old_version":"8.21.3","new_version":"8.22.0","repository_url":"https://github.com/websockets/ws"},{"name":"@types/ws","old_version":"8.18.1","new_version":"8.18.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@types/multer","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"24.13.6","new_version":"24.19.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/ws","old_version":"8.18.1","new_version":"8.18.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"concurrently","old_version":"10.0.5","new_version":"10.0.6","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"jsdom","old_version":"30.1.0","new_version":"30.1.3","repository_url":"https://github.com/jsdom/jsdom"},{"name":"mint","old_version":"4.2.909","new_version":"4.2.1032","repository_url":"https://github.com/mintlify/mint"},{"name":"puppeteer","old_version":"25.11.0","new_version":"25.14.0","repository_url":"https://github.com/puppeteer/puppeteer"},{"name":"supertest","old_version":"7.2.2","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"tsx","old_version":"4.23.13","new_version":"4.23.15","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.127.0` | `0.134.0` |\n| [@contentauth/c2pa-node](https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node) | `0.9.7` | `0.9.9` |\n| [@google-cloud/kms](https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms) | `6.2.0` | `6.3.0` |\n| [@google-cloud/storage](https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage) | `8.2.0` | `8.4.0` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `2.23.0` | `2.29.1` |\n| [@opentelemetry/api-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/exporter-logs-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [@opentelemetry/sdk-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@slack/web-api](https://github.com/slackapi/node-slack-sdk) | `8.1.1` | `8.2.0` |\n| [@workos-inc/widgets](https://github.com/workos/widgets/tree/HEAD/packages/widgets) | `1.18.0` | `1.20.0` |\n| [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) | `7.0.2` | `7.0.3` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [file-type](https://github.com/sindresorhus/file-type) | `22.1.1` | `22.2.0` |\n| [google-auth-library](https://github.com/googleapis/google-cloud-node/tree/HEAD/core/packages/google-auth-library-nodejs) | `11.1.0` | `11.3.0` |\n| [isomorphic-dompurify](https://github.com/kkomelin/isomorphic-dompurify) | `4.3.0` | `4.5.0` |\n| [mammoth](https://github.com/mwilliamson/mammoth.js) | `1.12.3` | `1.13.0` |\n| [marked](https://github.com/markedjs/marked) | `18.0.13` | `18.1.1` |\n| [openai](https://github.com/openai/openai-node) | `7.20.0` | `7.33.0` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.23.0` | `8.23.1` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.52.4` | `5.56.1` |\n| [resend](https://github.com/resend/resend-node) | `6.28.1` | `6.33.0` |\n| [svix](https://github.com/svix/svix-webhooks) | `2.5.0` | `2.8.0` |\n| [tldts](https://github.com/remusao/tldts) | `7.4.13` | `7.4.18` |\n| [undici](https://github.com/nodejs/undici) | `8.11.2` | `8.12.2` |\n| [uuid](https://github.com/uuidjs/uuid) | `14.0.2` | `14.0.3` |\n| [ws](https://github.com/websockets/ws) | `8.21.3` | `8.22.0` |\n| [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) | `8.18.1` | `8.18.2` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@types/multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multer) | `2.2.0` | `2.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.13.6` | `24.19.2` |\n| [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) | `8.18.1` | `8.18.2` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `10.0.5` | `10.0.6` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.0` | `30.1.3` |\n| [mint](https://github.com/mintlify/mint/tree/HEAD/packages/mint) | `4.2.909` | `4.2.1032` |\n| [puppeteer](https://github.com/puppeteer/puppeteer) | `25.11.0` | `25.14.0` |\n| [supertest](https://github.com/ladjs/supertest) | `7.2.2` | `7.3.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.23.13` | `4.23.15` |\n\n\nUpdates `@anthropic-ai/sdk` from 0.127.0 to 0.134.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.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add execution_identity to Managed Agents agents\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add organization_type_not_supported error to spend limit lists\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destination test endpoint\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destinations to the Admin API\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add native support for OpenTelemetry tracing\u003c/p\u003e\n\u003cp\u003eIf your app registers a global tracer provider, the SDK will create spans with it after upgrading, and they'll be exported with the rest of your traces. Requests will also get trace context headers from the global propagator. To disable, pass \u003ccode\u003eopenTelemetry: false\u003c/code\u003e to the client or set \u003ccode\u003eANTHROPIC_OPEN_TELEMETRY=false\u003c/code\u003e. Learn more in the \u003ca href=\"https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e don't follow redirects on token requests\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e treat proxy-authorization as a sensitive header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e tolerate unknown event types in MessageStream and BetaMessageStream\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e stop throwing \u0026quot;Unexpected event order\u0026quot; for an event before message_start\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e yield events that arrive before message_start when iterating MessageStream and BetaMessageStream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e correct prefill, thinking, fallback and model descriptions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e document the scope required to assign the managed role\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e update model examples\u003c/li\u003e\n\u003cli\u003einclude the license files in the published packages\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e narrow the tripwire test rule in the contributor guides\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove \u003ccode\u003e@internal\u003c/code\u003e tag from a type that public types reference\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove file-level \u003ccode\u003e@internal\u003c/code\u003e tags from toolset modules\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e strip \u003ccode\u003e@internal\u003c/code\u003e declarations from published types\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e type-check the built declarations in lint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e clarify when custom tool results can be sent\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e say is_enabled is always true for user spend limits\u003c/li\u003e\n\u003cli\u003emove more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eshow examples of streaming-only methods iterating the stream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk-v0.133.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\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\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.133.0...sdk-v0.134.0\"\u003e0.134.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add execution_identity to Managed Agents agents\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add organization_type_not_supported error to spend limit lists\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destination test endpoint\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destinations to the Admin API\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add native support for OpenTelemetry tracing\u003c/p\u003e\n\u003cp\u003eIf your app registers a global tracer provider, the SDK will create spans with it after upgrading, and they'll be exported with the rest of your traces. Requests will also get trace context headers from the global propagator. To disable, pass \u003ccode\u003eopenTelemetry: false\u003c/code\u003e to the client or set \u003ccode\u003eANTHROPIC_OPEN_TELEMETRY=false\u003c/code\u003e. Learn more in the \u003ca href=\"https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e don't follow redirects on token requests\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e treat proxy-authorization as a sensitive header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e tolerate unknown event types in MessageStream and BetaMessageStream\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e stop throwing \u0026quot;Unexpected event order\u0026quot; for an event before message_start\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e yield events that arrive before message_start when iterating MessageStream and BetaMessageStream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e correct prefill, thinking, fallback and model descriptions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e document the scope required to assign the managed role\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e update model examples\u003c/li\u003e\n\u003cli\u003einclude the license files in the published packages\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e narrow the tripwire test rule in the contributor guides\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove \u003ccode\u003e@internal\u003c/code\u003e tag from a type that public types reference\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove file-level \u003ccode\u003e@internal\u003c/code\u003e tags from toolset modules\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e strip \u003ccode\u003e@internal\u003c/code\u003e declarations from published types\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e type-check the built declarations in lint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e clarify when custom tool results can be sent\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e say is_enabled is always true for user spend limits\u003c/li\u003e\n\u003cli\u003emove more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eshow examples of streaming-only methods iterating the stream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.1...sdk-v0.133.0\"\u003e0.133.0\u003c/a\u003e (2026-10-09)\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/anthropics/anthropic-sdk-typescript/commit/034b168065139f10a7482b2e7af5eb7aab8d7991\"\u003e\u003ccode\u003e034b168\u003c/code\u003e\u003c/a\u003e release: 0.134.0, packages/aws-sdk 0.8.0, packages/bedrock-sdk 0.35.0, packag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7167acf7a0e7c3930709258c43613b441785e0dd\"\u003e\u003ccode\u003e7167acf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/918\"\u003e#918\u003c/a\u003e from anthropics/synced/published\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/ddedaf6e2ba5859aac14a6c33ac13b3a9e51703c\"\u003e\u003ccode\u003eddedaf6\u003c/code\u003e\u003c/a\u003e fix(client): close an unread messages.create stream that was dropped while tr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b30ce1d410e1ef962e33a017ae9b3e36efc15cd4\"\u003e\u003ccode\u003eb30ce1d\u003c/code\u003e\u003c/a\u003e fix(api): rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/294fd9307f6ada46aa6b68265b935fb55f735e74\"\u003e\u003ccode\u003e294fd93\u003c/code\u003e\u003c/a\u003e feat(api): add telemetry destination test endpoint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/0827ac85d312be95dedf857949031637c6655a0f\"\u003e\u003ccode\u003e0827ac8\u003c/code\u003e\u003c/a\u003e fix(client): close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1d976d35826df65a87801023ff156d9f7c706c4f\"\u003e\u003ccode\u003e1d976d3\u003c/code\u003e\u003c/a\u003e feat(api): add telemetry destinations to the Admin API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d18ddbdf8d705f8ca14d050dcfcee11f2d83f6b2\"\u003e\u003ccode\u003ed18ddbd\u003c/code\u003e\u003c/a\u003e feat(client): emit OpenTelemetry spans for API calls and the tool runners (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1d5025fb624734b366886df7877cd25aefbe844a\"\u003e\u003ccode\u003e1d5025f\u003c/code\u003e\u003c/a\u003e feat(client): add OpenTelemetry spans for API calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f6d4ef6f788658680e08d6fe4ebaaafac011f317\"\u003e\u003ccode\u003ef6d4ef6\u003c/code\u003e\u003c/a\u003e docs: move more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.127.0...sdk-v0.134.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@contentauth/c2pa-node` from 0.9.7 to 0.9.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contentauth/c2pa-js/blob/main/packages/c2pa-node/CHANGELOG.md\"\u003e@​contentauth/c2pa-node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.9\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee29811b: Add ability to modify assertions\u003c/li\u003e\n\u003cli\u003ea0057f8: Update to Trustmark version 0.4.0.\u003c/li\u003e\n\u003cli\u003eb862120: Bump Trustmark crate dependency to v0.3.0 for c2pa-node.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.9.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee454a78: Update to c2pa-rs v0.91.0.\u003c/li\u003e\n\u003cli\u003eabe6b75: Support optional (empty) mime types for Readers. Prefer supplying the mime type explicitly whenever it's known — omitting it falls back to slower, less reliable byte-based format detection in the native library.\u003c/li\u003e\n\u003cli\u003ef5141d9: Fix typings errors and avoid potential udnerflow\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [e454a78]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​contentauth/c2pa-utilities\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.3.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​contentauth/c2pa-types\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.7.5\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/contentauth/c2pa-js/commit/edb68d82944f15b92695506e9ff9b8280a709847\"\u003e\u003ccode\u003eedb68d8\u003c/code\u003e\u003c/a\u003e chore: version packages (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/232\"\u003e#232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/a0057f86ac7aa006c6823f92426c1f8b19254f05\"\u003e\u003ccode\u003ea0057f8\u003c/code\u003e\u003c/a\u003e fix: Switch to Trustmark v0.4.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/233\"\u003e#233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/e29811b88204be8728ccc7c2f46fc6c203ceb42d\"\u003e\u003ccode\u003ee29811b\u003c/code\u003e\u003c/a\u003e feat: Add assertion updates to Node and Web (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/b862120d767530a3197525e77c933513f6680412\"\u003e\u003ccode\u003eb862120\u003c/code\u003e\u003c/a\u003e chore(c2pa-node): Bump Trustmark dependency to v0.3.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/231\"\u003e#231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/598bd8c7f7139f9fb6b5aabeac1fa82ef8e1b04d\"\u003e\u003ccode\u003e598bd8c\u003c/code\u003e\u003c/a\u003e chore: version packages (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/226\"\u003e#226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/e454a78d0ab94ad539e183c1387be7dce0bfd2cb\"\u003e\u003ccode\u003ee454a78\u003c/code\u003e\u003c/a\u003e Bump c2pa-rs to 0.91.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/abe6b75801e9f083e3c18e03253a0a24fb4ce8c8\"\u003e\u003ccode\u003eabe6b75\u003c/code\u003e\u003c/a\u003e feat: Add support for optional (empty) MIME types for Readers (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/227\"\u003e#227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/f5141d989c48ef75d41879db0126475f89105ad9\"\u003e\u003ccode\u003ef5141d9\u003c/code\u003e\u003c/a\u003e fix: Add missing types/bindings/override in identity flows (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/contentauth/c2pa-js/commits/@contentauth/c2pa-node@0.9.9/packages/c2pa-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google-cloud/kms` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-node/releases\"\u003e@​google-cloud/kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epubsub: v6.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/pubsub-v6.2.0...pubsub-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebigquery-storage: v6.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/bigquery-storage-v6.2.0...bigquery-storage-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Bump bigquery-storage-api to ^0.5.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9595\"\u003e#9595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/fca6160fce7932d5491fb9fcca9c42c3de2102c1\"\u003efca6160\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/googleapis/google-cloud-node/blob/main/packages/google-cloud-kms/CHANGELOG.md\"\u003e@​google-cloud/kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/kms-v6.2.1...kms-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/kms-v6.2.0...kms-v6.2.1\"\u003e6.2.1\u003c/a\u003e (2026-09-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate package.json and .gitignore across packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9378\"\u003e#9378\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/9c54cece565b5cbcae63a9856c1ef3448307d46e\"\u003e9c54cec\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/googleapis/google-cloud-node/commit/cf59635a259dd06f01b810d8369ff22c04a08b15\"\u003e\u003ccode\u003ecf59635\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6398\"\u003e#6398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/bd8cc854ee691ef51a7b826690658fc5685a8531\"\u003e\u003ccode\u003ebd8cc85\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sinon to v21 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6413\"\u003e#6413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/58d287807d370acb588c0491c28f9ee9935c2a8f\"\u003e\u003ccode\u003e58d2878\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency jsdoc-fresh to v4 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6385\"\u003e#6385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/0cba45c3abc98d4f1ffdf75da3610e6e52267737\"\u003e\u003ccode\u003e0cba45c\u003c/code\u003e\u003c/a\u003e feat: [Many APIs] add methods from gax to cache proto root and process custom...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/e7e9fc358f4a9717c33bd318da587d88ec01fa21\"\u003e\u003ccode\u003ee7e9fc3\u003c/code\u003e\u003c/a\u003e chore: update google-gax in client libraries (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6428\"\u003e#6428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/246de8f28d2f739ab869897902481262adf7e0a4\"\u003e\u003ccode\u003e246de8f\u003c/code\u003e\u003c/a\u003e 🦉 Updates from OwlBot post-processor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/d9179726b4b8b61a69c70898367c0e6b8c6e80a0\"\u003e\u003ccode\u003ed917972\u003c/code\u003e\u003c/a\u003e 🦉 Updates from OwlBot post-processor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/d11d8e96f03f87ce03bfd5a7a0e908c83cdc9819\"\u003e\u003ccode\u003ed11d8e9\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6177\"\u003e#6177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/dcfc7b492a2ac3fb86b93ae1375bac1c5153d049\"\u003e\u003ccode\u003edcfc7b4\u003c/code\u003e\u003c/a\u003e fix: [Many APIs] await/catch promises, and update listOperationsAsync return ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f8e36751fb23f73bff53afd4da39a04caa7d700\"\u003e\u003ccode\u003e6f8e367\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6167\"\u003e#6167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-node/commits/dlp-v6.3.0/packages/google-cloud-kms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google-cloud/storage` from 8.2.0 to 8.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-node/releases\"\u003e@​google-cloud/storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003estorage: v8.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.3.0...storage-v8.4.0\"\u003e8.4.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egaxios: v8.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/gaxios-v8.3.0...gaxios-v8.3.1\"\u003e8.3.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Exclude compiled tests and .tsbuildinfo from published tarball (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9612\"\u003e#9612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/7394a3817c0dc8cc1a93a64a61c7ef06766d70b4\"\u003e7394a38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Normalize TimeoutError in _request and propagate retry timeout (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9582\"\u003e#9582\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/1b10df061581851f05bdd4f9162711b68726297c\"\u003e1b10df0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Remove --abort-signal-timeout-shim (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9555\"\u003e#9555\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/29d8a5e19b4498b63caa7de97bda6c1474ba19b1\"\u003e29d8a5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Remove --bun-plugin-shim and support Bun fetch natively (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9561\"\u003e#9561\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/93b426d1b94e6c42e3f4b0ef8f1be213f3bc1187\"\u003e93b426d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecloud-profiler: v8.2.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/cloud-profiler-v8.2.0...cloud-profiler-v8.2.1\"\u003e8.2.1\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse npm in prepare/compile lifecycle scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9587\"\u003e#9587\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/64c3a2bafc62273f7cdc3b9612756d631afc3f97\"\u003e64c3a2b\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/googleapis/google-cloud-node/blob/main/handwritten/storage/CHANGELOG.md\"\u003e@​google-cloud/storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.3.0...storage-v8.4.0\"\u003e8.4.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.2.1...storage-v8.3.0\"\u003e8.3.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e Add individual CLI flags for Bun monkey patches (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9533\"\u003e#9533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/a5eec894b054e0605fd8e79591a88393bb2697c6\"\u003ea5eec89\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.2.0...storage-v8.2.1\"\u003e8.2.1\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Re-enable docs check and update linkinator (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9257\"\u003e#9257\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f9d967049cb80ac201964258a6d3fd016ad0963\"\u003e6f9d967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Upgrade google-auth-library to v11, gaxios to v7 and align auth client types (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9289\"\u003e#9289\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c6c946d25ffd2cba6a703f7e2c910d866a5d9694\"\u003ec6c946d\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/googleapis/google-cloud-node/commit/27d6be61e43e2f54a78ffc78e141f79471848623\"\u003e\u003ccode\u003e27d6be6\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.4.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9576\"\u003e#9576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/5250db6096d9181c5f650b1f8c518a139a94a1a5\"\u003e\u003ccode\u003e5250db6\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.3.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9552\"\u003e#9552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/a5eec894b054e0605fd8e79591a88393bb2697c6\"\u003e\u003ccode\u003ea5eec89\u003c/code\u003e\u003c/a\u003e feat(tools): add individual CLI flags for Bun monkey patches (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9533\"\u003e#9533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c0239c88c992c6969463f38c3d68a5c2828b7386\"\u003e\u003ccode\u003ec0239c8\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.2.1 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c6c946d25ffd2cba6a703f7e2c910d866a5d9694\"\u003e\u003ccode\u003ec6c946d\u003c/code\u003e\u003c/a\u003e fix(storage): upgrade google-auth-library to v11, gaxios to v7 and align auth...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f9d967049cb80ac201964258a6d3fd016ad0963\"\u003e\u003ccode\u003e6f9d967\u003c/code\u003e\u003c/a\u003e fix(storage): re-enable docs check and update linkinator (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9257\"\u003e#9257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/f11413ca7dcd35c96c98e1f2a5ced889c710c56e\"\u003e\u003ccode\u003ef11413c\u003c/code\u003e\u003c/a\u003e test(storage): adopt run-test runner and fix Bun shim caching and mocking for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/fd32884d9861fa6a11502d6f1784d90fd79add84\"\u003e\u003ccode\u003efd32884\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.2.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9297\"\u003e#9297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/b880f6628d6871e66fc71bdcb42065cffab6d4b7\"\u003e\u003ccode\u003eb880f66\u003c/code\u003e\u003c/a\u003e refactor(storage): dynamically import mime and p-limit with module caching (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/3ff5ae9a40d1703f9df548dfdf12012cfcb24a0d\"\u003e\u003ccode\u003e3ff5ae9\u003c/code\u003e\u003c/a\u003e chore: update .nycrc, Contributing.md, and .gitignore across packages (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9144\"\u003e#9144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-node/commits/storage-v8.4.0/handwritten/storage\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google/genai` from 2.23.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/js-genai/releases\"\u003e@​google/genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\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/googleapis/js-genai/blob/main/CHANGELOG.md\"\u003e@​google/genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003elyria-3.5\u003c/code\u003e, \u003ccode\u003egemini-omni-1.1-flash\u003c/code\u003e, and \u003ccode\u003egemini-omni-flash-preview\u003c/code\u003e to Interactions \u003ccode\u003eModel\u003c/code\u003e enum (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4ce63d11497cc86567ecc7e44677cd687f28deac\"\u003e4ce63d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport continuation_token in Interactions (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a888ad73abda6a64dfb140599438afca1033ee2f\"\u003ea888ad7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.25.0...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2026-10-01)\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/googleapis/js-genai/commit/2e083a76600f37755dab8c4947dd45881f05f33a\"\u003e\u003ccode\u003e2e083a7\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.1 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/51cf872f3b60050fe63e9d8a1e3cadaae24c05e0\"\u003e\u003ccode\u003e51cf872\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e\u003ccode\u003e567cc8a\u003c/code\u003e\u003c/a\u003e fix: concatenate output_text across multi-step model responses in a turn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/1693f7cce750e5e9c3615e5a90b4602029cb0979\"\u003e\u003ccode\u003e1693f7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2013\"\u003e#2013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f66291c8556719ed60d10a85aacb9561d996471b\"\u003e\u003ccode\u003ef66291c\u003c/code\u003e\u003c/a\u003e chore: return early on generate content if automatic continuation is not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e\u003ccode\u003e0885fb9\u003c/code\u003e\u003c/a\u003e fix(js): do not set initial prompt token count for requests that do not use a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e\u003ccode\u003e10e850c\u003c/code\u003e\u003c/a\u003e fix: Raise default HTTP timeouts so long-running requests aren't killed clien...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003e\u003ccode\u003ef3d10a6\u003c/code\u003e\u003c/a\u003e fix(js): fix streaming continuation edge cases (stale token, AbortError, init...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/3ecb0b542c30e4b26c82fc8be96c1e753f99bae8\"\u003e\u003ccode\u003e3ecb0b5\u003c/code\u003e\u003c/a\u003e chore: internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e\u003ccode\u003e8478e12\u003c/code\u003e\u003c/a\u003e fix: Update EnvironmentConfig.env schema to map keys to EnvVar or string.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.23.0...v2.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/api-logs` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/api-logs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/exporter-logs-otlp-http` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/exporter-logs-otlp-http's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/resources` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/resources's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(sdk-trace): add \u003ccode\u003eStackContextManager\u003c/code\u003e in \u003ccode\u003e@opentelemetry/sdk-trace\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7086\"\u003e#7086\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(ci): support releasing from maintenance branches \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6767\"\u003e#6767\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThe API documentation site is only redeployed for releases whose commit is reachable from \u003ccode\u003emain\u003c/code\u003e, so a maintenance release no longer overwrites it.\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/blob/v2.12.0/CHANGELOG.md\"\u003e@​opentelemetry/resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(sdk-trace): add \u003ccode\u003eStackContextManager\u003c/code\u003e in \u003ccode\u003e@opentelemetry/sdk-trace\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7086\"\u003e#7086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ci): support releasing from maintenance branches \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6767\"\u003e#6767\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThe API documentation site is only redeployed for releases whose commit is reachable from \u003ccode\u003emain\u003c/code\u003e, so a maintenance release no longer overwrites it.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/sdk-logs` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/sdk-logs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@slack/web-api` from 8.1.1 to 8.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/slackapi/node-slack-sdk/releases\"\u003e@​slack/web-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​slack/web-api\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.2.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ec523063: feat: add the \u003ccode\u003eagents.conversations.*\u003c/code\u003e methods for \u003ca href=\"https://docs.slack.dev/changelog/2026/08/20/slack-code\"\u003eSlack Code\u003c/a\u003e (\u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.create\"\u003e\u003ccode\u003ecreate\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.archive\"\u003e\u003ccode\u003earchive\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setProperties\"\u003e\u003ccode\u003esetProperties\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setView\"\u003e\u003ccode\u003esetView\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setCommands\"\u003e\u003ccode\u003esetCommands\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.listViews\"\u003e\u003ccode\u003elistViews\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.removeView\"\u003e\u003ccode\u003eremoveView\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.getCanvas\"\u003e\u003ccode\u003egetCanvas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setCanvasContent\"\u003e\u003ccode\u003esetCanvasContent\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [ca6f416]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [abf184e]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [d420d00]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [52eeb05]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​slack/types\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.2.0\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/slackapi/node-slack-sdk/commit/a98047a7f27149812664c78e2dccfe4155b0e145\"\u003e\u003ccode\u003ea98047a\u003c/code\u003e\u003c/a\u003e chore: release (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2726\"\u003e#2726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/c523063b73d6a161fb596a3a86ab51a9de9edd60\"\u003e\u003ccode\u003ec523063\u003c/code\u003e\u003c/a\u003e feat(web-api): add agents.conversations.* methods (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/e22facd44c91843c68258581e104454a7fc21967\"\u003e\u003ccode\u003ee22facd\u003c/code\u003e\u003c/a\u003e fix(socket-mode): route ping/pong diagnostics by identity, not instanceof (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/4dfe5eb41730811e74e5d9616cfd527f24bdc1d6\"\u003e\u003ccode\u003e4dfe5eb\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​biomejs/biome\u003c/code\u003e from 2.5.13 to 2.5.14 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/6d9bad8453caa68c3024d7051d3ab1e8b6bbc81e\"\u003e\u003ccode\u003e6d9bad8\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump typedoc-plugin-markdown from 4.13.0 to 4.13.1 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/334e6a639d33c28c0ef214ecb5598b34003a0d6f\"\u003e\u003ccode\u003e334e6a6\u003c/code\u003e\u003c/a\u003e feat(socket-mode): support undici v8 as a peer dependency (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2694\"\u003e#2694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/7d415e477d7237ca76009f98a148ab97af7760b1\"\u003e\u003ccode\u003e7d415e4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​changesets/cli\u003c/code\u003e from 3.0.2 to 3.0.3 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/600fca5b85f8d910bd1db847e8193af9a3dfe871\"\u003e\u003ccode\u003e600fca5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​biomejs/biome\u003c/code\u003e from 2.5.12 to 2.5.13 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2745\"\u003e#2745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/f4c3e7ed62ec6b459abfc2b68e1d3c153baf0a04\"\u003e\u003ccode\u003ef4c3e7e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump tsx from 4.23.12 to 4.23.13 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/d420d00b623deab9ea4634f5bcba23ae0ecaacdd\"\u003e\u003ccode\u003ed420d00\u003c/code\u003e\u003c/a\u003e feat(types): allow raw_number cells in TableBlock rows (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@8.1.1...@slack/web-api@8.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@workos-inc/widgets` from 1.18.0 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/workos/widgets/commits/HEAD/packages/widgets\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `csv-parse` from 7.0.2 to 7.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md\"\u003ecsv-parse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adaltas/node-csv/compare/csv-parse@7.0.2...csv-parse@7.0.3\"\u003e7.0.3\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-parse:\u003c/strong\u003e preserve typed column keys (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/500\"\u003e#500\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/745f045295f43a77e14a779bd57a4e3c5f51d9ea\"\u003e745f045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-parse:\u003c/strong\u003e type the delimiter_auto score callback arguments (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/499\"\u003e#499\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/4aa04daba6336a53fa79c0e0ec2ea242a95ae33c\"\u003e4aa04da\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/adaltas/node-csv/commit/594c6469c4a7376c1048d13c47859c2f91674206\"\u003e\u003ccode\u003e594c646\u003c/code\u003e\u003c/a\u003e chore(release): publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/16d9900bbe96f0b6d88a6599503f40fea410e6fb\"\u003e\u003ccode\u003e16d9900\u003c/code\u003e\u003c/a\u003e refactor(csv-parse): isolate error and normalize_options in types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/4aa04daba6336a53fa79c0e0ec2ea242a95ae33c\"\u003e\u003ccode\u003e4aa04da\u003c/code\u003e\u003c/a\u003e fix(csv-parse): type the delimiter_auto score callback arguments (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/8d4173d6d8dbb375ba8699cfd1d83af93b921f80\"\u003e\u003ccode\u003e8d4173d\u003c/code\u003e\u003c/a\u003e build: latest dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/c8caa1ccd262151c7d11add8fb7b454ed1d447a9\"\u003e\u003ccode\u003ec8caa1c\u003c/code\u003e\u003c/a\u003e build: generate latest dist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6c45c9b2f5aac96b2097229749a3521840cf1dc2\"\u003e\u003ccode\u003e6c45c9b\u003c/code\u003e\u003c/a\u003e build: remove npx usage in package scripts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6f39f278fdd8faa2e972c0e5bbda525ebec56e87\"\u003e\u003ccode\u003e6f39f27\u003c/code\u003e\u003c/a\u003e test: remove lint errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/94ae7b949ddd26f7ec09e2bf13147c41801b32d0\"\u003e\u003ccode\u003e94ae7b9\u003c/code\u003e\u003c/a\u003e test: rename mocha setup rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/42a6b0928ae17ad020a46d610e6515173a8e2f27\"\u003e\u003ccode\u003e42a6b09\u003c/code\u003e\u003c/a\u003e test: remove ts-node usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/745f045295f43a77e14a779bd57a4e3c5f51d9ea\"\u003e\u003ccode\u003e745f045\u003c/code\u003e\u003c/a\u003e fix(csv-parse): preserve typed column keys (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adaltas/node-csv/commits/csv-parse@7.0.3/packages/csv-parse\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-8...\n\n_Description has been truncated_","html_url":"https://github.com/adcontextprotocol/adcp/pull/8287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adcontextprotocol%2Fadcp/issues/8287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8287/packages"},{"uuid":"5901260708","node_id":"PR_kwDOTNPCz88AAAABJDVKVw","number":17,"state":"open","title":"chore(deps): bump express from 5.2.1 to 5.3.0","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-10-17T17:42:49.000Z","updated_at":"2026-10-17T17:43:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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/GimiRick/DevTools-Terminator/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GimiRick%2FDevTools-Terminator/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}],"issue_packages":[{"old_version":"4.22.2","new_version":"4.22.3","update_type":"patch","path":null,"pr_created_at":"2026-10-22T11:46:58.000Z","version_change":"4.22.2 → 4.22.3","issue":{"uuid":"5978679524","node_id":"PR_kwDOJbo8n88AAAABKAu_rQ","number":3586,"state":"closed","title":"Bump the npm-minor-and-patch group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T16:11:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-22T11:46:58.000Z","updated_at":"2026-10-22T16:11:48.000Z","time_to_close":15887,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":11,"packages":[{"name":"rollup","old_version":"4.64.6","new_version":"4.64.7","repository_url":"https://github.com/rollup/rollup"},{"name":"zod","old_version":"3.23.8","new_version":"3.25.76","repository_url":"https://github.com/colinhacks/zod"},{"name":"undici","old_version":"8.12.0","new_version":"8.12.1","repository_url":"https://github.com/nodejs/undici"},{"name":"dotenv","old_version":"18.0.7","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.2","new_version":"4.22.3","repository_url":"https://github.com/expressjs/express"},{"name":"i18next","old_version":"26.4.4","new_version":"26.4.5","repository_url":"https://github.com/i18next/i18next"},{"name":"i18next-fs-backend","old_version":"2.6.8","new_version":"2.6.9","repository_url":"https://github.com/i18next/i18next-fs-backend"},{"name":"playwright","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"cypress","old_version":"16.1.1","new_version":"16.2.0","repository_url":"https://github.com/cypress-io/cypress"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rollup](https://github.com/rollup/rollup) | `4.64.6` | `4.64.7` |\n| [zod](https://github.com/colinhacks/zod) | `3.23.8` | `3.25.76` |\n| [undici](https://github.com/nodejs/undici) | `8.12.0` | `8.12.1` |\n| [dotenv](https://github.com/motdotla/dotenv) | `18.0.7` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.2` | `4.22.3` |\n| [i18next](https://github.com/i18next/i18next) | `26.4.4` | `26.4.5` |\n| [i18next-fs-backend](https://github.com/i18next/i18next-fs-backend) | `2.6.8` | `2.6.9` |\n| [playwright](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [cypress](https://github.com/cypress-io/cypress) | `16.1.1` | `16.2.0` |\n\n\nUpdates `rollup` from 4.64.6 to 4.64.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rollup/rollup/releases\"\u003erollup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.64.7\u003c/h2\u003e\n\u003ch2\u003e4.64.7\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-15\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where watching not-yet-created files from plugins did not work if several shared a directory (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rollup/rollup/pull/6575\"\u003e#6575\u003c/a\u003e: Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://github.com/lukastaegert\"\u003e\u003ccode\u003e@​lukastaegert\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/rollup/rollup/blob/master/CHANGELOG.md\"\u003erollup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.64.7\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-15\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue where watching not-yet-created files from plugins did not work if several shared a directory (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rollup/rollup/pull/6575\"\u003e#6575\u003c/a\u003e: Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://github.com/lukastaegert\"\u003e\u003ccode\u003e@​lukastaegert\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/rollup/rollup/commit/5f658604845ca7fb4d8e8a27a9e68e166c6f9973\"\u003e\u003ccode\u003e5f65860\u003c/code\u003e\u003c/a\u003e 4.64.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rollup/rollup/commit/97611099c648ad66d2ea4a4d3601c0a0a82c9c48\"\u003e\u003ccode\u003e9761109\u003c/code\u003e\u003c/a\u003e Report creation of missing watch files sharing a directory on Linux (\u003ca href=\"https://redirect.github.com/rollup/rollup/issues/6575\"\u003e#6575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rollup/rollup/compare/v4.64.6...v4.64.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zod` from 3.23.8 to 3.25.76\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/colinhacks/zod/releases\"\u003ezod's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.25.76\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e91c9ca6385bef38278605294498af06c89b9aa68 fix: cleanup _idmap of $ZodRegistry (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4837\"\u003e#4837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e9cce1c5779aea32d00226a931a7f67d3e2529d58 docs: fix typo in flattenError example on error-formatting page (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4819\"\u003e#4819\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea3560aeb6c3a8675a932601be79cfae897eec9d9 v3.25.76 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4838\"\u003e#4838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e50606616c0d291caf3210a7521da51271b918333 Release 3.25.76\u003c/li\u003e\n\u003cli\u003e7baee4e17f86f4017e09e12b0acdee36a5b1c087 Update index.mdx (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.75\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ec5f349b6c4e76f879eba9fd350dd79950fcb02f9 Fix z.undefined() behavior in toJSONSchema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.74\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eae0dbe1f79b2421f6d91ec0796295763436b26e2 Partial record\u003c/li\u003e\n\u003cli\u003e39c5f71c92b9c4c39fc0a59b9375204fa140eaf0 3.25.74\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.73\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1021d3c230d41d600698a6d98b9db86c19f56904 v3.25.73 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4822\"\u003e#4822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.72\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e4a4dac7cfb787162eeb79165d39bbb4830d4a6de Warn about id uniqueness check on Metadata page (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4782\"\u003e#4782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7a5838dc0da967e15a217bf5abdd81f725da46c4 feat(locale): Add Esperanto (eo) locale (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4743\"\u003e#4743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e36fe14e1472f2a7cd71415841be8832fc4e9acc5 Fix optionality of schemas (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4769\"\u003e#4769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e20c8c4b67b508d653012808f69c43c7cfe5b39e3 Fix re-export bug\u003c/li\u003e\n\u003cli\u003e8b0df10c8757a5fbd75bd65128ae183d764b3304 3.25.72\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.71\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e66a0f34bfc746acddbfb68426b8b1b3f1d3d1727 Move source to \u003ccode\u003e/src\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4808\"\u003e#4808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2a15f44606fd66335c6ebc1f91d702bb6bc95693 3.25.71\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.25.70\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebd81c7cfaa03f61365d1c708c7e0f1cac54ea9ca Add ecosystem listing to homepage\u003c/li\u003e\n\u003cli\u003e1ddb9719564e644722852193930a09d54f720443 Add Mobb to sponsors\u003c/li\u003e\n\u003cli\u003e30ba440859f5b9184817f578626ff85d484aec27 Clean up ecosystem.mdx\u003c/li\u003e\n\u003cli\u003e0ef1b85b5923a1a06a2afab47dbad249d105a997 Add \u003ccode\u003esvelte-jsonschema-form\u003c/code\u003e to form integrations (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4784\"\u003e#4784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e14715f147363e88e73190bb6ddbdf008914f0b19 docs: fix Lambda spelling (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef6da030188ea30defc025bbc672e5a81fbe93078 Add back src (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4806\"\u003e#4806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e364200a67c9f74ef252dbfa65ea93aab8fb15c06 Revert \u0026quot;Add back src (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4806\"\u003e#4806\u003c/a\u003e)\u0026quot;\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/colinhacks/zod/commit/463f03eb8183dcdcdf735b180f2bf40883e66220\"\u003e\u003ccode\u003e463f03e\u003c/code\u003e\u003c/a\u003e Release 3.25.76\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/fa2791da90e5b0b4e8817557b76291c2d5713429\"\u003e\u003ccode\u003efa2791d\u003c/code\u003e\u003c/a\u003e Detect cycle on root schema. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4651\"\u003e#4651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/7a518793776d70d4bf1019f84ac1aee03ac76ca7\"\u003e\u003ccode\u003e7a51879\u003c/code\u003e\u003c/a\u003e Set  when converting registry to JSON Schema. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4620\"\u003e#4620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/db354b6cd4e64a5e132d7b30a42394753b986e39\"\u003e\u003ccode\u003edb354b6\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/e542398527db4b15d51902b60be34cf27395b185\"\u003e\u003ccode\u003ee542398\u003c/code\u003e\u003c/a\u003e Add when param. Clean up z.check. Closes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4598\"\u003e#4598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c842698fa4454b79c1702a968143bfdf42025a78\"\u003e\u003ccode\u003ec842698\u003c/code\u003e\u003c/a\u003e Implement .clear() in . Fixes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4834\"\u003e#4834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/9f122ae77142b61f32031d36354da2fe8f6e4ad2\"\u003e\u003ccode\u003e9f122ae\u003c/code\u003e\u003c/a\u003e Add toString to ZodError. Fixes \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/4830\"\u003e#4830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/0df5f6946ef7137be710767f06ff0c05e7dd9b47\"\u003e\u003ccode\u003e0df5f69\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c5f349b6c4e76f879eba9fd350dd79950fcb02f9\"\u003e\u003ccode\u003ec5f349b\u003c/code\u003e\u003c/a\u003e Fix z.undefined() behavior in toJSONSchema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/5267f904d806eae3512ee6063128d944003513b9\"\u003e\u003ccode\u003e5267f90\u003c/code\u003e\u003c/a\u003e Improve recursive types\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/colinhacks/zod/compare/v3.23.8...v3.25.76\"\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/~colinhacks\"\u003ecolinhacks\u003c/a\u003e, a new releaser for zod since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `undici` from 8.12.0 to 8.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nodejs/undici/releases\"\u003eundici's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore build:wasm npm script by \u003ca href=\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/6009\"\u003enodejs/undici#6009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unexpected disconnect guards to http2-body-delete.js by \u003ca href=\"https://github.com/Kesavamoorthig06\"\u003e\u003ccode\u003e@​Kesavamoorthig06\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/5970\"\u003enodejs/undici#5970\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/Kesavamoorthig06\"\u003e\u003ccode\u003e@​Kesavamoorthig06\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nodejs/undici/pull/5970\"\u003enodejs/undici#5970\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\"\u003ehttps://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\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/nodejs/undici/commit/a65ec32e4e396f8f1a5e4e2887611c43839bde65\"\u003e\u003ccode\u003ea65ec32\u003c/code\u003e\u003c/a\u003e Bumped v8.12.1 (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/6010\"\u003e#6010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/undici/commit/e5966abf403efc430fd7f2ac1c7cfc10a097ce18\"\u003e\u003ccode\u003ee5966ab\u003c/code\u003e\u003c/a\u003e test: add unexpected disconnect guards to http2-body-delete.js (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/5970\"\u003e#5970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/undici/commit/9a47f91487c7fe3f871a70b18d4dd5742c2ce880\"\u003e\u003ccode\u003e9a47f91\u003c/code\u003e\u003c/a\u003e fix: restore build:wasm npm script (\u003ca href=\"https://redirect.github.com/nodejs/undici/issues/6009\"\u003e#6009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nodejs/undici/compare/v8.12.0...v8.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 18.0.7 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.2 to 4.22.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/blob/v4.22.3/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.22.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAllow conditional revalidation for QUERY requests\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereq.fresh\u003c/code\u003e now includes QUERY in the freshness check, so QUERY responses can return 304 when a validator matches\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps: qs@~6.16.0\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/expressjs/express/commit/899b52494e74327905c16164decdc6e51f803af8\"\u003e\u003ccode\u003e899b524\u003c/code\u003e\u003c/a\u003e 4.22.3 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7466\"\u003e#7466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/1fad2c30eff02268bb9751f9d0cb6644c14b0fbb\"\u003e\u003ccode\u003e1fad2c3\u003c/code\u003e\u003c/a\u003e ci: add npm staged publication with dist-tag support (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7465\"\u003e#7465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/41386506a9ca6874a79b304f1baafd50522e6078\"\u003e\u003ccode\u003e4138650\u003c/code\u003e\u003c/a\u003e deps: qs@~6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7440\"\u003e#7440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/61ccf2ea8c1bd19cbca6acfb7cd276c5fcd410d3\"\u003e\u003ccode\u003e61ccf2e\u003c/code\u003e\u003c/a\u003e feat: allow conditional revalidation for QUERY requests (v4) (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7377\"\u003e#7377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/715101bd27ec9c14a7ccc8a37c476f330d98ad53\"\u003e\u003ccode\u003e715101b\u003c/code\u003e\u003c/a\u003e Update path-to-regexp to 0.1.13 because CVE-2026-4867 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7135\"\u003e#7135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/f472e5fe28d7a4c1ec8b6832d504c46f8a056d1c\"\u003e\u003ccode\u003ef472e5f\u003c/code\u003e\u003c/a\u003e docs: fix the release date format for 4.22.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.2...v4.22.3\"\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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next` from 26.4.4 to 26.4.5\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.4.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003ehasLoadedNamespace(ns, { lng })\u003c/code\u003e no longer stays \u003ccode\u003efalse\u003c/code\u003e forever when the passed in \u003ccode\u003elng\u003c/code\u003e is loaded under another code, or not at all. It checked the load state of the raw \u003ccode\u003elng\u003c/code\u003e, but \u003ccode\u003eloadLanguages()\u003c/code\u003e stores a language under its resolved code (\u003ccode\u003ede-ch\u003c/code\u003e → \u003ccode\u003ede-CH\u003c/code\u003e, \u003ccode\u003ede-CH\u003c/code\u003e → \u003ccode\u003ede\u003c/code\u003e with \u003ccode\u003eload: 'languageOnly'\u003c/code\u003e) and skips a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e entirely (only the fallback gets loaded), so that state never got set. react-i18next's \u003ccode\u003euseTranslation(ns, { lng })\u003c/code\u003e then never became ready: with \u003ccode\u003euseSuspense\u003c/code\u003e it kept throwing an already resolved promise and React retried forever (100% CPU, SSR never finished), without it the load effect re-rendered in a loop. It now checks the code the language is actually loaded under, and for a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e only waits for the fallback, which is also what \u003ccode\u003et()\u003c/code\u003e resolves to. Calls without \u003ccode\u003elng\u003c/code\u003e and the \u003ccode\u003eprecheck\u003c/code\u003e (react-i18next's \u003ccode\u003ebindI18n: 'languageChanging'\u003c/code\u003e) are unchanged (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1934\"\u003ereact-i18next#1934\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.4.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ccode\u003ehasLoadedNamespace(ns, { lng })\u003c/code\u003e no longer stays \u003ccode\u003efalse\u003c/code\u003e forever when the passed in \u003ccode\u003elng\u003c/code\u003e is loaded under another code, or not at all. It checked the load state of the raw \u003ccode\u003elng\u003c/code\u003e, but \u003ccode\u003eloadLanguages()\u003c/code\u003e stores a language under its resolved code (\u003ccode\u003ede-ch\u003c/code\u003e → \u003ccode\u003ede-CH\u003c/code\u003e, \u003ccode\u003ede-CH\u003c/code\u003e → \u003ccode\u003ede\u003c/code\u003e with \u003ccode\u003eload: 'languageOnly'\u003c/code\u003e) and skips a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e entirely (only the fallback gets loaded), so that state never got set. react-i18next's \u003ccode\u003euseTranslation(ns, { lng })\u003c/code\u003e then never became ready: with \u003ccode\u003euseSuspense\u003c/code\u003e it kept throwing an already resolved promise and React retried forever (100% CPU, SSR never finished), without it the load effect re-rendered in a loop. It now checks the code the language is actually loaded under, and for a \u003ccode\u003elng\u003c/code\u003e outside \u003ccode\u003esupportedLngs\u003c/code\u003e only waits for the fallback, which is also what \u003ccode\u003et()\u003c/code\u003e resolves to. Calls without \u003ccode\u003elng\u003c/code\u003e and the \u003ccode\u003eprecheck\u003c/code\u003e (react-i18next's \u003ccode\u003ebindI18n: 'languageChanging'\u003c/code\u003e) are unchanged (\u003ca href=\"https://redirect.github.com/i18next/react-i18next/issues/1934\"\u003ereact-i18next#1934\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/ce7b9cf970b2e6dcbecc6eb997d460ea1ea811ad\"\u003e\u003ccode\u003ece7b9cf\u003c/code\u003e\u003c/a\u003e 26.4.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/4d4c60720e05da72e53af33fa0a8e0d69a56487a\"\u003e\u003ccode\u003e4d4c607\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/8f8651e938e122b5e40eacf616c9fb823a189087\"\u003e\u003ccode\u003e8f8651e\u003c/code\u003e\u003c/a\u003e fix: hasLoadedNamespace with a passed in lng checks the code it is actually l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/15d0b9d90e0564947861b926352b06deff0a8a05\"\u003e\u003ccode\u003e15d0b9d\u003c/code\u003e\u003c/a\u003e changelog: link GHSA-5jr9-983r-c8x4 in v26.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next/commit/3693965ffa01e8cc8f40219fb0e2d1d537289181\"\u003e\u003ccode\u003e3693965\u003c/code\u003e\u003c/a\u003e test: make the nest() linearity check robust under coverage\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next/compare/v26.4.4...v26.4.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18next-fs-backend` from 2.6.8 to 2.6.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/i18next/i18next-fs-backend/blob/master/CHANGELOG.md\"\u003ei18next-fs-backend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e2.6.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity (defence-in-depth): \u003ccode\u003einterpolatePath\u003c/code\u003e now refuses a path whose root differs from the template's root. The per-value checks only looked at each \u003ccode\u003elng\u003c/code\u003e / \u003ccode\u003ens\u003c/code\u003e on its own, so with a \u003ccode\u003eloadPath\u003c/code\u003e / \u003ccode\u003eaddPath\u003c/code\u003e template that starts with the placeholder, a value could change what kind of path the result is: ns \u003ccode\u003e/etc/foo\u003c/code\u003e made \u003ccode\u003e{{ns}}/{{lng}}.json\u003c/code\u003e absolute (\u003ccode\u003e/etc/foo/en.json\u003c/code\u003e), lng \u003ccode\u003eC:\u003c/code\u003e did the same on Windows (\u003ccode\u003eC:/...\u003c/code\u003e), and ns \u003ccode\u003e/host/share\u003c/code\u003e after a leading \u003ccode\u003e/\u003c/code\u003e (or \u003ccode\u003e//host/share\u003c/code\u003e at the start) became a Windows UNC path to another machine. Reachable when \u003ccode\u003elng\u003c/code\u003e / \u003ccode\u003ens\u003c/code\u003e come from the request, e.g. via \u003ccode\u003ei18next-http-middleware\u003c/code\u003e. The default \u003ccode\u003e/locales/{{lng}}/{{ns}}.json\u003c/code\u003e, \u003ccode\u003ejoin(__dirname, ...)\u003c/code\u003e templates, and nested namespaces such as \u003ccode\u003ea/b\u003c/code\u003e are not affected. Same class as i18next-http-backend's GHSA-9jhj-wvmw-cfx5. The README's security section is updated to match.\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-fs-backend/commit/db4990f917f5e6024b1a50b1735da53405a3e7dd\"\u003e\u003ccode\u003edb4990f\u003c/code\u003e\u003c/a\u003e 2.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-fs-backend/commit/fa389bd318c6a7b045303cf2f3fd0c47c8f787f9\"\u003e\u003ccode\u003efa389bd\u003c/code\u003e\u003c/a\u003e security: refuse paths whose root a lng/ns value changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i18next/i18next-fs-backend/commit/065961da20f8c397b9783e96bcfc001aff782bcf\"\u003e\u003ccode\u003e065961d\u003c/code\u003e\u003c/a\u003e Bump js-yaml from 4.3.1 to 4.3.2 (\u003ca href=\"https://redirect.github.com/i18next/i18next-fs-backend/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/i18next/i18next-fs-backend/compare/v2.6.8...v2.6.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `playwright` from 1.64.0 to 1.64.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\"\u003eplaywright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.64.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/43247\"\u003e#43247\u003c/a\u003e [Bug]: _electron.launch intermittently loses a packaged app's first window since 1.64.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43242\"\u003e#43242\u003c/a\u003e [Regression]: Chromium 155+ aborts a preflighted cross-origin redirect whenever any route is registered (net::ERR_ABORTED)\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/cfe490d941f992655948eee8fd4fd94e1c4234bf\"\u003e\u003ccode\u003ecfe490d\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43353\"\u003e#43353\u003c/a\u003e): docs: release notes for v1.64 Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/866cbb864009f84d7e8e41c64fdbfceff43f280d\"\u003e\u003ccode\u003e866cbb8\u003c/code\u003e\u003c/a\u003e chore: mark v1.64.1 (\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43354\"\u003e#43354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/1b2924712024804936dbcfe9fabaa655d52325e5\"\u003e\u003ccode\u003e1b29247\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43250\"\u003e#43250\u003c/a\u003e): fix(electron): do not drop windows that have not navigat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/632d976826c74b0163fd5201a05b7b4853ba3f4a\"\u003e\u003ccode\u003e632d976\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43249\"\u003e#43249\u003c/a\u003e): fix(chromium): disable AvoidCorsURLLoaderRestartOnRedirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright/commit/824d0c5d1e10f21fcbe88d18a99d06194acde77c\"\u003e\u003ccode\u003e824d0c5\u003c/code\u003e\u003c/a\u003e cherry-pick(\u003ca href=\"https://redirect.github.com/microsoft/playwright/issues/43217\"\u003e#43217\u003c/a\u003e): chore(dotnet): fix async suffix of optional-arg overload...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/playwright/compare/v1.64.0...v1.64.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `react` from 19.3.0 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \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/61aa00df822d0eb76d0362eb8b6fdd3527693efe\"\u003e\u003ccode\u003e61aa00d\u003c/code\u003e\u003c/a\u003e [19.3.x][Flight] Improve transport protocol (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.3.1/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.3.0 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \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/61aa00df822d0eb76d0362eb8b6fdd3527693efe\"\u003e\u003ccode\u003e61aa00d\u003c/code\u003e\u003c/a\u003e [19.3.x][Flight] Improve transport protocol (\u003ca href=\"https://github.com/react/react/tree/HEAD/packages/react-dom/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/react/react/commits/v19.3.1/packages/react-dom\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cypress` from 16.1.1 to 16.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cypress-io/cypress/releases\"\u003ecypress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev16.2.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://docs.cypress.io/app/references/changelog#16-2-0\"\u003ehttps://docs.cypress.io/app/references/changelog#16-2-0\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/cypress-io/cypress/commit/db52e1e7720c445afdffac740185bcf2b08a9b8c\"\u003e\u003ccode\u003edb52e1e\u003c/code\u003e\u003c/a\u003e chore: generate random ids with crypto instead of randomstring (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35043\"\u003e#35043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/e7a3ce001c86964d759639d37170108b5e35bd5e\"\u003e\u003ccode\u003ee7a3ce0\u003c/code\u003e\u003c/a\u003e chore: use the repo Node version in platform cloud-environment and memory tes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/950e10e288572bf2a3d629aa815ba25b88e765d4\"\u003e\u003ccode\u003e950e10e\u003c/code\u003e\u003c/a\u003e test: convert driver navigation specs to TypeScript (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35039\"\u003e#35039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/53bdd8685cce137e0d0a072d5dd9b80b30d14dc2\"\u003e\u003ccode\u003e53bdd86\u003c/code\u003e\u003c/a\u003e chore: limit the mTLS bridge to its configured hosts and origins (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35027\"\u003e#35027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/c61453cc7e32b010a7ca73512434fde2f8c19e51\"\u003e\u003ccode\u003ec61453c\u003c/code\u003e\u003c/a\u003e fix: recover pre-request correlation after a missed pre-request (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35010\"\u003e#35010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/0de9f6ea6c8fdceb10bd7d3a731544d23f1d643c\"\u003e\u003ccode\u003e0de9f6e\u003c/code\u003e\u003c/a\u003e chore: split driver cookies spec into smaller specs (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35038\"\u003e#35038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/ca8c821512fbd9c9843d6822571ed6d0565d2638\"\u003e\u003ccode\u003eca8c821\u003c/code\u003e\u003c/a\u003e chore: split driver net_stubbing spec into smaller specs (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35036\"\u003e#35036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/2149b5943744f3a99566865c4376fcf836418759\"\u003e\u003ccode\u003e2149b59\u003c/code\u003e\u003c/a\u003e chore: split driver navigation spec into smaller files (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35037\"\u003e#35037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/869ddff9bc63911943953b142dd9bf6ba8b5ee12\"\u003e\u003ccode\u003e869ddff\u003c/code\u003e\u003c/a\u003e chore: convert three driver specs to TypeScript and type Cypress.action event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cypress-io/cypress/commit/6e10cd92e05f5a0794c6f18f9bf90ac78bfd133b\"\u003e\u003ccode\u003e6e10cd9\u003c/code\u003e\u003c/a\u003e chore: convert four driver assertion and traversal specs to TypeScript (\u003ca href=\"https://redirect.github.com/cypress-io/cypress/issues/35035\"\u003e#35035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cypress-io/cypress/compare/v16.1.1...v16.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| zod | [\u003e= 4.a, \u003c 5] |\n\u003c/details\u003e","html_url":"https://github.com/prosopo/captcha/pull/3586","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/prosopo%2Fcaptcha/issues/3586","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3586/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-22T09:58:04.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5977137698","node_id":"PR_kwDOU3CTLc8AAAABJ_fbEQ","number":17,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-22T09:58:04.000Z","updated_at":"2026-10-22T10:00:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":27,"packages":[{"name":"turbo","old_version":"2.11.6","new_version":"2.11.9","repository_url":"https://github.com/vercel/turborepo"},{"name":"@base-ui/react","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/mui/base-ui"},{"name":"@tanstack/react-query","old_version":"5.104.1","new_version":"5.104.4","repository_url":"https://github.com/TanStack/query"},{"name":"better-auth","old_version":"1.7.7","new_version":"1.7.11","repository_url":"https://github.com/better-auth/better-auth"},{"name":"cn","old_version":"0.4.0","new_version":"0.5.0","repository_url":"https://github.com/shadcn-ui/cn"},{"name":"lenis","old_version":"1.3.26","new_version":"1.3.27","repository_url":"https://github.com/darkroomengineering/lenis"},{"name":"lucide-react","old_version":"1.49.0","new_version":"1.59.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"react","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-hook-form","old_version":"7.89.0","new_version":"7.90.0","repository_url":"https://github.com/react-hook-form/react-hook-form"},{"name":"shadcn","old_version":"4.21.1","new_version":"4.22.1","repository_url":"https://github.com/shadcn-ui/ui"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@playwright/test","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"eslint-config-next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"@aws-sdk/client-s3","old_version":"3.1149.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/s3-request-presigner","old_version":"3.1149.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@vercel/functions","old_version":"3.9.9","new_version":"3.10.1","repository_url":"https://github.com/vercel/vercel"},{"name":"ai","old_version":"7.0.126","new_version":"7.0.143","repository_url":"https://github.com/vercel/ai"},{"name":"drizzle-orm","old_version":"0.45.3","new_version":"0.45.4","repository_url":"https://github.com/drizzle-team/drizzle-orm"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"resend","old_version":"6.31.0","new_version":"6.34.1","repository_url":"https://github.com/resend/resend-node"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"supertest","old_version":"7.3.0","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [turbo](https://github.com/vercel/turborepo) | `2.11.6` | `2.11.9` |\n| [@base-ui/react](https://github.com/mui/base-ui/tree/HEAD/packages/react) | `1.8.0` | `1.9.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.1` | `5.104.4` |\n| [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth) | `1.7.7` | `1.7.11` |\n| [cn](https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn) | `0.4.0` | `0.5.0` |\n| [lenis](https://github.com/darkroomengineering/lenis) | `1.3.26` | `1.3.27` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.49.0` | `1.59.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.6` | `16.4.2` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.8` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.8` | `19.3.1` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.89.0` | `7.90.0` |\n| [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn) | `4.21.1` | `4.22.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.3.6` | `16.4.2` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1149.0` | `3.1152.0` |\n| [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) | `3.1149.0` | `3.1152.0` |\n| [@vercel/functions](https://github.com/vercel/vercel/tree/HEAD/packages/functions) | `3.9.9` | `3.10.1` |\n| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `7.0.126` | `7.0.143` |\n| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.3` | `0.45.4` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [resend](https://github.com/resend/resend-node) | `6.31.0` | `6.34.1` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [supertest](https://github.com/ladjs/supertest) | `7.3.0` | `7.3.1` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n\n\nUpdates `turbo` from 2.11.6 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vercel/turborepo/releases\"\u003eturbo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTurborepo v2.11.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Release Turborepo 2.11.8 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/vercel/turborepo/pull/14789\"\u003evercel/turborepo#14789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Prefetch Cargo metadata during lazy graph construction by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14497\"\u003evercel/turborepo#14497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compute Berry lockfile closures once across workspaces by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14499\"\u003evercel/turborepo#14499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Check cache hit outputs in place instead of on the blocking pool by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14524\"\u003evercel/turborepo#14524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Speed up Berry lockfile loading by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14500\"\u003evercel/turborepo#14500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Parse bun.lock without building a JSON syntax tree by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14502\"\u003evercel/turborepo#14502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip the dry run cache batch window when there is no remote cache by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14505\"\u003evercel/turborepo#14505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Emit lockfile closures pre-sorted and cheapen closure interning by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14525\"\u003evercel/turborepo#14525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse configuration derived from turbo.json between the shim and the CLI by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14521\"\u003evercel/turborepo#14521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Report locked tools-only setup plans by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14483\"\u003evercel/turborepo#14483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compute Bun lockfile closures once across workspaces by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14501\"\u003evercel/turborepo#14501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse open parent directories when restoring cache archives by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14506\"\u003evercel/turborepo#14506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip dropping the run right before turbo run exits by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14507\"\u003evercel/turborepo#14507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Match literal input exclusions without compiling globs by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14510\"\u003evercel/turborepo#14510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Copy pruned package files in parallel by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14512\"\u003evercel/turborepo#14512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Report proposed first-lock and refresh setup plans by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14571\"\u003evercel/turborepo#14571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Compress large cache archives with multithreaded zstd by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14698\"\u003evercel/turborepo#14698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Read tracked file stats from directory listings on Windows by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14633\"\u003evercel/turborepo#14633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Diff changed lockfile resolutions with a merge instead of ordered sets by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14630\"\u003evercel/turborepo#14630\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write dry run text output through one buffered stdout handle by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14625\"\u003evercel/turborepo#14625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Parse pnpm-workspace.yaml once per command by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14620\"\u003evercel/turborepo#14620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write each file trace error to stderr in a single call by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14618\"\u003evercel/turborepo#14618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse glob validation results when re-validating turbo.json in the language server by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14615\"\u003evercel/turborepo#14615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Keep git subprocesses off the critical path of dry runs by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14610\"\u003evercel/turborepo#14610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Classify watch file changes when they arrive instead of on a 100ms poll by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14600\"\u003evercel/turborepo#14600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Buffer TUI raw-output spool writes by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14597\"\u003evercel/turborepo#14597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Add the turbo query version key without re-parsing the response by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14592\"\u003evercel/turborepo#14592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Replay cached task logs in whole-line chunks by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14590\"\u003evercel/turborepo#14590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Write each boundaries diagnostic to stderr in a single call by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14587\"\u003evercel/turborepo#14587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Walk leading-globstar input trees in parallel without wax by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14511\"\u003evercel/turborepo#14511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Reuse open parent directories when writing cache archives by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14513\"\u003evercel/turborepo#14513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Index Bun lockfile subgraph lookups instead of rescanning all packages by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14514\"\u003evercel/turborepo#14514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Render the pruned lockfile while package files are copied by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14515\"\u003evercel/turborepo#14515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Resolve exact native npm lock cohorts by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14484\"\u003evercel/turborepo#14484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Batch prefixed task output into one write per chunk by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14588\"\u003evercel/turborepo#14588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Share one allocation per external package identity by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14528\"\u003evercel/turborepo#14528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Remove quadratic package-name scan from microfrontends discovery by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14527\"\u003evercel/turborepo#14527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Render file trace errors on several threads by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14623\"\u003evercel/turborepo#14623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Check boundaries packages in parallel again by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14598\"\u003evercel/turborepo#14598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Read PTY child output in 8 KiB chunks by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14594\"\u003evercel/turborepo#14594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Load each package's tsconfig once when checking boundaries by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14589\"\u003evercel/turborepo#14589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Skip the file watcher round trip when checking outputs for new task hashes by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14626\"\u003evercel/turborepo#14626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Refresh only memory stats in \u003ccode\u003eturbo info\u003c/code\u003e by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14593\"\u003evercel/turborepo#14593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: Walk and record prune copy plans in parallel by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14522\"\u003evercel/turborepo#14522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Reconcile sealed clone-local setup selections by \u003ca href=\"https://github.com/anthonyshew\"\u003e\u003ccode\u003e@​anthonyshew\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vercel/turborepo/pull/14485\"\u003evercel/turborepo#14485\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/vercel/turborepo/commit/64d5e4804a02f97d4e0c2910e9164a67605201df\"\u003e\u003ccode\u003e64d5e48\u003c/code\u003e\u003c/a\u003e publish 2.11.9 to registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/78b039e3affea8a977af17931b7361ab4da3bb00\"\u003e\u003ccode\u003e78b039e\u003c/code\u003e\u003c/a\u003e fix(cache): Parallelize dry-run HEAD fallback (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14801\"\u003e#14801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/6834819dd859af2e0d278b6b1ef0f81b3e984bb0\"\u003e\u003ccode\u003e6834819\u003c/code\u003e\u003c/a\u003e docs: Use .NET in the multi-language guide (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/679efb8ea421d1446538cb74f842c8677cb21922\"\u003e\u003ccode\u003e679efb8\u003c/code\u003e\u003c/a\u003e refactor: Remove setup lifecycle script controls (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14818\"\u003e#14818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/9c9085246b7b807eb06752ab25f9f772ffd19070\"\u003e\u003ccode\u003e9c90852\u003c/code\u003e\u003c/a\u003e fix: Allow native package manager configuration during setup (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14816\"\u003e#14816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/a3bcc4a0e578a8fc0518a2e32eb523f07f09b036\"\u003e\u003ccode\u003ea3bcc4a\u003c/code\u003e\u003c/a\u003e chore: Release Turborepo 2.11.9-canary.1 (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14817\"\u003e#14817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/9328416c56b6ce69d1a668e72334c62c6555c1db\"\u003e\u003ccode\u003e9328416\u003c/code\u003e\u003c/a\u003e fix: Stop installing the Unix shell hook automatically (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14813\"\u003e#14813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/74c9fbca766f3313a48dc7d989b57ba2aa0d4b53\"\u003e\u003ccode\u003e74c9fbc\u003c/code\u003e\u003c/a\u003e fix: Attribute Cargo.lock changes to the crates whose dependencies changed (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/a3ef52ae52d634da121e4a18d9f726dfb9c1bbf2\"\u003e\u003ccode\u003ea3ef52a\u003c/code\u003e\u003c/a\u003e chore: Update with-changesets example (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/14638\"\u003e#14638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vercel/turborepo/commit/f05411f0eaa1e56d97af590647b97aa872281dca\"\u003e\u003ccode\u003ef05411f\u003c/code\u003e\u003c/a\u003e perf: Skip newline normalization copies for already-normalized TUI output (\u003ca href=\"https://redirect.github.com/vercel/turborepo/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vercel/turborepo/compare/v2.11.6...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@base-ui/react` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mui/base-ui/releases\"\u003e@​base-ui/react's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003ch3\u003eGeneral changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExport \u003ccode\u003eCssVariables\u003c/code\u003e and \u003ccode\u003eDataAttributes\u003c/code\u003e types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5243\"\u003e#5243\u003c/a\u003e) by \u003ca href=\"https://github.com/superhooman\"\u003e\u003ccode\u003e@​superhooman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale focused field state (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5345\"\u003e#5345\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix animation waits retaining detached elements (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5719\"\u003e#5719\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep item registration in sync when items change under Strict Mode (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5862\"\u003e#5862\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAccordion\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e's \u003ccode\u003edata-value\u003c/code\u003e and \u003ccode\u003edata-index\u003c/code\u003e attributes (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5705\"\u003e#5705\u003c/a\u003e) by \u003ca href=\"https://github.com/cpruijsen\"\u003e\u003ccode\u003e@​cpruijsen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlert Dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't associate a programmatically opened popup with a trigger that did not open it (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5641\"\u003e#5641\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAutocomplete\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCheckbox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrefer \u003ccode\u003earia-label\u003c/code\u003e over associated labels (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5787\"\u003e#5787\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCollapsible\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Collapsible.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinish closing when the render function removes the panel (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5890\"\u003e#5890\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore animations when a removed panel reopens (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5891\"\u003e#5891\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCombobox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale chip focus after returning to the input (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5879\"\u003e#5879\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix label focus in Shadow DOM (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5871\"\u003e#5871\u003c/a\u003e) by \u003ca href=\"https://github.com/lyzno1\"\u003e\u003ccode\u003e@​lyzno1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset typeahead state when closing without moving focus (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5816\"\u003e#5816\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept readonly arrays for multiple values (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5710\"\u003e#5710\u003c/a\u003e) by \u003ca href=\"https://github.com/MonstraG\"\u003e\u003ccode\u003e@​MonstraG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShare item indicator implementation (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5728\"\u003e#5728\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove mount performance of large lists (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5819\"\u003e#5819\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCombine item store subscriptions (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5863\"\u003e#5863\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDialog\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/mui/base-ui/blob/master/CHANGELOG.md\"\u003e@​base-ui/react's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cem\u003eOct 9, 2026\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eGeneral changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExport \u003ccode\u003eCssVariables\u003c/code\u003e and \u003ccode\u003eDataAttributes\u003c/code\u003e types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5243\"\u003e#5243\u003c/a\u003e) by \u003ca href=\"https://github.com/superhooman\"\u003e\u003ccode\u003e@​superhooman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale focused field state (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5345\"\u003e#5345\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix animation waits retaining detached elements (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5719\"\u003e#5719\u003c/a\u003e) by \u003ca href=\"https://github.com/flaviendelangle\"\u003e\u003ccode\u003e@​flaviendelangle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep item registration in sync when items change under Strict Mode (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5862\"\u003e#5862\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAccordion\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e's \u003ccode\u003edata-value\u003c/code\u003e and \u003ccode\u003edata-index\u003c/code\u003e attributes (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5705\"\u003e#5705\u003c/a\u003e) by \u003ca href=\"https://github.com/cpruijsen\"\u003e\u003ccode\u003e@​cpruijsen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Accordion.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlert Dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't associate a programmatically opened popup with a trigger that did not open it (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5641\"\u003e#5641\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAutocomplete\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCheckbox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrefer \u003ccode\u003earia-label\u003c/code\u003e over associated labels (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5787\"\u003e#5787\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCollapsible\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApply the native \u003ccode\u003edisabled\u003c/code\u003e attribute to \u003ccode\u003e\u0026lt;Collapsible.Trigger\u0026gt;\u003c/code\u003e when using native buttons (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5607\"\u003e#5607\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinish closing when the render function removes the panel (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5890\"\u003e#5890\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore animations when a removed panel reopens (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5891\"\u003e#5891\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003ehiddenUntilFound\u003c/code\u003e panels synchronously on \u003ccode\u003ebeforematch\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5514\"\u003e#5514\u003c/a\u003e) by \u003ca href=\"https://github.com/aarongarciah\"\u003e\u003ccode\u003e@​aarongarciah\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCombobox\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix stale chip focus after returning to the input (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5879\"\u003e#5879\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eautoHighlight\u003c/code\u003e for asynchronous results (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5818\"\u003e#5818\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecouple automatic unmounting from \u003ccode\u003eactionsRef\u003c/code\u003e. Call \u003ccode\u003eeventDetails.preventUnmountOnClose()\u003c/code\u003e in \u003ccode\u003eonOpenChange\u003c/code\u003e to opt out of automatic unmounting (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5734\"\u003e#5734\u003c/a\u003e) by \u003ca href=\"https://github.com/michaldudak\"\u003e\u003ccode\u003e@​michaldudak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix label focus in Shadow DOM (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5871\"\u003e#5871\u003c/a\u003e) by \u003ca href=\"https://github.com/lyzno1\"\u003e\u003ccode\u003e@​lyzno1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass the originating event to \u003ccode\u003eonItemHighlighted\u003c/code\u003e. Pointer events may be \u003ccode\u003eMouseEvent\u003c/code\u003e or \u003ccode\u003ePointerEvent\u003c/code\u003e; typing reports the reason \u003ccode\u003enone\u003c/code\u003e (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5838\"\u003e#5838\u003c/a\u003e) by \u003ca href=\"https://github.com/atomiks\"\u003e\u003ccode\u003e@​atomiks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset typeahead state when closing without moving focus (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5816\"\u003e#5816\u003c/a\u003e) by \u003ca href=\"https://github.com/mdm317\"\u003e\u003ccode\u003e@​mdm317\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept readonly arrays for multiple values (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5710\"\u003e#5710\u003c/a\u003e) by \u003ca href=\"https://github.com/MonstraG\"\u003e\u003ccode\u003e@​MonstraG\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/mui/base-ui/commit/ad7ecda5296b0295b41a51ecb01fce6204acd099\"\u003e\u003ccode\u003ead7ecda\u003c/code\u003e\u003c/a\u003e [release] v1.9.0 (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5906\"\u003e#5906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/3296de3d4c79435a596c72ad8048d74ecc241ca5\"\u003e\u003ccode\u003e3296de3\u003c/code\u003e\u003c/a\u003e [drawer] Avoid retaining unmounted drawers in DrawerProvider (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5921\"\u003e#5921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/69c33b49c71d729a1e63255dd5eb9794fa9a8d2e\"\u003e\u003ccode\u003e69c33b4\u003c/code\u003e\u003c/a\u003e [drawer] Fix deferred touch swipes leaving the popup (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5922\"\u003e#5922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/51b70db60fb2660bbb7236ba5b235a5d77d9fe22\"\u003e\u003ccode\u003e51b70db\u003c/code\u003e\u003c/a\u003e [menu] Strip internal filter components from public types (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5923\"\u003e#5923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/8d8b98c351c4d1ec9a6f80dcc89e39e454b1e53a\"\u003e\u003ccode\u003e8d8b98c\u003c/code\u003e\u003c/a\u003e [menu] Ignore filter input edits while the menu animates out (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5911\"\u003e#5911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/aeba3eb9f4613424c1a66f767bb20d25233306b6\"\u003e\u003ccode\u003eaeba3eb\u003c/code\u003e\u003c/a\u003e [combobox][menu][select] Revert highlightItem imperative action (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5910\"\u003e#5910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/ec6bf32d3c1b482994810cf795f7016c375d6493\"\u003e\u003ccode\u003eec6bf32\u003c/code\u003e\u003c/a\u003e [field][select][combobox][slider] Fall back to the owner document when lookin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/1f112a5d2399e47d052601d05ca82a58272192a6\"\u003e\u003ccode\u003e1f112a5\u003c/code\u003e\u003c/a\u003e [popups] Avoid re-rendering inactive triggers on open and close (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/bc53db672db4fa17302a95b449b376a7db52a625\"\u003e\u003ccode\u003ebc53db6\u003c/code\u003e\u003c/a\u003e [fieldset] Await render in Legend disabled-state test (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5909\"\u003e#5909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mui/base-ui/commit/147092ee55c2e02bcbac2e45b17640d2d317bbb7\"\u003e\u003ccode\u003e147092e\u003c/code\u003e\u003c/a\u003e [test] Strengthen tests, add test lint rules and share copied suites (\u003ca href=\"https://github.com/mui/base-ui/tree/HEAD/packages/react/issues/5892\"\u003e#5892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mui/base-ui/commits/v1.9.0/packages/react\"\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.104.1 to 5.104.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.104.4\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/TanStack/query/pull/11722\"\u003e#11722\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/0992a9291469d02d677f10a4994b1af0fdb8ac74\"\u003e\u003ccode\u003e0992a92\u003c/code\u003e\u003c/a\u003e - fix(react-query-devtools): create the devtools instance only once instead of on every render\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c8f5eac9df24c3cf987dc23865493ebd0d346caa\"\u003e\u003ccode\u003ec8f5eac\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/b61abc2033f9e2fbf24d6753baedeaa74b2f1c17\"\u003e\u003ccode\u003eb61abc2\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\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.104.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.104.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.104.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\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.104.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.104.4\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e]:\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.104.4\u003c/li\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.104.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.104.4\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/TanStack/query/pull/11328\"\u003e#11328\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e - Allow queries with falsy errors to retry on mount when \u003ccode\u003ethrowOnError\u003c/code\u003e returns false.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/fce89ddf7a35b14252096ff64a1217efd81b415c\"\u003e\u003ccode\u003efce89dd\u003c/code\u003e\u003c/a\u003e]:\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.104.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.104.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.104.3\u003c/li\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.104.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.104.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.104.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.104.3\u003c/h2\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\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.104.4\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/TanStack/query/pull/11328\"\u003e#11328\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e - Allow queries with falsy errors to retry on mount when \u003ccode\u003ethrowOnError\u003c/code\u003e returns false.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/TanStack/query/pull/11728\"\u003e#11728\u003c/a\u003e \u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e - fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TanStack/query/commit/fce89ddf7a35b14252096ff64a1217efd81b415c\"\u003e\u003ccode\u003efce89dd\u003c/code\u003e\u003c/a\u003e]:\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.104.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.104.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/0f15bc925db5813be6a17527988ec7d7b3c8cfc0\"\u003e\u003ccode\u003e0f15bc9\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.104.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.104.2\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/03e8c3955ddbf20f0a07b79982b52dfad8df5323\"\u003e\u003ccode\u003e03e8c39\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.104.2\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/12199722dc3f7443b7bbb575611dce59cfd08534\"\u003e\u003ccode\u003e1219972\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12062\"\u003e#12062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/1fee0443dbeb346b8401557ca286a66cdec7ad71\"\u003e\u003ccode\u003e1fee044\u003c/code\u003e\u003c/a\u003e fix(query-core): clear mutations before notifying subscribers (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11470\"\u003e#11470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/c20886163a3759725cceafb421e864e7d213ec26\"\u003e\u003ccode\u003ec208861\u003c/code\u003e\u003c/a\u003e fix(react-query): retry queries with falsy errors on mount (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11328\"\u003e#11328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/a10839824cecec8ea141330191c2e0ad0ae2b53f\"\u003e\u003ccode\u003ea108398\u003c/code\u003e\u003c/a\u003e fix(react-query*): declare '\u003ccode\u003e@​types/react\u003c/code\u003e' as an optional peer dependency (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11\"\u003e#11\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/ee47993724e5b71e65d9f38ae416367d2dd18395\"\u003e\u003ccode\u003eee47993\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11998\"\u003e#11998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/0f15bc925db5813be6a17527988ec7d7b3c8cfc0\"\u003e\u003ccode\u003e0f15bc9\u003c/code\u003e\u003c/a\u003e fix(query-core): preserve union narrowing in setQueryData updaters (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11935\"\u003e#11935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/b699b52d60e10220403673a407d95bcebeba3e81\"\u003e\u003ccode\u003eb699b52\u003c/code\u003e\u003c/a\u003e ci: Version Packages (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11849\"\u003e#11849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/e22e7c4a27129457636a2a800f8ce19fc0c7b0e3\"\u003e\u003ccode\u003ee22e7c4\u003c/code\u003e\u003c/a\u003e chore: test TypeScript 7.1 preview and drop 5.6 (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11947\"\u003e#11947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/df78a9d137993546a6d7407b3fd68c1b5429888a\"\u003e\u003ccode\u003edf78a9d\u003c/code\u003e\u003c/a\u003e chore(*): pass the root 'settings' to the package oxlint configs, which 'exte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TanStack/query/commit/833062c2fcf3720f6e0201adb832aa7bd90e3770\"\u003e\u003ccode\u003e833062c\u003c/code\u003e\u003c/a\u003e chore: replace prettier with oxfmt (\u003ca href=\"https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11939\"\u003e#11939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/TanStack/query/commits/@tanstack/react-query@5.104.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 `better-auth` from 1.7.7 to 1.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/better-auth/better-auth/releases\"\u003ebetter-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.11\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ebetter-auth\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed repeated PostgreSQL migration diffs for \u003ccode\u003eint8\u003c/code\u003e columns. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10719\"\u003e#10719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed database-backed rate limiting returning an excessively large \u003ccode\u003eX-Retry-After\u003c/code\u003e value. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11521\"\u003e#11521\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/better-auth/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/core\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed plugin \u003ccode\u003einit\u003c/code\u003e returns with \u003ccode\u003eoptions: undefined\u003c/code\u003e failing type checks under \u003ccode\u003eexactOptionalPropertyTypes\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11907\"\u003e#11907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ID token signature and claim validation for Twitch and Paybin sign-in. Custom Paybin issuers must publish RS256 signing keys at \u003ccode\u003e\u0026lt;issuer\u0026gt;/.well-known/jwks.json\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11884\"\u003e#11884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced installation size while preserving OpenTelemetry instrumentation attributes. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11623\"\u003e#11623\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/core/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/oauth-provider\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed OpenAPI schemas for \u003ccode\u003e/oauth2/consent\u003c/code\u003e and \u003ccode\u003e/oauth2/continue\u003c/code\u003e to match their redirect responses. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10881\"\u003e#10881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed CIMD metadata refreshes overwriting concurrent administrator changes to discovered clients. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11830\"\u003e#11830\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/oauth-provider/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@better-auth/expo\u003c/code\u003e\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Expo social account linking with ID tokens when a session cookie is present. (\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/10207\"\u003e#10207\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor detailed changes, see \u003ca href=\"https://github.com/better-auth/better-auth/blob/e2365403dfa98c004ac5dd31f12769525017a67d/packages/expo/CHANGELOG.md\"\u003e\u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThanks to everyone who contributed to this release:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/aryan1306\"\u003e\u003ccode\u003e@​aryan1306\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bytaesu\"\u003e\u003ccode\u003e@​bytaesu\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cpojer\"\u003e\u003ccode\u003e@​cpojer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/noobnooc\"\u003e\u003ccode\u003e@​noobnooc\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/rendermani\"\u003e\u003ccode\u003e@​rendermani\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/sahiljagtap08\"\u003e\u003ccode\u003e@​sahiljagtap08\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/better-auth/better-auth/compare/v1.7.10...v1.7.11\"\u003e\u003ccode\u003ev1.7.10...v1.7.11\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.10\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ebetter-auth\u003c/code\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/better-auth/better-auth/blob/main/packages/better-auth/CHANGELOG.md\"\u003ebetter-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.11\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/better-auth/better-auth/pull/10719\"\u003e#10719\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/bd65db02c1e7c854dc6090bd1e3885fc0cd55ec8\"\u003e\u003ccode\u003ebd65db0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/rendermani\"\u003e\u003ccode\u003e@​rendermani\u003c/code\u003e\u003c/a\u003e! - Recognize PostgreSQL \u003ccode\u003eint8\u003c/code\u003e as a valid number type in migration diffs. Kysely's introspector reports \u003ccode\u003epg_type.typname\u003c/code\u003e, so Better Auth's own \u003ccode\u003ebigint\u003c/code\u003e columns (such as the database-backed rate limiter's \u003ccode\u003elastRequest\u003c/code\u003e) came back as \u003ccode\u003eint8\u003c/code\u003e and were reported as a type mismatch on every run.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11521\"\u003e#11521\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/37a75c95d148e0db4f29f30cabcd2ceb26bc7085\"\u003e\u003ccode\u003e37a75c9\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/aryan1306\"\u003e\u003ccode\u003e@​aryan1306\u003c/code\u003e\u003c/a\u003e! - Fix database-backed rate limiting returning an excessively large \u003ccode\u003eX-Retry-After\u003c/code\u003e header instead of the remaining seconds in the rate-limit window.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/better-auth/better-auth/commit/ce965696d1f8695e96e6b88490fc8ea2f8ab78ae\"\u003e\u003ccode\u003ece96569\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/2f6ca3f370e80081d911a5e95a39393920b6d22e\"\u003e\u003ccode\u003e2f6ca3f\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/dfd8dd287a4cfeb1d3541bb4e004e8f33edce15f\"\u003e\u003ccode\u003edfd8dd2\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/drizzle-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/kysely-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/memory-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/mongo-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/prisma-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/telemetry\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.10\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/better-auth/better-auth/pull/11393\"\u003e#11393\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/eebd47a0e7103caae35e4ac46971e293d1579594\"\u003e\u003ccode\u003eeebd47a\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/breken-ai\"\u003e\u003ccode\u003e@​breken-ai\u003c/code\u003e\u003c/a\u003e! - If you use the \u003ccode\u003elastLoginMethod\u003c/code\u003e plugin with \u003ccode\u003eoneTap\u003c/code\u003e, signing in through Google One Tap now records \u003ccode\u003e\u0026quot;google\u0026quot;\u003c/code\u003e, the same value as signing in with the Google button. Before, a One Tap sign-in recorded nothing: the \u003ccode\u003ebetter-auth.last_used_login_method\u003c/code\u003e cookie kept its previous value or stayed unset, and so did \u003ccode\u003euser.lastLoginMethod\u003c/code\u003e with \u003ccode\u003estoreInDatabase\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf your \u003ccode\u003ecustomResolveMethod\u003c/code\u003e includes a \u003ccode\u003e/one-tap/callback\u003c/code\u003e → \u003ccode\u003e\u0026quot;google\u0026quot;\u003c/code\u003e workaround, remove that mapping; keep the resolver if it handles other routes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11821\"\u003e#11821\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/09d07e6feac8c0173551c9cbaee222d403c31fd9\"\u003e\u003ccode\u003e09d07e6\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - The Google One Tap prompt (\u003ccode\u003eauthClient.oneTap()\u003c/code\u003e without \u003ccode\u003ebutton\u003c/code\u003e) no longer calls \u003ccode\u003egetSkippedReason()\u003c/code\u003e, which Google's FedCM migration guide says to remove. Before, it called it under any \u003ccode\u003epromptOptions.fedCM\u003c/code\u003e setting.\u003c/p\u003e\n\u003cp\u003eA skipped prompt now ends the flow and calls \u003ccode\u003eonPromptNotification\u003c/code\u003e right away instead of retrying. Google doesn't report why a prompt was skipped, and a prompt the user closed stays hidden for Google's cooldown period, so the retries could not bring it back. Dismissed prompts still retry as before.\u003c/p\u003e\n\u003cp\u003eGoogle Identity Services still logs its FedCM migration warning, because it does so whenever \u003ccode\u003eprompt()\u003c/code\u003e receives a listener. The plugin needs the listener to track dismissals and skips, so the warning is expected and safe to ignore.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11819\"\u003e#11819\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/eaecb7229eeef5cfd763477b12f7dd2e44b89e51\"\u003e\u003ccode\u003eeaecb72\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - Google One Tap now applies your \u003ccode\u003esocialProviders.google.mapProfileToUser\u003c/code\u003e and custom \u003ccode\u003egetUserInfo\u003c/code\u003e, the same as the standard Google sign-in. Before, One Tap ignored both and always stored the token's \u003ccode\u003ename\u003c/code\u003e, \u003ccode\u003eemail\u003c/code\u003e, \u003ccode\u003eemail_verified\u003c/code\u003e, and \u003ccode\u003epicture\u003c/code\u003e claims.\u003c/p\u003e\n\u003cp\u003eIf you configured either one, users created through One Tap now get the fields it returns, including any extra fields such as a first name from \u003ccode\u003egiven_name\u003c/code\u003e. Returning users are updated from it on each One Tap sign-in when \u003ccode\u003esocialProviders.google.overrideUserInfoOnSignIn\u003c/code\u003e is on, and so are existing users that One Tap links when \u003ccode\u003eaccount.accountLinking.updateUserInfoOnLink\u003c/code\u003e is on. Check that your mapper suits One Tap users too.\u003c/p\u003e\n\u003cp\u003eIf you set \u003ccode\u003esocialProviders.google.overrideUserInfoOnSignIn\u003c/code\u003e, One Tap sign-ins now update returning users' name, image, and email from Google, as the redirect sign-in already does.\u003c/p\u003e\n\u003cp\u003eSetups that configure none of these, including \u003ccode\u003eoneTap({ clientId })\u003c/code\u003e with no Google provider, are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11820\"\u003e#11820\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/88c9a378562fcb240085bd803a243062e2d28f47\"\u003e\u003ccode\u003e88c9a37\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - If you set \u003ccode\u003eautoSelect\u003c/code\u003e or \u003ccode\u003ecancelOnTapOutside\u003c/code\u003e on \u003ccode\u003eoneTapClient()\u003c/code\u003e, the One Tap prompt and the Sign in with Google button now use them. Before, only values passed to \u003ccode\u003eauthClient.oneTap()\u003c/code\u003e took effect, so with \u003ccode\u003eautoSelect: true\u003c/code\u003e on the plugin, returning users still had to pick an account. Values passed to \u003ccode\u003eoneTap()\u003c/code\u003e still override the plugin's. Apps that set these options only on \u003ccode\u003eoneTap()\u003c/code\u003e, or not at all, are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11696\"\u003e#11696\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/0cf1f7c6bc7b9870b276fdf7d9f5c38af6dbaa30\"\u003e\u003ccode\u003e0cf1f7c\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/drewsephski\"\u003e\u003ccode\u003e@​drewsephski\u003c/code\u003e\u003c/a\u003e! - You can now import the One Tap plugin from \u003ccode\u003ebetter-auth/plugins/one-tap\u003c/code\u003e, as you can for other plugins. Previously this import failed with a \u0026quot;not exported\u0026quot; error. Imports from \u003ccode\u003ebetter-auth/plugins\u003c/code\u003e and \u003ccode\u003ebetter-auth/client/plugins\u003c/code\u003e are unchanged.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/better-auth/better-auth/pull/11822\"\u003e#11822\u003c/a\u003e \u003ca href=\"https://github.com/better-auth/better-auth/commit/414e845f128011369b451a3ffd15d8d314351cdb\"\u003e\u003ccode\u003e414e845\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/gustavovalverde\"\u003e\u003ccode\u003e@​gustavovalverde\u003c/code\u003e\u003c/a\u003e! - You can now import the Captcha and OpenAPI plugins from \u003ccode\u003ebetter-auth/plugins/captcha\u003c/code\u003e and \u003ccode\u003ebetter-auth/plugins/open-api\u003c/code\u003e, as you can for other plugins. Previously these imports failed with a \u0026quot;not exported\u0026quot; error. Imports from \u003ccode\u003ebetter-auth/plugins\u003c/code\u003e are unchanged.\u003c/p\u003e\n\u003cp\u003eIf your TypeScript config uses \u003ccode\u003e\u0026quot;moduleResolution\u0026quot;: \u0026quot;node\u0026quot;\u003c/code\u003e (or \u003ccode\u003enode10\u003c/code\u003e), \u003ccode\u003ebetter-auth/plugins/multi-session\u003c/code\u003e and \u003ccode\u003ebetter-auth/test\u003c/code\u003e now resolve their types. Previously TypeScript reported that it could not find their declarations. Projects using \u003ccode\u003ebundler\u003c/code\u003e, \u003ccode\u003enode16\u003c/code\u003e, or \u003ccode\u003enodenext\u003c/code\u003e resolution are unaffected.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated dependencies [\u003ca href=\"https://github.com/better-auth/better-auth/commit/fedd05586c5a7ee2eb6b8d16b88b08dfb7e16a89\"\u003e\u003ccode\u003efedd055\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/bbd0a19c30fc384213d1e98b9a8a54a903a0b574\"\u003e\u003ccode\u003ebbd0a19\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/better-auth/better-auth/commit/99cdfe7c2e6bb3b8556b1ea8c3a336369cba6976\"\u003e\u003ccode\u003e99cdfe7\u003c/code\u003e\u003c/a\u003e]:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/core\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.10\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​better-auth/mongo-adapter\u003c/code\u003e\u003ca href=\"https://github.com/1\"\u003e\u003ccode\u003e@​1\u003c/code\u003e\u003c/a\u003e.7.10\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/better-auth/better-auth/commit/52ab801cc6550104199bcf70a3f83005e15eb804\"\u003e\u003ccode\u003e52ab801\u003c/code\u003e\u003c/a\u003e chore: release v1.7.11 (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11827\"\u003e#11827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/37a75c95d148e0db4f29f30cabcd2ceb26bc7085\"\u003e\u003ccode\u003e37a75c9\u003c/code\u003e\u003c/a\u003e fix(rate-limit): convert a string lastRequest before computing X-Retry-After ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/bd65db02c1e7c854dc6090bd1e3885fc0cd55ec8\"\u003e\u003ccode\u003ebd65db0\u003c/code\u003e\u003c/a\u003e fix(db): recognize postgres int8 as a number type in migration diffs (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/10719\"\u003e#10719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/b734a418bfade81efd19c3277dc58da6967081b7\"\u003e\u003ccode\u003eb734a41\u003c/code\u003e\u003c/a\u003e chore: release v1.7.10 (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11795\"\u003e#11795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/eebd47a0e7103caae35e4ac46971e293d1579594\"\u003e\u003ccode\u003eeebd47a\u003c/code\u003e\u003c/a\u003e fix(last-login-method): record Google One Tap sign-ins (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11393\"\u003e#11393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/eaecb7229eeef5cfd763477b12f7dd2e44b89e51\"\u003e\u003ccode\u003eeaecb72\u003c/code\u003e\u003c/a\u003e fix(one-tap): apply the Google provider's mapProfileToUser and getUserInfo (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/414e845f128011369b451a3ffd15d8d314351cdb\"\u003e\u003ccode\u003e414e845\u003c/code\u003e\u003c/a\u003e fix(better-auth): keep package subpaths in sync with build entries (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11822\"\u003e#11822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/88c9a378562fcb240085bd803a243062e2d28f47\"\u003e\u003ccode\u003e88c9a37\u003c/code\u003e\u003c/a\u003e fix(one-tap): apply plugin-level autoSelect and cancelOnTapOutside (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11820\"\u003e#11820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/09d07e6feac8c0173551c9cbaee222d403c31fd9\"\u003e\u003ccode\u003e09d07e6\u003c/code\u003e\u003c/a\u003e fix(one-tap): stop calling prompt moment methods unsupported under FedCM (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11\"\u003e#11\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/better-auth/better-auth/commit/0cf1f7c6bc7b9870b276fdf7d9f5c38af6dbaa30\"\u003e\u003ccode\u003e0cf1f7c\u003c/code\u003e\u003c/a\u003e fix(one-tap): add the better-auth/plugins/one-tap subpath export (\u003ca href=\"https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth/issues/11696\"\u003e#11696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/better-auth/better-auth/commits/v1.7.11/packages/better-auth\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cn` from 0.4.0 to 0.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shadcn-ui/cn/releases\"\u003ecn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecn@0.5.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/157\"\u003e#157\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - Drop Node 20, which reached end of life, and require Node 22 or later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/164\"\u003e#164\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - \u003ccode\u003ecn build\u003c/code\u003e now follows package \u003ccode\u003e@import\u003c/code\u003es, reads \u003ccode\u003e@theme\u003c/code\u003e declarations after nested blocks such as \u003ccode\u003e@keyframes\u003c/code\u003e, and drops names declared before a \u003ccode\u003e--*: initial\u003c/code\u003e reset.\u003c/p\u003e\n\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/shadcn-ui/cn/blob/main/packages/cn/CHANGELOG.md\"\u003ecn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.5.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/157\"\u003e#157\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - Drop Node 20, which reached end of life, and require Node 22 or later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/shadcn-ui/cn/pull/164\"\u003e#164\u003c/a\u003e \u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/shadcn\"\u003e\u003ccode\u003e@​shadcn\u003c/code\u003e\u003c/a\u003e! - \u003ccode\u003ecn build\u003c/code\u003e now follows package \u003ccode\u003e@import\u003c/code\u003es, reads \u003ccode\u003e@theme\u003c/code\u003e declarations after nested blocks such as \u003ccode\u003e@keyframes\u003c/code\u003e, and drops names declared before a \u003ccode\u003e--*: initial\u003c/code\u003e reset.\u003c/p\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/shadcn-ui/cn/commit/8ebcbf09d1a3355c235295e804a6126f6f2f069a\"\u003e\u003ccode\u003e8ebcbf0\u003c/code\u003e\u003c/a\u003e chore(release): version packages (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/64aa1d0b6c708f1a23e53ade4db6c8c278eceb75\"\u003e\u003ccode\u003e64aa1d0\u003c/code\u003e\u003c/a\u003e fix(build): read \u003ca href=\"https://github.com/theme\"\u003e\u003ccode\u003e@​theme\u003c/code\u003e\u003c/a\u003e scales the way Tailwind builds them (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/164\"\u003e#164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/c71bd53a351d99dca12f0808ea7e1c7134ec4945\"\u003e\u003ccode\u003ec71bd53\u003c/code\u003e\u003c/a\u003e chore: migrate tooling to Vite+ (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/156\"\u003e#156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shadcn-ui/cn/commit/663adeaa0ac37af101aa7790f2ce44df4a7e5043\"\u003e\u003ccode\u003e663adea\u003c/code\u003e\u003c/a\u003e chore: drop Node 20 (\u003ca href=\"https://github.com/shadcn-ui/cn/tree/HEAD/packages/cn/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/shadcn-ui/cn/commits/cn@0.5.0/packages/cn\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lenis` from 1.3.26 to 1.3.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/darkroomengineering/lenis/releases\"\u003elenis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003elenis\u003c/code\u003e class coming back after \u003ccode\u003edestroy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escrollTo()\u003c/code\u003e accepts SVG elements\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/darkroomengineering/lenis/commit/e01eefb1f55cd08bc051521d74f5f8182b71ee9d\"\u003e\u003ccode\u003ee01eefb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/558\"\u003e#558\u003c/a\u003e from darkroomengineering/release/v1.3.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/08868fc1e49d4b076d9efc954b926306b0e20a2f\"\u003e\u003ccode\u003e08868fc\u003c/code\u003e\u003c/a\u003e v1.3.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/1f60fb9199a823f10fb23f7df55011defbb2747a\"\u003e\u003ccode\u003e1f60fb9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/557\"\u003e#557\u003c/a\u003e from darkroomengineering/fix/svg-scroll-targets-v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/ef84677a7a6e89f6c1f6c916c95a52bbcba3950a\"\u003e\u003ccode\u003eef84677\u003c/code\u003e\u003c/a\u003e fix(core): accept SVG elements as scrollTo targets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/ad99a23b682756c5ccafa6dd037ebd795ce2e9b0\"\u003e\u003ccode\u003ead99a23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/542\"\u003e#542\u003c/a\u003e from cipherprofessor/fix/clear-reset-velocity-timeout...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/bc152f90d7c9b04ef372718350e2f616f3c706b2\"\u003e\u003ccode\u003ebc152f9\u003c/code\u003e\u003c/a\u003e chore: point CODEOWNERS at the engineering team (\u003ca href=\"https://redirect.github.com/darkroomengineering/lenis/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/darkroomengineering/lenis/commit/2e14ce85aa482d869799df4a25a872bb74400676\"\u003e\u003ccode\u003e2e14ce8\u003c/code\u003e\u003c/a\u003e fix(core): clear pending native-scroll velocity timeout on destroy()\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/darkroomengineering/lenis/compare/v1.3.26...v1.3.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 1.49.0 to 1.59.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\"\u003elu...\n\n_Description has been truncated_","html_url":"https://github.com/neilkumar93600/fellow-owner/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/neilkumar93600%2Ffellow-owner/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":"/server","pr_created_at":"2026-10-21T16:56:47.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5964862049","node_id":"PR_kwDOUCC5MM8AAAABJ1s8GQ","number":160,"state":"open","title":"Bump express from 4.22.3 to 5.3.0 in /server","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-10-21T16:56:47.000Z","updated_at":"2026-10-21T16:57:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"/server","ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/owdarlley/sunfood/pull/160","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/owdarlley%2Fsunfood/issues/160","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/160/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-21T13:04:27.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5961050289","node_id":"PR_kwDOUkeKdM8AAAABJyn94w","number":1328,"state":"closed","title":"chore(deps): Bump the root-minor-patch group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T03:53:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T13:04:27.000Z","updated_at":"2026-10-22T03:53:45.000Z","time_to_close":53356,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"root-minor-patch","update_count":39,"packages":[{"name":"eslint","old_version":"10.11.0","new_version":"10.12.0","repository_url":"https://github.com/eslint/eslint"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.71.0","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"vitest","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@anthropic-ai/sdk","old_version":"0.130.0","new_version":"0.133.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@aws-sdk/client-cost-explorer","old_version":"3.1144.0","new_version":"3.1151.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@aws-sdk/client-s3","old_version":"3.1144.0","new_version":"3.1151.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@opentelemetry/exporter-trace-otlp-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/instrumentation-express","old_version":"0.70.0","new_version":"0.71.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js-contrib"},{"name":"@opentelemetry/instrumentation-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/resources","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-node","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-trace-base","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"docx","old_version":"9.8.1","new_version":"9.11.0","repository_url":"https://github.com/dolanmiu/docx"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"marked","old_version":"18.0.14","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"mysql2","old_version":"3.24.5","new_version":"3.24.6","repository_url":"https://github.com/sidorares/node-mysql2"},{"name":"nodemailer","old_version":"10.0.13","new_version":"10.1.1","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"playwright-core","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"safe-regex2","old_version":"5.1.1","new_version":"5.1.2","repository_url":"https://github.com/fastify/safe-regex2"},{"name":"web-tree-sitter","old_version":"0.27.0","new_version":"0.27.1","repository_url":"https://github.com/tree-sitter/tree-sitter"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@huggingface/transformers","old_version":"4.3.0","new_version":"4.3.1","repository_url":"https://github.com/huggingface/transformers.js"},{"name":"supertest","old_version":"7.3.0","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"xml-crypto","old_version":"6.3.2","new_version":"6.3.3","repository_url":"https://github.com/node-saml/xml-crypto"},{"name":"@tanstack/react-query","old_version":"5.104.0","new_version":"5.104.2","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-query-devtools","old_version":"5.104.0","new_version":"5.104.2","repository_url":"https://github.com/TanStack/query"},{"name":"@tanstack/react-virtual","old_version":"3.14.13","new_version":"3.14.19","repository_url":"https://github.com/TanStack/virtual"},{"name":"dompurify","old_version":"3.4.16","new_version":"3.4.17","repository_url":"https://github.com/cure53/DOMPurify"},{"name":"lucide-react","old_version":"1.49.0","new_version":"1.57.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"next","old_version":"16.3.8","new_version":"16.4.0","repository_url":"https://github.com/vercel/next.js"},{"name":"@testing-library/user-event","old_version":"14.6.7","new_version":"14.6.8","repository_url":"https://github.com/testing-library/user-event"},{"name":"@vitejs/plugin-react","old_version":"6.1.1","new_version":"6.1.2","repository_url":"https://github.com/vitejs/vite-plugin-react"},{"name":"jsdom","old_version":"30.1.1","new_version":"30.1.2","repository_url":"https://github.com/jsdom/jsdom"},{"name":"postcss","old_version":"8.5.28","new_version":"8.5.30","repository_url":"https://github.com/postcss/postcss"},{"name":"radix-ui","old_version":"1.6.7","new_version":"1.8.1","repository_url":"https://github.com/radix-ui/primitives"},{"name":"@playwright/test","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"}],"path":null,"ecosystem":"npm"},"body":"Bumps the root-minor-patch group with 39 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint](https://github.com/eslint/eslint) | `10.11.0` | `10.12.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.0` | `8.71.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.2` | `5.0.4` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.2` | `5.0.4` |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.130.0` | `0.133.0` |\n| [@aws-sdk/client-cost-explorer](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-cost-explorer) | `3.1144.0` | `3.1151.0` |\n| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1144.0` | `3.1151.0` |\n| [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/instrumentation-express](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/instrumentation-express) | `0.70.0` | `0.71.0` |\n| [@opentelemetry/instrumentation-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [docx](https://github.com/dolanmiu/docx) | `9.8.1` | `9.11.0` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [marked](https://github.com/markedjs/marked) | `18.0.14` | `18.1.1` |\n| [mysql2](https://github.com/sidorares/node-mysql2) | `3.24.5` | `3.24.6` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.13` | `10.1.1` |\n| [playwright-core](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n| [safe-regex2](https://github.com/fastify/safe-regex2) | `5.1.1` | `5.1.2` |\n| [web-tree-sitter](https://github.com/tree-sitter/tree-sitter/tree/HEAD/lib/binding_web) | `0.27.0` | `0.27.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@huggingface/transformers](https://github.com/huggingface/transformers.js) | `4.3.0` | `4.3.1` |\n| [supertest](https://github.com/ladjs/supertest) | `7.3.0` | `7.3.1` |\n| [xml-crypto](https://github.com/node-saml/xml-crypto) | `6.3.2` | `6.3.3` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.0` | `5.104.2` |\n| [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.104.0` | `5.104.2` |\n| [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) | `3.14.13` | `3.14.19` |\n| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.16` | `3.4.17` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.49.0` | `1.57.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.8` | `16.4.0` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.7` | `14.6.8` |\n| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.1.1` | `6.1.2` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.1` | `30.1.2` |\n| [postcss](https://github.com/postcss/postcss) | `8.5.28` | `8.5.30` |\n| [radix-ui](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/radix-ui) | `1.6.7` | `1.8.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n\n\nUpdates `eslint` from 10.11.0 to 10.12.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.12.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4618052eed6bb3ef420cf0db0490bbda2fd835a5\"\u003e\u003ccode\u003e4618052\u003c/code\u003e\u003c/a\u003e feat: handle astral letters in \u003ccode\u003enew-cap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21357\"\u003e#21357\u003c/a\u003e) (sary)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/4ec5168d6d6888e3f7b163eb82963d40e45a75fa\"\u003e\u003ccode\u003e4ec5168\u003c/code\u003e\u003c/a\u003e feat: allow \u003ccode\u003eSourceCode#getText()\u003c/code\u003e to accept tokens and comments (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21340\"\u003e#21340\u003c/a\u003e) (electrohyun)\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/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7\"\u003e\u003ccode\u003ebc51eee\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eprefer-arrow-callback\u003c/code\u003e false positive in conditional test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21373\"\u003e#21373\u003c/a\u003e) (Daniel Pinto)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bbff86c41521cc435e20754e26007f657a843038\"\u003e\u003ccode\u003ebbff86c\u003c/code\u003e\u003c/a\u003e fix: skip lines with multiple comments in \u003ccode\u003emax-lines-per-function\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21332\"\u003e#21332\u003c/a\u003e) (xbinaryx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/efc4d6bdc4c4d1dfba8bdab6a8f44f27a1b1d00a\"\u003e\u003ccode\u003eefc4d6b\u003c/code\u003e\u003c/a\u003e fix: astral letters in \u003ccode\u003econsistent-return\u003c/code\u003e, \u003ccode\u003eno-eval\u003c/code\u003e, \u003ccode\u003eno-invalid-this\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21360\"\u003e#21360\u003c/a\u003e) (lumir)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/93de066d4125f8df013d40305e8009f4634a5cba\"\u003e\u003ccode\u003e93de066\u003c/code\u003e\u003c/a\u003e fix: prefer-exponentiation-operator autofix for async function base (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21322\"\u003e#21322\u003c/a\u003e) (Vladimir Babin)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/02e34ffba6adbed72365177c7caee71d950834e5\"\u003e\u003ccode\u003e02e34ff\u003c/code\u003e\u003c/a\u003e fix: add missing space after \u003ccode\u003eelse\u003c/code\u003e in \u003ccode\u003ecurly\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21355\"\u003e#21355\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b14b8bc213ccfc19d3edcfa9ce6af62622661160\"\u003e\u003ccode\u003eb14b8bc\u003c/code\u003e\u003c/a\u003e fix: correct \u003ccode\u003eid-length\u003c/code\u003e message for long private names (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21348\"\u003e#21348\u003c/a\u003e) (Pixel)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/69aac01d898837a934c9e735e0b7881cc1df09e8\"\u003e\u003ccode\u003e69aac01\u003c/code\u003e\u003c/a\u003e fix: support \u003ccode\u003eTSFunctionType\u003c/code\u003e in \u003ccode\u003egetFunctionHeadLoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21335\"\u003e#21335\u003c/a\u003e) (xbinaryx)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/686630eb34ec1cddf399a4e6eaeebb080116a532\"\u003e\u003ccode\u003e686630e\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eno-loss-of-precision\u003c/code\u003e false positive with \u003ccode\u003e0.e5\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21337\"\u003e#21337\u003c/a\u003e) (sethamus)\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/67eb586e2eda290813b329d4f40e605ad696bc4f\"\u003e\u003ccode\u003e67eb586\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/5370d7ee35a6523873f798e87f3ccc73779d5d21\"\u003e\u003ccode\u003e5370d7e\u003c/code\u003e\u003c/a\u003e docs: clarify \u003ccode\u003eone-var\u003c/code\u003e \u003ccode\u003eseparateRequires\u003c/code\u003e matches any \u003ccode\u003erequire()\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21192\"\u003e#21192\u003c/a\u003e) (sethamus)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/8816c1ddfcfa31318ad17cddcfb68acffa30940f\"\u003e\u003ccode\u003e8816c1d\u003c/code\u003e\u003c/a\u003e docs: Update README (GitHub Actions Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3d2e7cedb7409d8a2c5f2c2fafb14fa22790e40e\"\u003e\u003ccode\u003e3d2e7ce\u003c/code\u003e\u003c/a\u003e docs: fix typo in no-unused-expressions documentation (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21346\"\u003e#21346\u003c/a\u003e) (bytedoe)\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/152067f0f81f08b6cce9cf8eeaddb8558731b4f6\"\u003e\u003ccode\u003e152067f\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21362\"\u003e#21362\u003c/a\u003e) (ESLint Bot)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b56d58e0b1f3c919a6b7661254af760cdd909d6e\"\u003e\u003ccode\u003eb56d58e\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.2 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21376\"\u003e#21376\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bfaea12ddc30b458fe4cfbb6c306a62b5299c177\"\u003e\u003ccode\u003ebfaea12\u003c/code\u003e\u003c/a\u003e perf: cache normalized config globals per languageOptions (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21364\"\u003e#21364\u003c/a\u003e) (James Ross)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/322209ef164e8a00a25ec7ca166969ddc853355c\"\u003e\u003ccode\u003e322209e\u003c/code\u003e\u003c/a\u003e ci: avoid Nx cache in ecosystem tests and disable failing test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21369\"\u003e#21369\u003c/a\u003e) (Francesco Trotta)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d166567901e09940c1de4ad0e95d572eeab5c927\"\u003e\u003ccode\u003ed166567\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.9 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21371\"\u003e#21371\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/29585ceba7ad35368d1b763bd1e80d899f28842c\"\u003e\u003ccode\u003e29585ce\u003c/code\u003e\u003c/a\u003e chore: update dependency eslint-plugin-expect-type to ^0.7.0 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21359\"\u003e#21359\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/39d79ba9650542ac66d585d1899304abd630c07d\"\u003e\u003ccode\u003e39d79ba\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.1 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21354\"\u003e#21354\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/182a6e993a8a5dbdad5a628b69ad7382d48bf24f\"\u003e\u003ccode\u003e182a6e9\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.8 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21352\"\u003e#21352\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/f995127230dad258069c29b7f51971681bd53f00\"\u003e\u003ccode\u003ef995127\u003c/code\u003e\u003c/a\u003e chore: remove CLAUDE.md in favor of AGENTS.md (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21339\"\u003e#21339\u003c/a\u003e) (Jarren)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b95fb6cb335f82a0ccabb0944ac3b89c703bd947\"\u003e\u003ccode\u003eb95fb6c\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.7 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21347\"\u003e#21347\u003c/a\u003e) (renovate[bot])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/3782dd458fdfbe492e600d9a54b295a9721ed815\"\u003e\u003ccode\u003e3782dd4\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21342\"\u003e#21342\u003c/a\u003e) (ESLint Bot)\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/a438ec39512c3381f4785a1f3058982ce9845970\"\u003e\u003ccode\u003ea438ec3\u003c/code\u003e\u003c/a\u003e 10.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/32a73f144198510e23c40c5ca6808e2c09b7e5e5\"\u003e\u003ccode\u003e32a73f1\u003c/code\u003e\u003c/a\u003e Build: changelog update for 10.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7\"\u003e\u003ccode\u003ebc51eee\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eprefer-arrow-callback\u003c/code\u003e false positive in conditional test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21373\"\u003e#21373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bbff86c41521cc435e20754e26007f657a843038\"\u003e\u003ccode\u003ebbff86c\u003c/code\u003e\u003c/a\u003e fix: skip lines with multiple comments in \u003ccode\u003emax-lines-per-function\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21332\"\u003e#21332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/152067f0f81f08b6cce9cf8eeaddb8558731b4f6\"\u003e\u003ccode\u003e152067f\u003c/code\u003e\u003c/a\u003e chore: update ecosystem plugins (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21362\"\u003e#21362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/b56d58e0b1f3c919a6b7661254af760cdd909d6e\"\u003e\u003ccode\u003eb56d58e\u003c/code\u003e\u003c/a\u003e chore: update github/codeql-action action to v4.38.2 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21376\"\u003e#21376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/67eb586e2eda290813b329d4f40e605ad696bc4f\"\u003e\u003ccode\u003e67eb586\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/bfaea12ddc30b458fe4cfbb6c306a62b5299c177\"\u003e\u003ccode\u003ebfaea12\u003c/code\u003e\u003c/a\u003e perf: cache normalized config globals per languageOptions (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21364\"\u003e#21364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/322209ef164e8a00a25ec7ca166969ddc853355c\"\u003e\u003ccode\u003e322209e\u003c/code\u003e\u003c/a\u003e ci: avoid Nx cache in ecosystem tests and disable failing test (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eslint/eslint/commit/d166567901e09940c1de4ad0e95d572eeab5c927\"\u003e\u003ccode\u003ed166567\u003c/code\u003e\u003c/a\u003e chore: update dependency prettier to v3.9.9 (\u003ca href=\"https://redirect.github.com/eslint/eslint/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/eslint/eslint/compare/v10.11.0...v10.12.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.9.9 to 3.9.10\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.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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.10/CHANGELOG.md#3910\"\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.10\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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\u003eSee \u003ca href=\"https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\"\u003ehttps://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\u003c/a\u003e for details.\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/prettier/prettier/commit/1172b82c295c4f889fd787dc6c78c3e194ebf353\"\u003e\u003ccode\u003e1172b82\u003c/code\u003e\u003c/a\u003e Release 3.9.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d0142273aff2c76f8a69785d42ee2cedc4b0aaa3\"\u003e\u003ccode\u003ed014227\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on perfor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/953b9084329dcd06ed1072a04b333f1e6e9371e8\"\u003e\u003ccode\u003e953b908\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.9.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ad8a6bf4fa23c42fd114683fec43b28a11bd24af\"\u003e\u003ccode\u003ead8a6bf\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.71.0 to 8.71.2\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.71.2\u003c/h2\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] avoid false-positives when not using our parser (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12989\"\u003e#12989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type templates (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12974\"\u003e#12974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] ignore type-only refs for after-used (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12977\"\u003e#12977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] parenthesize constraint in optional tuple elements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12995\"\u003e#12995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] safe fix when the chain ends with a strict null comparison (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12805\"\u003e#12805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match linked packages and packages with missing version in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12948\"\u003e#12948\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAbraham Guo\u003c/li\u003e\n\u003cli\u003eBrad Zacher \u003ca href=\"https://github.com/bradzacher\"\u003e\u003ccode\u003e@​bradzacher\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eVinccool96\u003c/li\u003e\n\u003cli\u003eYounsang Na \u003ca href=\"https://github.com/nayounsang\"\u003e\u003ccode\u003e@​nayounsang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.2\"\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.71.1\u003c/h2\u003e\n\u003ch2\u003e8.71.1 (2026-10-05)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-misused-promises] skip argument checks for calls without arguments (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12923\"\u003e#12923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] report usedOnlyAsType for partially exported merged declarations (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12892\"\u003e#12892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [require-array-sort-compare] use array argument type constraint (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-enum-assignment] skip identical types and bound deep type walks (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12957\"\u003e#12957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-confusing-void-expression] don't autofix when declared return type is unknown (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] check the constrained type (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12953\"\u003e#12953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type constraints (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12941\"\u003e#12941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eproject-service:\u003c/strong\u003e throttle cleanup when opening files (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12934\"\u003e#12934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match re-exports and global declarations in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12943\"\u003e#12943\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiptajoy Mistry \u003ca href=\"https://github.com/diptomistry\"\u003e\u003ccode\u003e@​diptomistry\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eJosh Goldberg ✨\u003c/li\u003e\n\u003cli\u003eMedhansh Poojari\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.1\"\u003eGitHub Releases\u003c/a\u003e for more information.\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/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.2\"\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.71.1 (2026-10-05)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.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\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/typescript-eslint/typescript-eslint/commit/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb\"\u003e\u003ccode\u003e7488d68\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/d57b8da272375b6a45270639894a793933208a91\"\u003e\u003ccode\u003ed57b8da\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.2/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitest/coverage-v8` from 5.0.2 to 5.0.4\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\"\u003e@​vitest/coverage-v8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eClose the mock route interception race  -  by \u003ca href=\"https://github.com/cplieger\"\u003e\u003ccode\u003e@​cplieger\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/8339\"\u003evitest-dev/vitest#8339\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11083\"\u003evitest-dev/vitest#11083\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d6620fae6\"\u003e\u003c!-- raw HTML omitted --\u003e(d6620)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow toHaveTextContent without arguments  -  by \u003ca href=\"https://github.com/nomadical\"\u003e\u003ccode\u003e@​nomadical\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11425\"\u003evitest-dev/vitest#11425\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8ebcf5f8a\"\u003e\u003c!-- raw HTML omitted --\u003e(8ebcf)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply API options without browser config  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10852\"\u003evitest-dev/vitest#10852\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad055837b\"\u003e\u003c!-- raw HTML omitted --\u003e(ad055)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve undefined command arguments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11497\"\u003evitest-dev/vitest#11497\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1576d3d89\"\u003e\u003c!-- raw HTML omitted --\u003e(1576d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for setup mocks before importing a test file  -  by \u003ca href=\"https://github.com/kasperpeulen\"\u003e\u003ccode\u003e@​kasperpeulen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11520\"\u003evitest-dev/vitest#11520\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b61d1ced3\"\u003e\u003c!-- raw HTML omitted --\u003e(b61d1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid extra scroll outside the iframe  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11523\"\u003evitest-dev/vitest#11523\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/662e8a363\"\u003e\u003c!-- raw HTML omitted --\u003e(662e8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun browser instances as workers  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11525\"\u003evitest-dev/vitest#11525\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc\"\u003e\u003c!-- raw HTML omitted --\u003e(bf04b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ This can degrade performance if you have a custom \u003ccode\u003emaxWorkers\u003c/code\u003e setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen one cdp session per tester  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11542\"\u003evitest-dev/vitest#11542\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/69e6369f6\"\u003e\u003c!-- raw HTML omitted --\u003e(69e63)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up unmocked and pending mocks  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11537\"\u003evitest-dev/vitest#11537\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c9552173\"\u003e\u003c!-- raw HTML omitted --\u003e(5c955)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecoverage\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eV8 browser memory leak between test files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11466\"\u003evitest-dev/vitest#11466\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a8\"\u003e\u003c!-- raw HTML omitted --\u003e(2297d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11513\"\u003evitest-dev/vitest#11513\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a93\"\u003e\u003c!-- raw HTML omitted --\u003e(4ef00)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFilenames containing brackets incorrectly showing as uncovered  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11531\"\u003evitest-dev/vitest#11531\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c\"\u003e\u003c!-- raw HTML omitted --\u003e(0fa80)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIstanbul coverage wrong when module transform warmups  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11529\"\u003evitest-dev/vitest#11529\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9f61dcca2\"\u003e\u003c!-- raw HTML omitted --\u003e(9f61d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eUpdate all non-major dependencies  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11167\"\u003evitest-dev/vitest#11167\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9\"\u003e\u003c!-- raw HTML omitted --\u003e(c74e0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexpect\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMap\u003c/code\u003e and \u003ccode\u003eSet\u003c/code\u003e deep equality in some assertions  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11402\"\u003evitest-dev/vitest#11402\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b4e79fd7a\"\u003e\u003c!-- raw HTML omitted --\u003e(b4e79)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck value in chai-style returned  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11500\"\u003evitest-dev/vitest#11500\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1aca02a21\"\u003e\u003c!-- raw HTML omitted --\u003e(1aca0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emocker\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix native loader mocking edge cases  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11540\"\u003evitest-dev/vitest#11540\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/cd423ba04\"\u003e\u003c!-- raw HTML omitted --\u003e(cd423)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epretty-format\u003c/strong\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/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a854968d2ffee6025700c69099e6b7f80\"\u003e\u003ccode\u003e2297d93\u003c/code\u003e\u003c/a\u003e fix(coverage): v8 browser memory leak between test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11466\"\u003e#11466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9d17e24e9816878165af4818df84a631\"\u003e\u003ccode\u003ec74e099\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11167\"\u003e#11167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/33cadea62e8763c455c7fca38d9ab1dda87c5f75\"\u003e\u003ccode\u003e33cadea\u003c/code\u003e\u003c/a\u003e chore: release v5.0.3 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11409\"\u003e#11409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/a029e76a9e72ebdd468452ee1bb788bbe5dc635e\"\u003e\u003ccode\u003ea029e76\u003c/code\u003e\u003c/a\u003e chore: migrate to oxc (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11367\"\u003e#11367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.4/packages/coverage-v8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 5.0.2 to 5.0.4\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\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eClose the mock route interception race  -  by \u003ca href=\"https://github.com/cplieger\"\u003e\u003ccode\u003e@​cplieger\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/8339\"\u003evitest-dev/vitest#8339\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11083\"\u003evitest-dev/vitest#11083\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d6620fae6\"\u003e\u003c!-- raw HTML omitted --\u003e(d6620)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow toHaveTextContent without arguments  -  by \u003ca href=\"https://github.com/nomadical\"\u003e\u003ccode\u003e@​nomadical\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11425\"\u003evitest-dev/vitest#11425\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8ebcf5f8a\"\u003e\u003c!-- raw HTML omitted --\u003e(8ebcf)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply API options without browser config  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/10852\"\u003evitest-dev/vitest#10852\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad055837b\"\u003e\u003c!-- raw HTML omitted --\u003e(ad055)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve undefined command arguments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11497\"\u003evitest-dev/vitest#11497\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1576d3d89\"\u003e\u003c!-- raw HTML omitted --\u003e(1576d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for setup mocks before importing a test file  -  by \u003ca href=\"https://github.com/kasperpeulen\"\u003e\u003ccode\u003e@​kasperpeulen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11520\"\u003evitest-dev/vitest#11520\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b61d1ced3\"\u003e\u003c!-- raw HTML omitted --\u003e(b61d1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid extra scroll outside the iframe  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11523\"\u003evitest-dev/vitest#11523\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/662e8a363\"\u003e\u003c!-- raw HTML omitted --\u003e(662e8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun browser instances as workers  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11525\"\u003evitest-dev/vitest#11525\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc\"\u003e\u003c!-- raw HTML omitted --\u003e(bf04b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e⚠️ This can degrade performance if you have a custom \u003ccode\u003emaxWorkers\u003c/code\u003e setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOpen one cdp session per tester  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11542\"\u003evitest-dev/vitest#11542\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/69e6369f6\"\u003e\u003c!-- raw HTML omitted --\u003e(69e63)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up unmocked and pending mocks  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11537\"\u003evitest-dev/vitest#11537\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5c9552173\"\u003e\u003c!-- raw HTML omitted --\u003e(5c955)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecoverage\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eV8 browser memory leak between test files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11466\"\u003evitest-dev/vitest#11466\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a8\"\u003e\u003c!-- raw HTML omitted --\u003e(2297d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11513\"\u003evitest-dev/vitest#11513\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a93\"\u003e\u003c!-- raw HTML omitted --\u003e(4ef00)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFilenames containing brackets incorrectly showing as uncovered  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11531\"\u003evitest-dev/vitest#11531\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c\"\u003e\u003c!-- raw HTML omitted --\u003e(0fa80)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIstanbul coverage wrong when module transform warmups  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11529\"\u003evitest-dev/vitest#11529\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9f61dcca2\"\u003e\u003c!-- raw HTML omitted --\u003e(9f61d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eUpdate all non-major dependencies  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11167\"\u003evitest-dev/vitest#11167\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9\"\u003e\u003c!-- raw HTML omitted --\u003e(c74e0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexpect\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMap\u003c/code\u003e and \u003ccode\u003eSet\u003c/code\u003e deep equality in some assertions  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11402\"\u003evitest-dev/vitest#11402\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b4e79fd7a\"\u003e\u003c!-- raw HTML omitted --\u003e(b4e79)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck value in chai-style returned  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11500\"\u003evitest-dev/vitest#11500\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1aca02a21\"\u003e\u003c!-- raw HTML omitted --\u003e(1aca0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emocker\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix native loader mocking edge cases  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11540\"\u003evitest-dev/vitest#11540\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/cd423ba04\"\u003e\u003c!-- raw HTML omitted --\u003e(cd423)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epretty-format\u003c/strong\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/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/58c86edb92ec4d470dc87c060002cbd5725900de\"\u003e\u003ccode\u003e58c86ed\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11550\"\u003e#11550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/0fa80f53c2afa3429ead7f357f0ad266b39b240a\"\u003e\u003ccode\u003e0fa80f5\u003c/code\u003e\u003c/a\u003e fix(coverage): filenames containing brackets incorrectly showing as uncovered...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/bf04b9ccc7235949e63490d310cdca00e61b3e4a\"\u003e\u003ccode\u003ebf04b9c\u003c/code\u003e\u003c/a\u003e fix(browser): run browser instances as workers (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11525\"\u003e#11525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/3e3624c5e5ecf77b20065da1aeb60f1182db0ccd\"\u003e\u003ccode\u003e3e3624c\u003c/code\u003e\u003c/a\u003e refactor: resolve maxWorkers once in config (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11524\"\u003e#11524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f7936e04ec2591ad1d9b3500642423ba8ce\"\u003e\u003ccode\u003e26642f7\u003c/code\u003e\u003c/a\u003e fix: respect root in projects (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11521\"\u003e#11521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8419ca4ea14a8808aedc8b0120111f81\"\u003e\u003ccode\u003ec06012a\u003c/code\u003e\u003c/a\u003e feat(experimental): add an option to cache dependencies instead of statically...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/4ef000a938ca3e54eee1c8dd02e2eb9b1afff0c3\"\u003e\u003ccode\u003e4ef000a\u003c/code\u003e\u003c/a\u003e fix(coverage): \u003ccode\u003eallowExternal\u003c/code\u003e fails to include uncovered files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11513\"\u003e#11513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d5e979299601a8c7fd13fb0f78e74495\"\u003e\u003ccode\u003e1da6640\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003etest.ui.theme\u003c/code\u003e option (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11499\"\u003e#11499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/b618afd5cce6a903ca16e0dd9c8f00b58bb0b474\"\u003e\u003ccode\u003eb618afd\u003c/code\u003e\u003c/a\u003e fix(vm): bind \u003ccode\u003ethis\u003c/code\u003e to \u003ccode\u003emodule.exports\u003c/code\u003e (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11504\"\u003e#11504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.4/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@anthropic-ai/sdk` from 0.130.0 to 0.133.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.133.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add types for the Chat and Cowork unified analytics metrics\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add workflows, multiagent configuration and thread status filtering to Managed Agents\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk-v0.132.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw before sending a request with an empty path parameter\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e check that pull requests update the changelog\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e publish every package from the publish workflow\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e note that listing Claude Console spend limits is in early access\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esplit CLAUDE.md into shared, TypeScript, and repository rules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk: v0.132.0\u003c/h2\u003e\n\u003ch2\u003e0.132.0 (2026-10-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.131.0...sdk-v0.132.0\"\u003esdk-v0.131.0...sdk-v0.132.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-haiku-5-5 and typed computer and browser toolset tool calls (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1fd826175b5742df1dc9fd69db708be1434fdc15\"\u003e1fd8261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add disabled to thinking types in model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add display_name to RBAC roles and deprecate name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7735ac3d2823c6d74377269772a5ae2b1ed939dc\"\u003e7735ac3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add include_default parameter to list workspaces (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c4019df3ad38e1ce985c1d8177c815ae36528d61\"\u003ec4019df\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add lifecycle stage fields and filter to /v1/models (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/fe8a762e0cdbc01aa2b4161865f44cdab70f502c\"\u003efe8a762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add line to model objects (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/018aed463f7125ef7c8ee6eec2fd3610be585cc4\"\u003e018aed4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add url_sources to the Managed Agents web_fetch tool config (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web search and code execution support to model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e send the beta header by default when listing spend limits (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8f58ca41ae4097e82fe0efccfae94e0b7c5719b1\"\u003e8f58ca4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw when a JSONL stream is iterated twice (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/a34266cf1ed3483eae7d44d275f761ab29d79748\"\u003ea34266c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e keep a local edit made after a memory upload whose response was lost (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/893\"\u003e#893\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\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/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\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.1...sdk-v0.133.0\"\u003e0.133.0\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add types for the Chat and Cowork unified analytics metrics\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add workflows, multiagent configuration and thread status filtering to Managed Agents\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.0...sdk-v0.132.1\"\u003e0.132.1\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw before sending a request with an empty path parameter\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e check that pull requests update the changelog\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e publish every package from the publish workflow\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e note that listing Claude Console spend limits is in early access\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esplit CLAUDE.md into shared, TypeScript, and repository rules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.0 (2026-10-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.131.0...sdk-v0.132.0\"\u003esdk-v0.131.0...sdk-v0.132.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-haiku-5-5 and typed computer and browser toolset tool calls (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1fd826175b5742df1dc9fd69db708be1434fdc15\"\u003e1fd8261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add disabled to thinking types in model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add display_name to RBAC roles and deprecate name (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7735ac3d2823c6d74377269772a5ae2b1ed939dc\"\u003e7735ac3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add include_default parameter to list workspaces (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/c4019df3ad38e1ce985c1d8177c815ae36528d61\"\u003ec4019df\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add lifecycle stage fields and filter to /v1/models (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/fe8a762e0cdbc01aa2b4161865f44cdab70f502c\"\u003efe8a762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add line to model objects (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/018aed463f7125ef7c8ee6eec2fd3610be585cc4\"\u003e018aed4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add url_sources to the Managed Agents web_fetch tool config (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web search and code execution support to model capabilities (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/2b75b497792ab23c7cac350829354a0027a93246\"\u003e2b75b49\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e send the beta header by default when listing spend limits (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8f58ca41ae4097e82fe0efccfae94e0b7c5719b1\"\u003e8f58ca4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e throw when a JSONL stream is iterated twice (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/a34266cf1ed3483eae7d44d275f761ab29d79748\"\u003ea34266c\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/anthropics/anthropic-sdk-typescript/commit/2979ed5cef4b2f059b95af23e08728c01e588f86\"\u003e\u003ccode\u003e2979ed5\u003c/code\u003e\u003c/a\u003e release: . 0.133.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/8486d9bd224fb0c53fca05f54c5f9df5ed29b38f\"\u003e\u003ccode\u003e8486d9b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/908\"\u003e#908\u003c/a\u003e from anthropics/synced/published\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/e0995e4bdea11b383c3df0882888045cc2a25636\"\u003e\u003ccode\u003ee0995e4\u003c/code\u003e\u003c/a\u003e feat(api): add workflows, multiagent configuration and thread status filterin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/31eb3bea68ead3e8935aeef673a2b419c0e43002\"\u003e\u003ccode\u003e31eb3be\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/5127b320bd571d40e78f1cec50a0f81d14e560ce\"\u003e\u003ccode\u003e5127b32\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f702a46d872f8c27c7f641e34217447e86139dec\"\u003e\u003ccode\u003ef702a46\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d64e976b4e36539865928bc048eaee821d60f935\"\u003e\u003ccode\u003ed64e976\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/9f754653fd2acab2b49d626552132c7711c1125f\"\u003e\u003ccode\u003e9f75465\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/6ec2ea17ac78fa99452afaea2c78783bd6e55870\"\u003e\u003ccode\u003e6ec2ea1\u003c/code\u003e\u003c/a\u003e chore(internal): remove the next branch rule from CLAUDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/373c33dedf525512d376bccdf16f7ab50f9ef39e\"\u003e\u003ccode\u003e373c33d\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.130.0...sdk-v0.133.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@aws-sdk/client-cost-explorer` from 3.1144.0 to 3.1151.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease note...\n\n_Description has been truncated_","html_url":"https://github.com/openzigs/metis/pull/1328","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openzigs%2Fmetis/issues/1328","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1328/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":null,"pr_created_at":"2026-10-21T12:53:48.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5960877433","node_id":"PR_kwDOVSMAUc8AAAABJye9CA","number":8,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-22T05:32:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T12:53:48.000Z","updated_at":"2026-10-22T05:32:49.000Z","time_to_close":59938,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/9174pradeep/memory-game/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/9174pradeep%2Fmemory-game/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-21T10:14:44.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5958587330","node_id":"PR_kwDOKtSG8M8AAAABJwo5Ng","number":935,"state":"closed","title":"chore(deps): bump express from 5.2.1 to 5.3.0","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-22T12:18:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-21T10:14:44.000Z","updated_at":"2026-10-22T12:18:39.000Z","time_to_close":93803,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/navikt/pensjon-verdande/pull/935","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-verdande/issues/935","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/935/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":null,"pr_created_at":"2026-10-20T02:54:14.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5935089202","node_id":"PR_kwDOS189Hc8AAAABJd7EsQ","number":72,"state":"open","title":"chore(deps): bump the all-backend-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-20T02:54:14.000Z","updated_at":"2026-10-20T02:54:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-backend-deps","update_count":14,"packages":[{"name":"@sentry/node","old_version":"11.4.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"body-parser","old_version":"1.20.8","new_version":"2.3.0","repository_url":"https://github.com/expressjs/body-parser"},{"name":"dotenv","old_version":"18.0.5","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"@types/express","old_version":"4.17.25","new_version":"5.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"nodemailer","old_version":"10.0.14","new_version":"10.1.2","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@types/express","old_version":"4.17.25","new_version":"5.0.6","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"26.6.4","new_version":"26.6.5","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@vitest/coverage-v8","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"eslint","old_version":"10.12.0","new_version":"10.13.0","repository_url":"https://github.com/eslint/eslint"},{"name":"typescript","old_version":"6.0.3","new_version":"7.0.2","repository_url":"https://github.com/microsoft/TypeScript"},{"name":"typescript-eslint","old_version":"8.71.0","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"}],"path":null,"ecosystem":"npm"},"body":"Bumps the all-backend-deps group with 14 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@sentry/node](https://github.com/getsentry/sentry-javascript) | `11.4.0` | `11.8.0` |\n| [body-parser](https://github.com/expressjs/body-parser) | `1.20.8` | `2.3.0` |\n| [dotenv](https://github.com/motdotla/dotenv) | `18.0.5` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.3` | `5.3.0` |\n| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) | `4.17.25` | `5.0.6` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.14` | `10.1.2` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) | `4.17.25` | `5.0.6` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.6.4` | `26.6.5` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.3` | `5.0.5` |\n| [eslint](https://github.com/eslint/eslint) | `10.12.0` | `10.13.0` |\n| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.0` | `8.71.2` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n\n\nUpdates `@sentry/node` from 11.4.0 to 11.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-javascript/releases\"\u003e@​sentry/node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.8.0\u003c/h2\u003e\n\u003ch3\u003eImportant Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(bundler-plugins): Release \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/vite-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/rollup-plugin\u003c/code\u003e and \u003ccode\u003e@sentry/esbuild-plugin\u003c/code\u003e from the SDK repository (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25095\"\u003e#25095\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching \u003ccode\u003e@sentry/bundler-plugins\u003c/code\u003e entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js 20.19.0 or higher is required.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e requires webpack 5.1 or higher. The \u003ccode\u003e@sentry/webpack-plugin/webpack5\u003c/code\u003e entry point still works and exports the same plugin as \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe plugins use the \u003ccode\u003esentry\u003c/code\u003e CLI SDK instead of \u003ccode\u003e@sentry/cli\u003c/code\u003e. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work.\u003c/li\u003e\n\u003cli\u003eDeploys that the plugins create on Vercel use the value of \u003ccode\u003eVERCEL_TARGET_ENV\u003c/code\u003e (\u003ccode\u003eproduction\u003c/code\u003e, \u003ccode\u003epreview\u003c/code\u003e or a custom name) as their environment, instead of \u003ccode\u003evercel-production\u003c/code\u003e or \u003ccode\u003evercel-preview\u003c/code\u003e. To keep the old value, set \u003ccode\u003erelease.deploy.env\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(server-utils): Instrument the OpenAI decisions API as \u003ccode\u003egen_ai.decide\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25285\"\u003e#25285\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOpenAI \u003ccode\u003edecisions.create\u003c/code\u003e calls now create \u003ccode\u003egen_ai.decide\u003c/code\u003e spans.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Delete generated source maps for static output (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25310\"\u003e#25310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Upload source maps of Astro 7's prerender build (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25309\"\u003e#25309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(hono): Expose runtime-specific SDK options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(node): Instrument Prisma 8 CollectionBase from rc.15 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25301\"\u003e#25301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(nuxt): Skip 3xx/4xx Nuxt errors in the vue:error hook (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25341\"\u003e#25341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Read pi-durable 1.2.0 tool results from \u003ccode\u003eoutput\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25312\"\u003e#25312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Transform modules once when two Sentry Vite plugins add orchestrion (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25043\"\u003e#25043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Keep parametrized route names in Nitro 3 builds (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25307\"\u003e#25307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Rewrite source paths of split route modules (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25361\"\u003e#25361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003echore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Install the pnpm version that Volta pins (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25287\"\u003e#25287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elicense: Add cli FSL notice to package licenses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25314\"\u003e#25314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(core): use shared MCP attribute conventions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25059\"\u003e#25059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(tanstackstart-react): Reuse shared component annotation options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25313\"\u003e#25313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(browser): Keep whitespace text out of the handlers-lcp page (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25280\"\u003e#25280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bun): Restore \u003ccode\u003e@​sentry/core\u003c/code\u003e spies after the Bun.serve tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25276\"\u003e#25276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-decisions-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25331\"\u003e#25331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/24824\"\u003e#24824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add nuxt-5-sourcemaps test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25268\"\u003e#25268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Use an external host address for the Lambda DSN on loopback hostnames (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Run nextjs-16-tunnel on Cloudflare (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25161\"\u003e#25161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Switch DEBUG_BUILD with a getter instead of re-importing the SDK (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25279\"\u003e#25279\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/getsentry/sentry-javascript/blob/develop/CHANGELOG.md\"\u003e@​sentry/node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.8.0\u003c/h2\u003e\n\u003ch3\u003eImportant Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(bundler-plugins): Release \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/vite-plugin\u003c/code\u003e, \u003ccode\u003e@sentry/rollup-plugin\u003c/code\u003e and \u003ccode\u003e@sentry/esbuild-plugin\u003c/code\u003e from the SDK repository (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25095\"\u003e#25095\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching \u003ccode\u003e@sentry/bundler-plugins\u003c/code\u003e entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js 20.19.0 or higher is required.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e requires webpack 5.1 or higher. The \u003ccode\u003e@sentry/webpack-plugin/webpack5\u003c/code\u003e entry point still works and exports the same plugin as \u003ccode\u003e@sentry/webpack-plugin\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe plugins use the \u003ccode\u003esentry\u003c/code\u003e CLI SDK instead of \u003ccode\u003e@sentry/cli\u003c/code\u003e. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work.\u003c/li\u003e\n\u003cli\u003eDeploys that the plugins create on Vercel use the value of \u003ccode\u003eVERCEL_TARGET_ENV\u003c/code\u003e (\u003ccode\u003eproduction\u003c/code\u003e, \u003ccode\u003epreview\u003c/code\u003e or a custom name) as their environment, instead of \u003ccode\u003evercel-production\u003c/code\u003e or \u003ccode\u003evercel-preview\u003c/code\u003e. To keep the old value, set \u003ccode\u003erelease.deploy.env\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003efeat(server-utils): Instrument the OpenAI decisions API as \u003ccode\u003egen_ai.decide\u003c/code\u003e spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25285\"\u003e#25285\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOpenAI \u003ccode\u003edecisions.create\u003c/code\u003e calls now create \u003ccode\u003egen_ai.decide\u003c/code\u003e spans.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Delete generated source maps for static output (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25310\"\u003e#25310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(astro): Upload source maps of Astro 7's prerender build (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25309\"\u003e#25309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(hono): Expose runtime-specific SDK options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(node): Instrument Prisma 8 CollectionBase from rc.15 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25301\"\u003e#25301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(nuxt): Skip 3xx/4xx Nuxt errors in the vue:error hook (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25341\"\u003e#25341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Read pi-durable 1.2.0 tool results from \u003ccode\u003eoutput\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25312\"\u003e#25312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(server-utils): Transform modules once when two Sentry Vite plugins add orchestrion (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25043\"\u003e#25043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Keep parametrized route names in Nitro 3 builds (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25307\"\u003e#25307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(tanstackstart-react): Rewrite source paths of split route modules (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25361\"\u003e#25361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003echore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Install the pnpm version that Volta pins (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25287\"\u003e#25287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elicense: Add cli FSL notice to package licenses (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25314\"\u003e#25314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(core): use shared MCP attribute conventions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25059\"\u003e#25059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eref(tanstackstart-react): Reuse shared component annotation options (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25313\"\u003e#25313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(browser): Keep whitespace text out of the handlers-lcp page (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25280\"\u003e#25280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bun): Restore \u003ccode\u003e@​sentry/core\u003c/code\u003e spies after the Bun.serve tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25276\"\u003e#25276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-decisions-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25331\"\u003e#25331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add node-openai-send-to-sentry test app (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/24824\"\u003e#24824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Add nuxt-5-sourcemaps test (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25268\"\u003e#25268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(e2e): Use an external host address for the Lambda DSN on loopback hostnames (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(nextjs): Run nextjs-16-tunnel on Cloudflare (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/pull/25161\"\u003e#25161\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/getsentry/sentry-javascript/commit/c6492ef78c7bfb97931e43075763ce84ee8fda7e\"\u003e\u003ccode\u003ec6492ef\u003c/code\u003e\u003c/a\u003e release: 11.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/e091f7f0713c5eacdad519abbc20bf8523119760\"\u003e\u003ccode\u003ee091f7f\u003c/code\u003e\u003c/a\u003e meta(changelog): Update changelog for 11.8.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25388\"\u003e#25388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/30ec7548ee289d50b13e997142607229aba8957b\"\u003e\u003ccode\u003e30ec754\u003c/code\u003e\u003c/a\u003e meta(changelog): Update changelog for 11.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/a309cf8ea6ffe4f5ba2523137184138c16e39906\"\u003e\u003ccode\u003ea309cf8\u003c/code\u003e\u003c/a\u003e test(bundler-plugins): Disable CLI telemetry in the CLI contract tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25308\"\u003e#25308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/71f1ef954dd1cd1168e21c4a84a5d52f8b7943a9\"\u003e\u003ccode\u003e71f1ef9\u003c/code\u003e\u003c/a\u003e test(e2e): Inherit root Volta config in all e2e test apps (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25369\"\u003e#25369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/e54e577ded87006c778bde1cb6a78f1dd043922f\"\u003e\u003ccode\u003ee54e577\u003c/code\u003e\u003c/a\u003e chore: Add external contributor to CHANGELOG.md (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25375\"\u003e#25375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/0ed4606d53844053bef9cd9f59489163677b5163\"\u003e\u003ccode\u003e0ed4606\u003c/code\u003e\u003c/a\u003e fix(sveltekit): add op and origin to Kit's \u003ccode\u003esveltekit.endpoint\u003c/code\u003e span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25376\"\u003e#25376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/9516aeb8509fab96b433792bb183f2fec04f003a\"\u003e\u003ccode\u003e9516aeb\u003c/code\u003e\u003c/a\u003e fix(cloudflare): auto-instrument when wrangler \u003ccode\u003emain\u003c/code\u003e is a package (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25343\"\u003e#25343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/747134758f4f6cb9ab522aa03bdf5a188ffe958c\"\u003e\u003ccode\u003e7471347\u003c/code\u003e\u003c/a\u003e feat(core): Support SuppressedError in LinkedErrors integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25246\"\u003e#25246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-javascript/commit/f4ae6c55220f1dd36d253d005ef290a9b1e46d7e\"\u003e\u003ccode\u003ef4ae6c5\u003c/code\u003e\u003c/a\u003e fix(browser): Apply \u003ccode\u003eurlQueryParams\u003c/code\u003e to the Referer header (\u003ca href=\"https://redirect.github.com/getsentry/sentry-javascript/issues/25324\"\u003e#25324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-javascript/compare/11.4.0...11.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `body-parser` from 1.20.8 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/body-parser/releases\"\u003ebody-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003ch2\u003eImportant: Security\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2025-13466\"\u003eCVE-2026-12590\u003c/a\u003e (\u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6\"\u003eGHSA-v422-hmwv-36x6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 6.0.0 to 7.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/expressjs/body-parser/pull/681\"\u003eexpressjs/body-parser#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5.0.0 to 6.0.1 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/expressjs/body-parser/pull/682\"\u003eexpressjs/body-parser#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.0.0 to 6.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/expressjs/body-parser/pull/683\"\u003eexpressjs/body-parser#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 5.0.0 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/expressjs/body-parser/pull/685\"\u003eexpressjs/body-parser#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.31.2 to 4.31.9 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/expressjs/body-parser/pull/684\"\u003eexpressjs/body-parser#684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(urlencoded): move empty-body guard to avoid extra function closure by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/647\"\u003eexpressjs/body-parser#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ESM compatibility by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/697\"\u003eexpressjs/body-parser#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add recommendations for configuring payload limits by \u003ca href=\"https://github.com/bjohansebas\"\u003e\u003ccode\u003e@​bjohansebas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/699\"\u003eexpressjs/body-parser#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.1.0 to 6.2.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/expressjs/body-parser/pull/701\"\u003eexpressjs/body-parser#701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.31.10 to 4.32.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/expressjs/body-parser/pull/702\"\u003eexpressjs/body-parser#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.1 to 6.0.2 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/expressjs/body-parser/pull/700\"\u003eexpressjs/body-parser#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore:  add explicit type commonjs to package.json by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/711\"\u003eexpressjs/body-parser#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps: update dependencies to latest versions by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/708\"\u003eexpressjs/body-parser#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 7.0.0 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/expressjs/body-parser/pull/712\"\u003eexpressjs/body-parser#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.32.0 to 4.32.4 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/expressjs/body-parser/pull/713\"\u003eexpressjs/body-parser#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 6.0.0 to 7.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/expressjs/body-parser/pull/714\"\u003eexpressjs/body-parser#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve limit option validation by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/698\"\u003eexpressjs/body-parser#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.32.4 to 4.35.1 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/expressjs/body-parser/pull/719\"\u003eexpressjs/body-parser#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.2.0 to 6.3.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/expressjs/body-parser/pull/718\"\u003eexpressjs/body-parser#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 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/expressjs/body-parser/pull/717\"\u003eexpressjs/body-parser#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: eliminate conditional check in json strict mode hot path by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/651\"\u003eexpressjs/body-parser#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add node.js 26 to text matrix by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/726\"\u003eexpressjs/body-parser#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 6.3.0 to 6.4.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/expressjs/body-parser/pull/725\"\u003eexpressjs/body-parser#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 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/expressjs/body-parser/pull/724\"\u003eexpressjs/body-parser#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.35.1 to 4.35.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/expressjs/body-parser/pull/723\"\u003eexpressjs/body-parser#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade \u0026quot;content-type\u0026quot; by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/728\"\u003eexpressjs/body-parser#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: switch to const/let and enable eslint no-var rule by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/729\"\u003eexpressjs/body-parser#729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate outdated reference to MDN docs by \u003ca href=\"https://github.com/krzysdz\"\u003e\u003ccode\u003e@​krzysdz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/730\"\u003eexpressjs/body-parser#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.35.3 to 4.36.1 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/expressjs/body-parser/pull/731\"\u003eexpressjs/body-parser#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.2 to 6.0.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/expressjs/body-parser/pull/732\"\u003eexpressjs/body-parser#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: updated deps to latest by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/733\"\u003eexpressjs/body-parser#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2.3.0 by \u003ca href=\"https://github.com/UlisesGascon\"\u003e\u003ccode\u003e@​UlisesGascon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/735\"\u003eexpressjs/body-parser#735\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/krzysdz\"\u003e\u003ccode\u003e@​krzysdz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/730\"\u003eexpressjs/body-parser#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0\"\u003ehttps://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update README links by \u003ca href=\"https://github.com/efekrskl\"\u003e\u003ccode\u003e@​efekrskl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/673\"\u003eexpressjs/body-parser#673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: release notes for the v1.20.4 release by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/674\"\u003eexpressjs/body-parser#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update URL-encoded parser description to include ISO-8859-1 encoding support by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/679\"\u003eexpressjs/body-parser#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: use standard jsdoc tags everywhere by \u003ca href=\"https://github.com/Phillip9587\"\u003e\u003ccode\u003e@​Phillip9587\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/body-parser/pull/677\"\u003eexpressjs/body-parser#677\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/expressjs/body-parser/blob/master/HISTORY.md\"\u003ebody-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 / 2026-06-15\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6\"\u003eGHSA-v422-hmwv-36x6\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use static exports instead of lazy getters to improve ESM compatibility\u003c/li\u003e\n\u003cli\u003efeat: add subpath exports for individual parsers\u003c/li\u003e\n\u003cli\u003efix: improve \u003ccode\u003elimit\u003c/code\u003e option validation (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/698\"\u003e#698\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eInvalid \u003ccode\u003elimit\u003c/code\u003e values (e.g. unparseable strings or \u003ccode\u003eNaN\u003c/code\u003e) now throw instead of being silently ignored, which previously disabled size limit enforcement\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enull\u003c/code\u003e and \u003ccode\u003eundefined\u003c/code\u003e fall back to the default 100kb limit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003econtent-type@^2.0.0\u003c/li\u003e\n\u003cli\u003ehttp-errors@^2.0.1\u003c/li\u003e\n\u003cli\u003eiconv-lite^0.7.2\u003c/li\u003e\n\u003cli\u003eqs@^6.15.2\u003c/li\u003e\n\u003cli\u003eraw-body@^3.0.2\u003c/li\u003e\n\u003cli\u003etype-is@^2.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.2 / 2026-01-07\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edeps: qs@^6.14.1\u003c/li\u003e\n\u003cli\u003erefactor(json): simplify strict mode error string construction\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 / 2025-11-24\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSecurity fix for \u003ca href=\"https://github.com/expressjs/body-parser/security/advisories/GHSA-wqch-xfxh-vrr4\"\u003eGHSA-wqch-xfxh-vrr4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003etype-is@^2.0.1\u003c/li\u003e\n\u003cli\u003eiconv-lite@^0.7.0\n\u003cul\u003e\n\u003cli\u003eHandle split surrogate pairs when encoding UTF-8\u003c/li\u003e\n\u003cli\u003eAvoid false positives in \u003ccode\u003eencodingExists\u003c/code\u003e by using prototype-less objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eraw-body@^3.0.1\u003c/li\u003e\n\u003cli\u003edebug@^4.4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 / 2025-03-27\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: normalize common options for all parsers\u003c/li\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003eiconv-lite@^0.6.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0 / 2025-02-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edeps:\n\u003cul\u003e\n\u003cli\u003etype-is@^2.0.0\u003c/li\u003e\n\u003cli\u003edebug@^4.4.0\u003c/li\u003e\n\u003cli\u003eRemoved destroy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003erefactor: prefix built-in node module imports\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/expressjs/body-parser/commit/d0f2ace6c74769da7d19b8661b9a01c01bdb0bf7\"\u003e\u003ccode\u003ed0f2ace\u003c/code\u003e\u003c/a\u003e 2.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/7d03f2f9d561dafd1576b137713353c95253512c\"\u003e\u003ccode\u003e7d03f2f\u003c/code\u003e\u003c/a\u003e chore: updated deps to latest (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/8024ba7a813e6647ed63832d209a2abb8531267a\"\u003e\u003ccode\u003e8024ba7\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6.0.2 to 6.0.3 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/32b4ed4639281f04563adcd41d724ab06c9105d4\"\u003e\u003ccode\u003e32b4ed4\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 4.35.3 to 4.36.1 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/ff0f6b907106ec5a1b81c80f5a552d921c1bc9a5\"\u003e\u003ccode\u003eff0f6b9\u003c/code\u003e\u003c/a\u003e docs: update outdated reference to MDN docs (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/14d001a9c90abc05891d895ad3e9cf0a65b7b34a\"\u003e\u003ccode\u003e14d001a\u003c/code\u003e\u003c/a\u003e refactor: switch to const/let and enable eslint no-var rule (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/37f36a27528e65d7216f2c31c7039d3458c72147\"\u003e\u003ccode\u003e37f36a2\u003c/code\u003e\u003c/a\u003e deps: update content-type and type-is (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/e1c244bf55fb00a6de4be882b4ed9fc20807d864\"\u003e\u003ccode\u003ee1c244b\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 4.35.1 to 4.35.3 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/e01087f52192e20e2d0f8726d4f28a8d49d06c87\"\u003e\u003ccode\u003ee01087f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/body-parser/commit/a7698d30280a3e931ea8841396e5d0ac5414e429\"\u003e\u003ccode\u003ea7698d3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (\u003ca href=\"https://redirect.github.com/expressjs/body-parser/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/body-parser/compare/1.20.8...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eAttestation changes\u003c/summary\u003e\n\u003cp\u003eThis version has no provenance attestation, while the previous version (1.20.8) was attested. Review the \u003ca href=\"https://www.npmjs.com/package/body-parser?activeTab=versions\"\u003epackage versions\u003c/a\u003e before updating.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 18.0.5 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.6...v18.0.7\"\u003e18.0.7\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat undefined settings like \u003ccode\u003equiet: true\u003c/code\u003e as null rather than falsey (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI should honor \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting in \u003ccode\u003e.env\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.6\"\u003e18.0.6\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse smarter \u003ccode\u003eparseBoolean\u003c/code\u003e not Boolean() to fix override (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1069\"\u003e#1069\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/295320751866efa323236c719cdc1b5306fa3de7\"\u003e\u003ccode\u003e2953207\u003c/code\u003e\u003c/a\u003e 18.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/9944723d89e6f776897f171bfc6b945dfad23c57\"\u003e\u003ccode\u003e9944723\u003c/code\u003e\u003c/a\u003e make more readable for undefined -\u0026gt; null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/d455db06a7b37acd8b240793a888efaba75885f4\"\u003e\u003ccode\u003ed455db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:motdotla/dotenv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/express` from 4.17.25 to 5.0.6\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/express\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodemailer` from 10.0.14 to 10.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nodemailer/nodemailer/releases\"\u003enodemailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.1...v10.1.2\"\u003e10.1.2\u003c/a\u003e (2026-10-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebound the work a message can make the mailer do and keep per-message auth off the transport's token endpoint (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003ee347fa2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.0...v10.1.1\"\u003e10.1.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e strip credentials on any cross-origin redirect (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/a15360cd2cd12e4670e96ab0b7290e8c862391cf\"\u003ea15360c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.16...v10.1.0\"\u003e10.1.0\u003c/a\u003e (2026-10-10)\u003c/h2\u003e\n\u003ch3\u003eBehaviour changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePooled connections are closed after 4 minutes without a message (new \u003ccode\u003eidleTimeout\u003c/code\u003e pool option, set it to \u003ccode\u003e0\u003c/code\u003e to keep them open). A message whose recipients are rejected no longer closes the pooled connection, it is reset with \u003ccode\u003eRSET\u003c/code\u003e and reused, and a message is requeued when the server dropped a reused connection before any of it was sent.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econnectionTimeout\u003c/code\u003e covers setting the session up as a whole: the DNS lookup, a proxy handshake, the TCP connection, TLS, the greeting and a STARTTLS upgrade. \u003ccode\u003egreetingTimeout\u003c/code\u003e still bounds the greeting and the STARTTLS handshake within it.\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003e421\u003c/code\u003e reply ends the SMTP session. When the server closes an idle connection, \u003ccode\u003eSMTPConnection\u003c/code\u003e emits only \u003ccode\u003eend\u003c/code\u003e, not an \u003ccode\u003eECONNECTION\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eA content stream that was already read or destroyed fails the message with \u003ccode\u003eESTREAM\u003c/code\u003e instead of producing an empty attachment. Content streams of a message that fails are destroyed.\u003c/li\u003e\n\u003cli\u003eWith \u003ccode\u003eopportunisticTLS\u003c/code\u003e, authentication is skipped on the unencrypted connection after a failed STARTTLS, unless \u003ccode\u003eforceAuth\u003c/code\u003e is set.\u003c/li\u003e\n\u003cli\u003eThe envelope is pipelined (MAIL FROM, RCPT TO and DATA in one batch) when the server announces PIPELINING.\u003c/li\u003e\n\u003cli\u003eErrors carry \u003ccode\u003eoriginalCode\u003c/code\u003e (the system error code Nodemailer replaced, such as \u003ccode\u003eECONNREFUSED\u003c/code\u003e) and, for \u003ccode\u003eETIMEDOUT\u003c/code\u003e, \u003ccode\u003etimeoutType\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eharden message streams, SMTP connections and the connection pool (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8009da6e10bb8e10d7f0948a25d65895fdcd64f1\"\u003e8009da6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edo not read the environment or the interface table on import (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/094179d176d2ebe7a28742411ad427d3c87a3981\"\u003e094179d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eend the SMTP session on any 421 reply and drive the envelope through one step (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/5638ac1914342460df270f736e7ceb0a844cf83a\"\u003e5638ac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ekeep ERR_ACCESS_DENIED from the Node.js permission model (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8b33a3d4fedee3431b97da7da12af954c3c8dceb\"\u003e8b33a3d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elet the proxy handshake and the SMTP connection share one deadline (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/91ed683f7a1e9ff8c56e24fb76facf16af08b162\"\u003e91ed683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e decode an SMTPUTF8 domain from its A-label form (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e436f4dccbc8b0fb57b4747ebaafa5bb035c15cb\"\u003ee436f4d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e finish an encoded part only after its output was read (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/ec97d8f679a1d9d47bbebb03ea064f5fa6f58d01\"\u003eec97d8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eqp:\u003c/strong\u003e encode a lone CR or LF in binary quoted-printable parts (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/42b91d9a0fe18eea412c9774c5c142adf5b3efc7\"\u003e42b91d9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e count the wait for the greeting against connectionTimeout (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/bdcd0462cab163eca3c34058d09b9981ab671c47\"\u003ebdcd046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e drop the connection when DATA is taken after a refused sender (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/f90fb045bc24f96a128710791b2fa443e64f55fd\"\u003ef90fb04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e refuse a second connect() call (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/24ba2e0847ecb8202540f1c5e53483bd119ae4f2\"\u003e24ba2e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eturn Nagle off for SMTP sockets and report an early sendmail exit as such (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fa9b8d300bf642cd9e11f6732ebb312c09868677\"\u003efa9b8d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\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/nodemailer/nodemailer/blob/master/CHANGELOG.md\"\u003enodemailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.1...v10.1.2\"\u003e10.1.2\u003c/a\u003e (2026-10-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebound the work a message can make the mailer do and keep per-message auth off the transport's token endpoint (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003ee347fa2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.1.0...v10.1.1\"\u003e10.1.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e strip credentials on any cross-origin redirect (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/a15360cd2cd12e4670e96ab0b7290e8c862391cf\"\u003ea15360c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.16...v10.1.0\"\u003e10.1.0\u003c/a\u003e (2026-10-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eharden message streams, SMTP connections and the connection pool (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8009da6e10bb8e10d7f0948a25d65895fdcd64f1\"\u003e8009da6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edo not read the environment or the interface table on import (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/094179d176d2ebe7a28742411ad427d3c87a3981\"\u003e094179d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eend the SMTP session on any 421 reply and drive the envelope through one step (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/5638ac1914342460df270f736e7ceb0a844cf83a\"\u003e5638ac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ekeep ERR_ACCESS_DENIED from the Node.js permission model (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/8b33a3d4fedee3431b97da7da12af954c3c8dceb\"\u003e8b33a3d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elet the proxy handshake and the SMTP connection share one deadline (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/91ed683f7a1e9ff8c56e24fb76facf16af08b162\"\u003e91ed683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e decode an SMTPUTF8 domain from its A-label form (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e436f4dccbc8b0fb57b4747ebaafa5bb035c15cb\"\u003ee436f4d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emime-node:\u003c/strong\u003e finish an encoded part only after its output was read (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/ec97d8f679a1d9d47bbebb03ea064f5fa6f58d01\"\u003eec97d8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eqp:\u003c/strong\u003e encode a lone CR or LF in binary quoted-printable parts (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/42b91d9a0fe18eea412c9774c5c142adf5b3efc7\"\u003e42b91d9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e count the wait for the greeting against connectionTimeout (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/bdcd0462cab163eca3c34058d09b9981ab671c47\"\u003ebdcd046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e drop the connection when DATA is taken after a refused sender (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/f90fb045bc24f96a128710791b2fa443e64f55fd\"\u003ef90fb04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esmtp-connection:\u003c/strong\u003e refuse a second connect() call (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/24ba2e0847ecb8202540f1c5e53483bd119ae4f2\"\u003e24ba2e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eturn Nagle off for SMTP sockets and report an early sendmail exit as such (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fa9b8d300bf642cd9e11f6732ebb312c09868677\"\u003efa9b8d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eencode base64 and quoted-printable without per-chunk delays (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/fd377bbf559363860aedbedba6f107348fc152d2\"\u003efd377bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/compare/v10.0.15...v10.0.16\"\u003e10.0.16\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaddressparser:\u003c/strong\u003e keep an escaped parenthesis inside a comment (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/c4ae20d074ac0510cc2d0cbd6039ee7fab3a4ca8\"\u003ec4ae20d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e keep the case of cookie names (\u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1888\"\u003e#1888\u003c/a\u003e) (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/9f16eedf8de0485e6d07969113db992ff70f89ce\"\u003e9f16eed\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efetch:\u003c/strong\u003e read the cookie name-value pair by position (\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/645e97c8f0586404d9fb861c9527be7572c2c832\"\u003e645e97c\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/nodemailer/nodemailer/commit/8454a24ba7ad3b32cca1aed07ae7fc05aa960f19\"\u003e\u003ccode\u003e8454a24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1894\"\u003e#1894\u003c/a\u003e from nodemailer/release-please--branches--master--co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/667cea61672a74aa2213075609ccd08010e5bf94\"\u003e\u003ccode\u003e667cea6\u003c/code\u003e\u003c/a\u003e chore(master): release 10.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e347fa2260a7e342e772a7e187937aa87ac96364\"\u003e\u003ccode\u003ee347fa2\u003c/code\u003e\u003c/a\u003e fix: bound the work a message can make the mailer do and keep per-message aut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/commit/e58217ca2735c5169ef492f5695b848896f3bfaa\"\u003e\u003ccode\u003ee58217c\u003c/code\u003e\u003c/a\u003e chore: add Oveyon SMTP service (\u003ca href=\"https://redirect.github.com/nodemailer/nodemailer/issues/1892\"\u003e#1892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodemailer/nodemailer/...\n\n_Description has been truncated_","html_url":"https://github.com/nelsonbravosalas-creator/MAESTRO-COMERCIAL/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nelsonbravosalas-creator%2FMAESTRO-COMERCIAL/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-19T07:26:11.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5919690159","node_id":"PR_kwDOTv4Hic8AAAABJRnjPQ","number":166,"state":"open","title":"deps: bump the production group across 1 directory with 27 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-10-19T07:26:11.000Z","updated_at":"2026-10-19T07:48:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"production","update_count":27,"packages":[{"name":"@aws-sdk/client-bedrock-runtime","old_version":"3.1141.0","new_version":"3.1152.0","repository_url":"https://github.com/aws/aws-sdk-js-v3"},{"name":"@lobehub/icons","old_version":"5.21.0","new_version":"6.0.0","repository_url":"https://github.com/lobehub/lobe-icons"},{"name":"@modelcontextprotocol/sdk","old_version":"1.30.1","new_version":"1.32.1","repository_url":"https://github.com/modelcontextprotocol/typescript-sdk"},{"name":"@toon-format/toon","old_version":"4.1.1","new_version":"4.4.0","repository_url":"https://github.com/toon-format/toon"},{"name":"csv-stringify","old_version":"6.8.3","new_version":"6.9.0","repository_url":"https://github.com/adaltas/node-csv"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"fumadocs-core","old_version":"16.15.15","new_version":"16.17.4","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"fumadocs-ui","old_version":"16.15.15","new_version":"16.17.4","repository_url":"https://github.com/fuma-nama/fumadocs"},{"name":"ink","old_version":"7.1.1","new_version":"8.0.0","repository_url":"https://github.com/vadimdemedes/ink"},{"name":"js-yaml","old_version":"5.4.2","new_version":"5.5.0","repository_url":"https://github.com/nodeca/js-yaml"},{"name":"lucide-react","old_version":"1.48.0","new_version":"1.58.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"marked","old_version":"18.0.14","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"material-symbols","old_version":"0.47.5","new_version":"0.48.0","repository_url":"https://github.com/marella/material-symbols"},{"name":"mermaid","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/mermaid-js/mermaid"},{"name":"next","old_version":"16.3.6","new_version":"16.4.2","repository_url":"https://github.com/vercel/next.js"},{"name":"next-intl","old_version":"4.14.7","new_version":"4.14.9","repository_url":"https://github.com/amannn/next-intl"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"playwright","old_version":"1.63.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-is","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"smol-toml","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/squirrelchat/smol-toml"},{"name":"sql.js","old_version":"1.14.2","new_version":"1.15.0","repository_url":"https://github.com/sql-js/sql.js"},{"name":"undici","old_version":"8.11.2","new_version":"8.12.2","repository_url":"https://github.com/nodejs/undici"},{"name":"ws","old_version":"8.21.3","new_version":"8.22.0","repository_url":"https://github.com/websockets/ws"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1141.0` | `3.1152.0` |\n| [@lobehub/icons](https://github.com/lobehub/lobe-icons) | `5.21.0` | `6.0.0` |\n| [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) | `1.30.1` | `1.32.1` |\n| [@toon-format/toon](https://github.com/toon-format/toon) | `4.1.1` | `4.4.0` |\n| [csv-stringify](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify) | `6.8.3` | `6.9.0` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [fumadocs-core](https://github.com/fuma-nama/fumadocs) | `16.15.15` | `16.17.4` |\n| [fumadocs-ui](https://github.com/fuma-nama/fumadocs) | `16.15.15` | `16.17.4` |\n| [ink](https://github.com/vadimdemedes/ink) | `7.1.1` | `8.0.0` |\n| [js-yaml](https://github.com/nodeca/js-yaml) | `5.4.2` | `5.5.0` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.48.0` | `1.58.0` |\n| [marked](https://github.com/markedjs/marked) | `18.0.14` | `18.1.1` |\n| [material-symbols](https://github.com/marella/material-symbols/tree/HEAD/material-symbols) | `0.47.5` | `0.48.0` |\n| [mermaid](https://github.com/mermaid-js/mermaid) | `12.0.0` | `12.2.0` |\n| [next](https://github.com/vercel/next.js) | `16.3.6` | `16.4.2` |\n| [next-intl](https://github.com/amannn/next-intl) | `4.14.7` | `4.14.9` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [playwright](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.1` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [react-is](https://github.com/react/react/tree/HEAD/packages/react-is) | `19.3.0` | `19.3.1` |\n| [smol-toml](https://github.com/squirrelchat/smol-toml) | `1.9.0` | `1.9.1` |\n| [sql.js](https://github.com/sql-js/sql.js) | `1.14.2` | `1.15.0` |\n| [undici](https://github.com/nodejs/undici) | `8.11.2` | `8.12.2` |\n| [ws](https://github.com/websockets/ws) | `8.21.3` | `8.22.0` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n\n\nUpdates `@aws-sdk/client-bedrock-runtime` from 3.1141.0 to 3.1152.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/releases\"\u003e@​aws-sdk/client-bedrock-runtime's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1152.0\u003c/h2\u003e\n\u003ch4\u003e3.1152.0(2026-10-14)\u003c/h4\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-marketplace-metering:\u003c/strong\u003e  Documentation update - added a Get started pointer to the AWS Marketplace AI Metering Agent Skill in the BatchMeterUsage API reference. No API or behavior change. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c97db28292cf4ec8de51ddc76178597172e98472\"\u003ec97db282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-10-14 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/91a8a07c64dbb5cfb15497d8a5f2ae1f5b2608ad\"\u003e91a8a07c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-imagebuilder:\u003c/strong\u003e  This release adds parentInstance to infrastructure configurations, so builds can use an already-running instance from an Amazon EC2 Auto Scaling group. It also adds terminateInstanceOnCompletion, which keeps build and test instances running after image creation ends. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/e8a5e26b4bd8fafd9332718ed4619ecc4e31d37a\"\u003ee8a5e26b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-cloudfront:\u003c/strong\u003e  This release adds a new \u0026quot;IpAddressType\u0026quot; field to \u0026quot;VPCOriginEndpointConfig\u0026quot;, allowing customers to specify whether their VPC origin accepts IPv4-only or dualstack connections. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/6bae6413938d6e5c07943f48c1e5d84d8283f7bb\"\u003e6bae6413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-transfer:\u003c/strong\u003e  AWS Transfer Family now lets you store SFTP server host keys in AWS Secrets Manager in your own AWS account. This gives you greater control over your server identity and helps simplify server migrations and failover. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/9d0e88661d8029e1715580646e67e8594e786417\"\u003e9d0e8866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-dynamodb-streams:\u003c/strong\u003e  Add support for a new iterator type (AT TIMESTAMP) for DynamoDB Streams GetShardIterator API that allows reading from a specific point in time from the stream. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/150e6ae315ed77756d261a62d4598c0208195c9a\"\u003e150e6ae3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-ec2:\u003c/strong\u003e  Adds T8i instance sizes to the InstanceType enum. T8i instances are low-cost burstable instances powered by custom sixth generation Intel Xeon 6 processors, available exclusively on AWS, and built on the latest sixth generation AWS Nitro cards (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/65c6056b0bc8fab6261ac7b52e8a3421a4281152\"\u003e65c6056b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-arc-region-switch:\u003c/strong\u003e  Features - Adds support for an optional payload to invoke the Lambda function with as part of the Custom action Lambda execution block (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d21aa72b05ec8c1e32822574fbabacaafa799382\"\u003ed21aa72b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-organizations:\u003c/strong\u003e  With dual-stack enabled, all requests now resolve to the endpoint in the partition's primary Region (for example, organizations.us-east-1.api.aws) and are signed for that Region. Previously, requests from other Regions resolved to a nonexistent endpoint. No API changes. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/9324745e8c9c2c684a636fe2e307be3fe0571b22\"\u003e9324745e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-bedrock-agentcore-control:\u003c/strong\u003e  This release supports scoping Amazon Bedrock AgentCore Gateway rate limits by request header or request body field. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/30c5bca25f88043a285593ca76ecb3d36dce6206\"\u003e30c5bca2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lambda:\u003c/strong\u003e  AWS Lambda now supports an optional X-Ray trace header for chained invocations in durable executions, enabling child invocations to be linked to the initiating span. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/08219be0475f234f09f35b3e461d7a12d69f3dd2\"\u003e08219be0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-guardduty:\u003c/strong\u003e  Releasing support for Custom Detection Rule Runtime Monitoring (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0cb32b8fef5d0f269c6cc4d5ad599f2fb819fc09\"\u003e0cb32b8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elib-transfer-manager:\u003c/strong\u003e  publish as a preview package (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8355\"\u003e#8355\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/41080929c1e5a81980f0bda4a35eadd0b6e048a9\"\u003e41080929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eFor list of updated packages, view \u003cstrong\u003eupdated-packages.md\u003c/strong\u003e in \u003cstrong\u003eassets-3.1152.0.zip\u003c/strong\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1151.0\u003c/h2\u003e\n\u003ch4\u003e3.1151.0(2026-10-13)\u003c/h4\u003e\n\u003ch5\u003eChores\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003elib-transfer-manager:\u003c/strong\u003e  move lib-transfer-manager to preview/ folder (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8351\"\u003e#8351\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5037a0065a1f6ae6a87ff7ce4884e3ef3be61a64\"\u003e5037a006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003escripts:\u003c/strong\u003e  add preview/ folder to build tooling (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-js-v3/pull/8350\"\u003e#8350\u003c/a\u003e) (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a922905ad8bca584f271cf88b589a22d0a5003ad\"\u003ea922905a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eDocumentation Changes\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lambda-web:\u003c/strong\u003e  Documentation update to include common use cases. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/643507a09d50416e30f2a24c921e6f1e9dda4ad0\"\u003e643507a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003eNew Features\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclients:\u003c/strong\u003e  update client endpoints as of 2026-10-13 (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d399458247460784fed4fbe11c14e98f0a07847a\"\u003ed3994582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-lakeformation:\u003c/strong\u003e  Added new LakeFormation APIs and documentation updates for Simple Row-level Security (RLS). (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c7a586fc4addf0c2dd3851a90311a377e62137f8\"\u003ec7a586fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-agent-registry-control:\u003c/strong\u003e  AWS Agent Registry is improving recently launched custom metadata schema feature to make shared attributes easier to manage. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ed00d0bb8d831f1b2461b637356f327a1afd9837\"\u003eed00d0bb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-omics:\u003c/strong\u003e  With Expanded container registry support, you can use container images from registries such as Seqera (Wave), NVIDIA NGC, and Google Artifact Registry with AWS HealthOmics private workflows, without manually migrating images into Amazon ECR or editing your workflow definitions. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/db38274026895b84d7d8e31b4f835999dbe800cd\"\u003edb382740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-route-53-domains:\u003c/strong\u003e  Route 53 Domains now supports premium domains. This release adds consent objects to operations on premium domains and a new GetDomainPrices API. Also, the Flags and PublicKey fields were deprecated from the DnssecKey response. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/c5cc6f506dc764122f7ed68d82cd178c94be068b\"\u003ec5cc6f50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-gamelift:\u003c/strong\u003e  Adds support for new instance types in the C8a, C8i, C9g, M8a, M8i, and M9g families for managed EC2 and container fleets (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5145677226e133de057c148d8060e0edb4ff567f\"\u003e51456772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-appstream:\u003c/strong\u003e  Adds support for administrators to require users to re-authenticate OneDrive and Google Drive storage connectors when a streaming session is reused. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/2b6f2af5b0c06ec6185450e03b4bf4198a1a2a44\"\u003e2b6f2af5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-connect:\u003c/strong\u003e  New APIs to support aliases and versions for ContactFlow. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/39466baaf544133768153f920bafe6b97dfc3323\"\u003e39466baa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient-appintegrations:\u003c/strong\u003e  This release adds the Connect JWT authentication type and the AudienceOverride field to AuthConfig, letting A2A server applications authenticate with JWTs issued by Amazon Connect. (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/3b212b20265a8d1f62178c7dd65f6f3e8368efde\"\u003e3b212b20\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/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md\"\u003e@​aws-sdk/client-bedrock-runtime's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1151.0...v3.1152.0\"\u003e3.1152.0\u003c/a\u003e (2026-10-14)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1150.0...v3.1151.0\"\u003e3.1151.0\u003c/a\u003e (2026-10-13)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1149.0...v3.1150.0\"\u003e3.1150.0\u003c/a\u003e (2026-10-12)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1148.0...v3.1149.0\"\u003e3.1149.0\u003c/a\u003e (2026-10-09)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1147.0...v3.1148.0\"\u003e3.1148.0\u003c/a\u003e (2026-10-08)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1146.0...v3.1147.0\"\u003e3.1147.0\u003c/a\u003e (2026-10-06)\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Version bump only for package \u003ccode\u003e@​aws-sdk/client-bedrock-runtime\u003c/code\u003e\u003c/p\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/compare/v3.1145.0...v3.1146.0\"\u003e3.1146.0\u003c/a\u003e (2026-10-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/3ce8aa778c22193dad5f7fcefe239e3a74a3cd4f\"\u003e\u003ccode\u003e3ce8aa7\u003c/code\u003e\u003c/a\u003e Publish v3.1152.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/d6adfcb7baa396dd42060a74382b6aa2a1cbf0b5\"\u003e\u003ccode\u003ed6adfcb\u003c/code\u003e\u003c/a\u003e Publish v3.1151.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/4c9a334a79b631cc110fb3a1d67695b4c07baf46\"\u003e\u003ccode\u003e4c9a334\u003c/code\u003e\u003c/a\u003e Publish v3.1150.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/a960c14e8ce09ab8fd09352e40d75c6b9d52c1ca\"\u003e\u003ccode\u003ea960c14\u003c/code\u003e\u003c/a\u003e Publish v3.1149.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/5773a7515472dbdf2760c61e4a462b71800c50e7\"\u003e\u003ccode\u003e5773a75\u003c/code\u003e\u003c/a\u003e chore(codegen): sync for endpoint cache fix and pre-schema error fallback (\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime/issues/8\"\u003e#8\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/1bc04256c276089739faa71754dba4fde75e05aa\"\u003e\u003ccode\u003e1bc0425\u003c/code\u003e\u003c/a\u003e Publish v3.1148.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/663046d58796f32069e5198f95a3070b2f5ef969\"\u003e\u003ccode\u003e663046d\u003c/code\u003e\u003c/a\u003e Publish v3.1147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/054298b1520fc45a7017966674a5ac3aa6f32a04\"\u003e\u003ccode\u003e054298b\u003c/code\u003e\u003c/a\u003e Publish v3.1146.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/0199117830b689aa169a0e4c472484cde9c129cd\"\u003e\u003ccode\u003e0199117\u003c/code\u003e\u003c/a\u003e Publish v3.1145.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commit/ce262812f5156daee0c2070854970e504b7cd15c\"\u003e\u003ccode\u003ece26281\u003c/code\u003e\u003c/a\u003e Publish v3.1144.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-js-v3/commits/v3.1152.0/clients/client-bedrock-runtime\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@lobehub/icons` from 5.21.0 to 6.0.0\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'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/v5.23.1...v6.0.0\"\u003eVersion 6.0.0\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-10-15\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: Adopt lobe-ui 6 and drop antd [force major].\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/559e761\"\u003e559e761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Adopt lobe-ui 6 and drop antd [force major], closes \u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/432\"\u003e#432\u003c/a\u003e (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/a83b922\"\u003ea83b922\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\u003ch3\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v5.23.0...v5.23.1\"\u003eVersion 5.23.1\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003eReleased on \u003cstrong\u003e2026-10-13\u003c/strong\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e🐛 Bug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Meta icon for Muse Wonder models, use Node 22 in release CI so tsdown can load its config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eWhat's fixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Meta icon for Muse Wonder models (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/6f2c20d\"\u003e6f2c20d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emisc\u003c/strong\u003e: Use Node 22 in release CI so tsdown can load its config (\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/5f19aab\"\u003e5f19aab\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\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/8a1b2821bb768c484fe8da20c5e1838b6bf551a9\"\u003e\u003ccode\u003e8a1b282\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v6.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/a83b92271575dd7367334cfc554027ec96104b9c\"\u003e\u003ccode\u003ea83b922\u003c/code\u003e\u003c/a\u003e ✨ feat: adopt lobe-ui 6 and drop antd [force major] (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/559e761192814e612ae40e9d516c5b18c86cf0a7\"\u003e\u003ccode\u003e559e761\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/bb666a6fa2b5e76b7e184eec574949f64a4a562b\"\u003e\u003ccode\u003ebb666a6\u003c/code\u003e\u003c/a\u003e fix: README 图片链接（npmmirror 图床、失效资产、生成脚本） (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/05a9b8c41e4735a4a2b6d2f1e43574bd8ec6c8cb\"\u003e\u003ccode\u003e05a9b8c\u003c/code\u003e\u003c/a\u003e :bookmark: chore(release): v5.23.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/5f19aab07ead914089a3b4672ff042966e1db620\"\u003e\u003ccode\u003e5f19aab\u003c/code\u003e\u003c/a\u003e 🐛 fix: use Node 22 in release CI so tsdown can load its config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/67c955577316c56c276dd406c4c5b7c2b9715b4b\"\u003e\u003ccode\u003e67c9555\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/436\"\u003e#436\u003c/a\u003e from lobehub/fix/muse-wonder-icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/6f2c20d7d6b8b99e43cd7b346a902a5855ab5564\"\u003e\u003ccode\u003e6f2c20d\u003c/code\u003e\u003c/a\u003e 🐛 fix: use Meta icon for Muse Wonder models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/bcdb7c82792a854c2967f7328e11a30205ea584d\"\u003e\u003ccode\u003ebcdb7c8\u003c/code\u003e\u003c/a\u003e 🔨 build: generate per-module exports map at CI build time (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lobehub/lobe-icons/commit/913b01b178312707b47c3b73881e9fe558027d83\"\u003e\u003ccode\u003e913b01b\u003c/code\u003e\u003c/a\u003e 🔨 build: replace father with tsdown to emit Node-ESM-resolvable output (\u003ca href=\"https://redirect.github.com/lobehub/lobe-icons/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lobehub/lobe-icons/compare/v5.21.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@modelcontextprotocol/sdk` from 1.30.1 to 1.32.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/releases\"\u003e@​modelcontextprotocol/sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.32.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] docs: state the principles in CLAUDE.md by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2939\"\u003emodelcontextprotocol/typescript-sdk#2939\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] docs: point the README at v2 and say what v1.x supports by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2942\"\u003emodelcontextprotocol/typescript-sdk#2942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.32.1 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2954\"\u003emodelcontextprotocol/typescript-sdk#2954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.32.0...1.32.1\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.32.0...1.32.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.32.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRedirects:\u003c/strong\u003e the HTTP client transports now follow a redirect only when it stays on the same origin (same scheme, host and port; http to https on the same host is allowed). A deployment whose endpoint redirects to another host or port either configures the final URL or sets \u003ccode\u003eredirectPolicy: 'follow'\u003c/code\u003e on \u003ccode\u003eStreamableHTTPClientTransport\u003c/code\u003e or \u003ccode\u003eSSEClientTransport\u003c/code\u003e. In browsers, a redirected request fails unless that option is set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew options, both off unless you set them:\u003c/strong\u003e \u003ccode\u003emaxToolInputElements\u003c/code\u003e on \u003ccode\u003eMcpServer\u003c/code\u003e limits the number of array elements and object members in a tool call's arguments. \u003ccode\u003eexpectedResource\u003c/code\u003e on \u003ccode\u003erequireBearerAuth\u003c/code\u003e accepts only tokens issued for this server (the token's audience).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] fix(client): follow redirects only within the endpoint's origin by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2902\"\u003emodelcontextprotocol/typescript-sdk#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: point SECURITY.md at GitHub Security Advisories (v1.x) by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2910\"\u003emodelcontextprotocol/typescript-sdk#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] examples: close idle sessions and cap the session map by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2914\"\u003emodelcontextprotocol/typescript-sdk#2914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] fix(tasks): keep tasks of the in-memory task store within the session that created them by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2925\"\u003emodelcontextprotocol/typescript-sdk#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] feat(server): add maxToolInputElements option to limit the number of elements in tool-call arguments by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2927\"\u003emodelcontextprotocol/typescript-sdk#2927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] fix(server): accept tools/call and prompts/get requests that omit arguments by \u003ca href=\"https://github.com/raashish1601\"\u003e\u003ccode\u003e@​raashish1601\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2045\"\u003emodelcontextprotocol/typescript-sdk#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] feat(auth): add expectedResource to requireBearerAuth by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2930\"\u003emodelcontextprotocol/typescript-sdk#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] test(e2e): cover tools/call and prompts/get without arguments by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2931\"\u003emodelcontextprotocol/typescript-sdk#2931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.32.0 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2935\"\u003emodelcontextprotocol/typescript-sdk#2935\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/raashish1601\"\u003e\u003ccode\u003e@​raashish1601\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2045\"\u003emodelcontextprotocol/typescript-sdk#2045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.31.0...1.32.0\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.31.0...1.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.31.0\u003c/h2\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStored OAuth tokens and client information now include an \u003ccode\u003eissuer\u003c/code\u003e field. Storage that rejects unknown fields needs to allow it.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003eexpectedIssuer\u003c/code\u003e when constructing \u003ccode\u003eClientCredentialsProvider\u003c/code\u003e, \u003ccode\u003ePrivateKeyJwtProvider\u003c/code\u003e or \u003ccode\u003eStaticPrivateKeyJwtProvider\u003c/code\u003e. Constructing them without it is deprecated.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] Bind stored OAuth credentials to the authorization server that issued them by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2888\"\u003emodelcontextprotocol/typescript-sdk#2888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump version to 1.31.0 by \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/2890\"\u003emodelcontextprotocol/typescript-sdk#2890\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.31.0\"\u003ehttps://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.31.0\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/modelcontextprotocol/typescript-sdk/commit/ff07b001194fe60ee9deb2121cf119057565796d\"\u003e\u003ccode\u003eff07b00\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.32.1 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2954\"\u003e#2954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/8a74d504a9ac1250f209325536f2f6c443e04ae6\"\u003e\u003ccode\u003e8a74d50\u003c/code\u003e\u003c/a\u003e [v1.x] docs: point the README at v2 and say what v1.x supports (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2942\"\u003e#2942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/a8cf50360f1366ffee174ac337146657bad9be2c\"\u003e\u003ccode\u003ea8cf503\u003c/code\u003e\u003c/a\u003e [v1.x] docs: state the principles in CLAUDE.md (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/32549b00a9a808265f35a29f92fdf27fa4aac2ef\"\u003e\u003ccode\u003e32549b0\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.32.0 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/588d51dbe337000705890fad81e874eb080174c2\"\u003e\u003ccode\u003e588d51d\u003c/code\u003e\u003c/a\u003e [v1.x] test(e2e): cover tools/call and prompts/get without arguments (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2931\"\u003e#2931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/5a0724d14cf34a27a3b070224d2996cdd611df9f\"\u003e\u003ccode\u003e5a0724d\u003c/code\u003e\u003c/a\u003e [v1.x] feat(auth): add expectedResource to requireBearerAuth (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/0ca0b62d93c6cb403b3b96122eff3a3140b84cc0\"\u003e\u003ccode\u003e0ca0b62\u003c/code\u003e\u003c/a\u003e [v1.x] fix(server): accept tools/call and prompts/get requests that omit argu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/fd26801b3b387742fe24a90ed4b275dd6072209f\"\u003e\u003ccode\u003efd26801\u003c/code\u003e\u003c/a\u003e [v1.x] feat(server): add maxToolInputElements option to limit the number of e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/727075b5bbeb77fbea22041b36b72a73042160fa\"\u003e\u003ccode\u003e727075b\u003c/code\u003e\u003c/a\u003e [v1.x] fix(tasks): keep tasks of the in-memory task store within the session ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/commit/0ff63772dae796f41578ace47f7c814f4d86fa24\"\u003e\u003ccode\u003e0ff6377\u003c/code\u003e\u003c/a\u003e [v1.x] examples: close idle sessions and cap the session map (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/typescript-sdk/compare/1.30.1...1.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@toon-format/toon` from 4.1.1 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/toon-format/toon/releases\"\u003e@​toon-format/toon's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport spec v4.4  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/362\"\u003etoon-format/toon#362\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/236a7b9\"\u003e\u003c!-- raw HTML omitted --\u003e(236a7)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep usage off stdout and split short option values  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/55483e6\"\u003e\u003c!-- raw HTML omitted --\u003e(55483)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote a root string that starts with U+FEFF  -  by \u003ca href=\"https://github.com/Iams4kura\"\u003e\u003ccode\u003e@​Iams4kura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/343\"\u003etoon-format/toon#343\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/0936414\"\u003e\u003c!-- raw HTML omitted --\u003e(09364)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep the last duplicate key when decoding with \u003ccode\u003e--no-strict\u003c/code\u003e  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/353\"\u003etoon-format/toon#353\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/c6dd07a\"\u003e\u003c!-- raw HTML omitted --\u003e(c6dd0)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edecode\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eThree decoder cases that diverged from the spec  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/355\"\u003etoon-format/toon#355\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/4234208\"\u003e\u003c!-- raw HTML omitted --\u003e(42342)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFollow the spec 4.2 decoder rules  -  by \u003ca href=\"https://github.com/johannschopplich\"\u003e\u003ccode\u003e@​johannschopplich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/357\"\u003etoon-format/toon#357\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/b620f9c\"\u003e\u003c!-- raw HTML omitted --\u003e(b620f)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eencode\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eNormalize sparse array holes to null  -  by \u003ca href=\"https://github.com/Iams4kura\"\u003e\u003ccode\u003e@​Iams4kura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/toon-format/toon/issues/335\"\u003etoon-format/toon#335\u003c/a\u003e \u003ca href=\"https://github.com/toon-format/toon/commit/033d885\"\u003e\u003c!-- raw HTML omitted --\u003e(033d8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/toon-format/toon/compare/v4.1.1...v4.4.0\"\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/toon-format/toon/commit/92d7fc6d8af920afc99d1b6533cfc976c472fe7d\"\u003e\u003ccode\u003e92d7fc6\u003c/code\u003e\u003c/a\u003e chore: release v4.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/83241b8b584b33b3de678e2bbf5b83742760902d\"\u003e\u003ccode\u003e83241b8\u003c/code\u003e\u003c/a\u003e chore: upgrade dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/d0d8268694cd0d4894a8ae61c4c426cc33cf605a\"\u003e\u003ccode\u003ed0d8268\u003c/code\u003e\u003c/a\u003e docs: update the spec versions of the implementations (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/033d8851c579f175490ac8b020451fab072b5bef\"\u003e\u003ccode\u003e033d885\u003c/code\u003e\u003c/a\u003e fix(encode): normalize sparse array holes to null (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/236a7b987c896d26d8c9510c2b7571049a3dceaa\"\u003e\u003ccode\u003e236a7b9\u003c/code\u003e\u003c/a\u003e feat: support spec v4.4 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/fee1f34c87b2a9bf80823bf42331001f0d80dbc4\"\u003e\u003ccode\u003efee1f34\u003c/code\u003e\u003c/a\u003e docs: bump toon-fu to spec 4.3 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/3ca0c23bc55587d8b4e7eda1cc2be93c6f1a2895\"\u003e\u003ccode\u003e3ca0c23\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@toon-format/spec\u003c/code\u003e to v4.2.1 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/109decf93e4023372e6b4e5ab74fa110096505aa\"\u003e\u003ccode\u003e109decf\u003c/code\u003e\u003c/a\u003e docs: add toon-fu to community implementations (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/a0b3c22fe826f7c48e67cd3e9482bc76ebe7efd5\"\u003e\u003ccode\u003ea0b3c22\u003c/code\u003e\u003c/a\u003e docs: add the v4.2 section to the v4 release page (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toon-format/toon/commit/12a1bac2e0749aae3d46c2fe13d9fd71f36a04f8\"\u003e\u003ccode\u003e12a1bac\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003e@toon-format/spec\u003c/code\u003e to v4.2.0 (\u003ca href=\"https://redirect.github.com/toon-format/toon/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/toon-format/toon/compare/v4.1.1...v4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `csv-stringify` from 6.8.3 to 6.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adaltas/node-csv/blob/master/packages/csv-stringify/CHANGELOG.md\"\u003ecsv-stringify's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adaltas/node-csv/compare/csv-stringify@6.8.3...csv-stringify@6.9.0\"\u003e6.9.0\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e expose csv error and normalize_options (\u003ca href=\"https://github.com/adaltas/node-csv/commit/963388da88d150e0ab2dafa2ad4382917c25cc06\"\u003e963388d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e do not alter the source record when columns is set (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/504\"\u003e#504\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/041deff3f9b811e73ac0d151d00c605eaf2a00d6\"\u003e041deff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve header cast context when eof is false (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/505\"\u003e#505\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/a38ef064a099cdac907cd170d028d8ced3fb1c52\"\u003ea38ef06\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve negative numeric values (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/510\"\u003e#510\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/0002d56f882eb386510ee725d318f06bfeccc9cc\"\u003e0002d56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e preserve objects returned by cast functions (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/509\"\u003e#509\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/1742c9ff3386f9a20e3fdcf452322e75b3a19f1a\"\u003e1742c9f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-stringify:\u003c/strong\u003e quote fields containing a carriage return (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/d64d410b21cf126d410c79c9448b648531a2e8af\"\u003ed64d410\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/adaltas/node-csv/commit/594c6469c4a7376c1048d13c47859c2f91674206\"\u003e\u003ccode\u003e594c646\u003c/code\u003e\u003c/a\u003e chore(release): publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/9f041459c37f881ecf2f3a2610f7b76f5df89632\"\u003e\u003ccode\u003e9f04145\u003c/code\u003e\u003c/a\u003e build: latest dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/d64d410b21cf126d410c79c9448b648531a2e8af\"\u003e\u003ccode\u003ed64d410\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): quote fields containing a carriage return (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/963388da88d150e0ab2dafa2ad4382917c25cc06\"\u003e\u003ccode\u003e963388d\u003c/code\u003e\u003c/a\u003e feat(csv-stringify): expose csv error and normalize_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/041deff3f9b811e73ac0d151d00c605eaf2a00d6\"\u003e\u003ccode\u003e041deff\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): do not alter the source record when columns is set (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/a38ef064a099cdac907cd170d028d8ced3fb1c52\"\u003e\u003ccode\u003ea38ef06\u003c/code\u003e\u003c/a\u003e fix(csv-stringify): preserve header cast context when eof is false (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-stringify/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/8d4173d6d8dbb375ba8699cfd1d83af93b921f80\"\u003e\u003ccode\u003e8d4173d\u003c/code\u003e\u003c/a\u003e build: latest dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/c8caa1ccd262151c7d11add8fb7b454ed1d447a9\"\u003e\u003ccode\u003ec8caa1c\u003c/code\u003e\u003c/a\u003e build: generate latest dist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/3433750d78b890cb4c05c959af259e950c4ba473\"\u003e\u003ccode\u003e3433750\u003c/code\u003e\u003c/a\u003e test: eslint format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6c45c9b2f5aac96b2097229749a3521840cf1dc2\"\u003e\u003ccode\u003e6c45c9b\u003c/code\u003e\u003c/a\u003e build: remove npx usage in package scripts\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adaltas/node-csv/commits/csv-stringify@6.9.0/packages/csv-stringify\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-core` from 16.15.15 to 16.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs@16.17.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eKeyboard-scrollable MDX tables\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables of \u003ccode\u003edefaultMdxComponents\u003c/code\u003e are focusable, so keyboard users can scroll wide tables in Safari.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3706\"\u003e#3706\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eUse \u003ccode\u003eprose-sm\u003c/code\u003e and \u003ccode\u003eprose-xs\u003c/code\u003e for small prose\u003c/h3\u003e\n\u003cp\u003eSmall prose in TOC items, type tables, API descriptions and AI chat scales its code and headings with the text.\u003c/p\u003e\n\u003ch3\u003eSpacious: define \u003ccode\u003e--fd-docs-height\u003c/code\u003e for pages\u003c/h3\u003e\n\u003cp\u003eSticky content of pages, like the example column of API pages, fits the page panel.\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLightbox for zoomable images\u003c/h3\u003e\n\u003cp\u003eZoomable images inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e open in one viewer, browse them with arrow keys, swipes or the side buttons.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003eimport { Lightbox } from 'fumadocs-ui/components/image-zoom';\n\u003cp\u003e\u0026lt;Lightbox\u0026gt;\u003cbr /\u003e\n\u0026lt;MDX components={getMDXComponents()} /\u0026gt;\u003cbr /\u003e\n\u0026lt;/Lightbox\u0026gt;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe image title is shown as caption, pass \u003ccode\u003ecaption\u003c/code\u003e to \u003ccode\u003e\u0026lt;ImageZoom /\u0026gt;\u003c/code\u003e for rich content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ermiz\u003c/code\u003e props don't apply inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded translation keys of the image viewer to \u003ccode\u003e@fumadocs/language\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eShow failed searches in the search dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;SearchDialog /\u0026gt;\u003c/code\u003e accepts the \u003ccode\u003eerror\u003c/code\u003e of search hooks, \u003ccode\u003e\u0026lt;SearchDialogList /\u0026gt;\u003c/code\u003e shows it above the previous results.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.2\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/fuma-nama/fumadocs/commit/aedcf4cc8e87da24f106827393c8d2bcf7e96f98\"\u003e\u003ccode\u003eaedcf4c\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ca6c7dd47d8ce13baac5c1161a9ea2a818fbc731\"\u003e\u003ccode\u003eca6c7dd\u003c/code\u003e\u003c/a\u003e fix(ui): focusable tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/481ca804dc701005eedcf5c3b88e26b5d3ce62ea\"\u003e\u003ccode\u003e481ca80\u003c/code\u003e\u003c/a\u003e feat(openapi): better default for allowed origins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0de0c90ffcce866ea3946b6ecbe53c45a5e88034\"\u003e\u003ccode\u003e0de0c90\u003c/code\u003e\u003c/a\u003e feat(openapi): standalone package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b039d94ac8ab45e63a5ad30d16db37119b479781\"\u003e\u003ccode\u003eb039d94\u003c/code\u003e\u003c/a\u003e fix(openapi): avoid storing secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/f510d67db33cb35089fa0bfa094a2ab65a19ae50\"\u003e\u003ccode\u003ef510d67\u003c/code\u003e\u003c/a\u003e fix(*): enforce prose size variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/28136ec6ffb875cd1d02927d2197653aff8836d1\"\u003e\u003ccode\u003e28136ec\u003c/code\u003e\u003c/a\u003e feat(openapi): better example request/response sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/aefd67cb89ddd399a1446be7f6452f702aac7f9f\"\u003e\u003ccode\u003eaefd67c\u003c/code\u003e\u003c/a\u003e fix(openapi): preserve backward compatibility \u0026amp; page-level auth stores\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/dd361bfefc3346bbd855c4a98e4f8dae909c0039\"\u003e\u003ccode\u003edd361bf\u003c/code\u003e\u003c/a\u003e feat(openapi): full auth methods support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/6ef535eacc87e2308c9cea6f2823c3c4968268a4\"\u003e\u003ccode\u003e6ef535e\u003c/code\u003e\u003c/a\u003e docs: fix lint\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.15.15...fumadocs@16.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fumadocs-ui` from 16.15.15 to 16.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fuma-nama/fumadocs/releases\"\u003efumadocs-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003efumadocs@16.17.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.4\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eKeyboard-scrollable MDX tables\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTables of \u003ccode\u003edefaultMdxComponents\u003c/code\u003e are focusable, so keyboard users can scroll wide tables in Safari.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3706\"\u003e#3706\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eUse \u003ccode\u003eprose-sm\u003c/code\u003e and \u003ccode\u003eprose-xs\u003c/code\u003e for small prose\u003c/h3\u003e\n\u003cp\u003eSmall prose in TOC items, type tables, API descriptions and AI chat scales its code and headings with the text.\u003c/p\u003e\n\u003ch3\u003eSpacious: define \u003ccode\u003e--fd-docs-height\u003c/code\u003e for pages\u003c/h3\u003e\n\u003cp\u003eSticky content of pages, like the example column of API pages, fits the page panel.\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.3\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLightbox for zoomable images\u003c/h3\u003e\n\u003cp\u003eZoomable images inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e open in one viewer, browse them with arrow keys, swipes or the side buttons.\u003c/p\u003e\n\u003cpre lang=\"tsx\"\u003e\u003ccode\u003eimport { Lightbox } from 'fumadocs-ui/components/image-zoom';\n\u003cp\u003e\u0026lt;Lightbox\u0026gt;\u003cbr /\u003e\n\u0026lt;MDX components={getMDXComponents()} /\u0026gt;\u003cbr /\u003e\n\u0026lt;/Lightbox\u0026gt;;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe image title is shown as caption, pass \u003ccode\u003ecaption\u003c/code\u003e to \u003ccode\u003e\u0026lt;ImageZoom /\u0026gt;\u003c/code\u003e for rich content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ermiz\u003c/code\u003e props don't apply inside \u003ccode\u003e\u0026lt;Lightbox /\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded translation keys of the image viewer to \u003ccode\u003e@fumadocs/language\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eShow failed searches in the search dialog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;SearchDialog /\u0026gt;\u003c/code\u003e accepts the \u003ccode\u003eerror\u003c/code\u003e of search hooks, \u003ccode\u003e\u0026lt;SearchDialogList /\u0026gt;\u003c/code\u003e shows it above the previous results.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003efumadocs@16.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​fumadocs/base-ui\u003c/code\u003e\u003ca href=\"https://github.com/16\"\u003e\u003ccode\u003e@​16\u003c/code\u003e\u003c/a\u003e.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-core@16.17.2\u003c/li\u003e\n\u003cli\u003efumadocs-ui@16.17.2\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/fuma-nama/fumadocs/commit/aedcf4cc8e87da24f106827393c8d2bcf7e96f98\"\u003e\u003ccode\u003eaedcf4c\u003c/code\u003e\u003c/a\u003e Version Packages (\u003ca href=\"https://redirect.github.com/fuma-nama/fumadocs/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/ca6c7dd47d8ce13baac5c1161a9ea2a818fbc731\"\u003e\u003ccode\u003eca6c7dd\u003c/code\u003e\u003c/a\u003e fix(ui): focusable tables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/481ca804dc701005eedcf5c3b88e26b5d3ce62ea\"\u003e\u003ccode\u003e481ca80\u003c/code\u003e\u003c/a\u003e feat(openapi): better default for allowed origins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/0de0c90ffcce866ea3946b6ecbe53c45a5e88034\"\u003e\u003ccode\u003e0de0c90\u003c/code\u003e\u003c/a\u003e feat(openapi): standalone package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/b039d94ac8ab45e63a5ad30d16db37119b479781\"\u003e\u003ccode\u003eb039d94\u003c/code\u003e\u003c/a\u003e fix(openapi): avoid storing secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/f510d67db33cb35089fa0bfa094a2ab65a19ae50\"\u003e\u003ccode\u003ef510d67\u003c/code\u003e\u003c/a\u003e fix(*): enforce prose size variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/28136ec6ffb875cd1d02927d2197653aff8836d1\"\u003e\u003ccode\u003e28136ec\u003c/code\u003e\u003c/a\u003e feat(openapi): better example request/response sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/aefd67cb89ddd399a1446be7f6452f702aac7f9f\"\u003e\u003ccode\u003eaefd67c\u003c/code\u003e\u003c/a\u003e fix(openapi): preserve backward compatibility \u0026amp; page-level auth stores\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/dd361bfefc3346bbd855c4a98e4f8dae909c0039\"\u003e\u003ccode\u003edd361bf\u003c/code\u003e\u003c/a\u003e feat(openapi): full auth methods support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fuma-nama/fumadocs/commit/6ef535eacc87e2308c9cea6f2823c3c4968268a4\"\u003e\u003ccode\u003e6ef535e\u003c/code\u003e\u003c/a\u003e docs: fix lint\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fuma-nama/fumadocs/compare/fumadocs@16.15.15...fumadocs@16.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ink` from 7.1.1 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vadimdemedes/ink/releases\"\u003eink's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire React 19.3+  7829102\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eminWidth\u003c/code\u003e and \u003ccode\u003emaxWidth\u003c/code\u003e on \u003ccode\u003e\u0026lt;Box\u0026gt;\u003c/code\u003e now only accept numbers (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/1029\"\u003e#1029\u003c/a\u003e)  7cd7fd9\n\u003cul\u003e\n\u003cli\u003ePercentage strings were never documented as supported, and Yoga resolved them against the wrong ancestor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estdin\u003c/code\u003e, \u003ccode\u003estdout\u003c/code\u003e, and \u003ccode\u003estderr\u003c/code\u003e are now typed as generic Node.js streams (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/981\"\u003e#981\u003c/a\u003e)  eb82d8f\n\u003cul\u003e\n\u003cli\u003eThis applies to the \u003ccode\u003erender()\u003c/code\u003e options and to \u003ccode\u003euseStdin()\u003c/code\u003e, \u003ccode\u003euseStdout()\u003c/code\u003e, and \u003ccode\u003euseStderr()\u003c/code\u003e. TTY-only properties like \u003ccode\u003estdout.columns\u003c/code\u003e are no longer part of the types\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euseInput\u003c/code\u003e no longer receives unrecognized terminal control sequences (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/1014\"\u003e#1014\u003c/a\u003e)  c76893e\n\u003cul\u003e\n\u003cli\u003eMouse reports, focus in/out events, cursor position reports, and other terminal replies used to arrive in \u003ccode\u003einput\u003c/code\u003e with the ESC stripped, as if typed. They are now dropped\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/vadimdemedes/ink#contentoffsetx\"\u003e\u003ccode\u003econtentOffsetX\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#contentoffsety\"\u003e\u003ccode\u003econtentOffsetY\u003c/code\u003e\u003c/a\u003e props to \u003ccode\u003e\u0026lt;Box\u0026gt;\u003c/code\u003e for building scrollable views (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/765\"\u003e#765\u003c/a\u003e)  3ba5828\n\u003cul\u003e\n\u003cli\u003eCombine with \u003ccode\u003eoverflow=\u0026quot;hidden\u0026quot;\u003c/code\u003e. See the \u003ca href=\"https://github.com/vadimdemedes/ink/tree/master/examples/scroll\"\u003escroll example\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/vadimdemedes/ink#clientwidth\"\u003e\u003ccode\u003eclientWidth\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#clientheight\"\u003e\u003ccode\u003eclientHeight\u003c/code\u003e\u003c/a\u003e to \u003ccode\u003euseBoxMetrics()\u003c/code\u003e and \u003ca href=\"https://github.com/vadimdemedes/ink#measureelementref\"\u003e\u003ccode\u003emeasureElement()\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/988\"\u003e#988\u003c/a\u003e)  3ba5828\n\u003cul\u003e\n\u003cli\u003eThe element size excluding borders, which is the space its content can occupy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAccept any Node.js stream for the \u003ccode\u003estdin\u003c/code\u003e, \u003ccode\u003estdout\u003c/code\u003e, and \u003ccode\u003estderr\u003c/code\u003e options of \u003ccode\u003erender()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/vadimdemedes/ink/issues/981\"\u003e#981\u003c/a\u003e)  eb82d8f\n\u003cul\u003e\n\u003cli\u003eFor example, \u003ccode\u003ePassThrough\u003c/code\u003e or other \u003ccode\u003eReadable\u003c/co...\n\n_Description has been truncated_","html_url":"https://github.com/mayankjain1815-commits/OmniRoute/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayankjain1815-commits%2FOmniRoute/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-19T04:40:35.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5917916477","node_id":"PR_kwDORsiiJc8AAAABJQMpXw","number":27,"state":"open","title":"Bump the npm-minor-and-patch group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-19T04:40:35.000Z","updated_at":"2026-10-19T04:40:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"npm-minor-and-patch","update_count":10,"packages":[{"name":"esbuild","old_version":"0.28.1","new_version":"0.28.2","repository_url":"https://github.com/evanw/esbuild"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"jspdf-autotable","old_version":"5.0.8","new_version":"5.0.9","repository_url":"https://github.com/simonbengtsson/jsPDF-AutoTable"},{"name":"mssql","old_version":"12.7.0","new_version":"12.7.9","repository_url":"https://github.com/tediousjs/node-mssql"},{"name":"pdfkit","old_version":"0.18.0","new_version":"0.20.2","repository_url":"https://github.com/foliojs/pdfkit"},{"name":"react","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.2.8","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-router-dom","old_version":"7.18.3","new_version":"7.18.4","repository_url":"https://github.com/remix-run/react-router"},{"name":"zod","old_version":"4.4.3","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the npm-minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [esbuild](https://github.com/evanw/esbuild) | `0.28.1` | `0.28.2` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.0` | `8.7.1` |\n| [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable) | `5.0.8` | `5.0.9` |\n| [mssql](https://github.com/tediousjs/node-mssql) | `12.7.0` | `12.7.9` |\n| [pdfkit](https://github.com/foliojs/pdfkit) | `0.18.0` | `0.20.2` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.8` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.8` | `19.3.1` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.3` | `7.18.4` |\n| [zod](https://github.com/colinhacks/zod) | `4.4.3` | `4.6.7` |\n\n\nUpdates `esbuild` from 0.28.1 to 0.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evanw/esbuild/releases\"\u003eesbuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix tree shaking bug due to TypeScript import alias (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific \u003ccode\u003eimport\u003c/code\u003e assignment and looks something like this:\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003eimport Base from './dep.js';\r\nimport Alias = Base.SomeType;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS minification bug involving \u003ccode\u003e\u0026amp;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug where esbuild's CSS minifier incorrectly removed a \u003ccode\u003e\u0026amp;\u003c/code\u003e when it was unsafe to do so. Here is an example:\u003c/p\u003e\n\u003cpre lang=\"css\"\u003e\u003ccode\u003e/* Original code */\r\n.a .b {\r\n  \u0026amp; .b:not(\u0026amp; .c) {\r\n    color: red;\r\n  }\r\n}\r\n\u003cp\u003e/* Old output (with --minify) */\u003cbr /\u003e\n.a .b{.b:not(\u0026amp; .c){color:red}}\u003c/p\u003e\n\u003cp\u003e/* New output (with --minify) */\u003cbr /\u003e\n.a .b{\u0026amp; .b:not(\u0026amp; .c){color:red}}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis should match \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;yes\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e but not \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;no\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e. The old output incorrectly matched both.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid overwriting input files without \u003ccode\u003e--allow-overwrite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor example: \u003ccode\u003eesbuild input.js --outfile=input.js\u003c/code\u003e tells esbuild to overwrite \u003ccode\u003einput.js\u003c/code\u003e with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.\u003c/p\u003e\n\u003cp\u003eThis release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless \u003ccode\u003e--allow-overwrite\u003c/code\u003e is explicitly present. This is done by not writing out any files when a build error is encountered.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect code generated when using top-level await (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing \u003ccode\u003easync\u003c/code\u003e on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an \u003ccode\u003easync\u003c/code\u003e module wrapper.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a minification bug with lowered logical assignment operators (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4508\"\u003e#4508\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Original code\r\nfunction foo() {\r\n  let x\r\n  bar(x ||= {})\r\n\u003c/code\u003e\u003c/pre\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/evanw/esbuild/blob/main/CHANGELOG.md\"\u003eesbuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix tree shaking bug due to TypeScript import alias (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific \u003ccode\u003eimport\u003c/code\u003e assignment and looks something like this:\u003c/p\u003e\n\u003cpre lang=\"ts\"\u003e\u003ccode\u003eimport Base from './dep.js';\nimport Alias = Base.SomeType;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS minification bug involving \u003ccode\u003e\u0026amp;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug where esbuild's CSS minifier incorrectly removed a \u003ccode\u003e\u0026amp;\u003c/code\u003e when it was unsafe to do so. Here is an example:\u003c/p\u003e\n\u003cpre lang=\"css\"\u003e\u003ccode\u003e/* Original code */\n.a .b {\n  \u0026amp; .b:not(\u0026amp; .c) {\n    color: red;\n  }\n}\n\u003cp\u003e/* Old output (with --minify) */\u003cbr /\u003e\n.a .b{.b:not(\u0026amp; .c){color:red}}\u003c/p\u003e\n\u003cp\u003e/* New output (with --minify) */\u003cbr /\u003e\n.a .b{\u0026amp; .b:not(\u0026amp; .c){color:red}}\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis should match \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;yes\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e but not \u003ccode\u003e\u0026lt;span class=\u0026quot;a\u0026quot;\u0026gt;\u0026lt;span class=\u0026quot;b\u0026quot;\u0026gt;no\u0026lt;/span\u0026gt;\u0026lt;/span\u0026gt;\u003c/code\u003e. The old output incorrectly matched both.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid overwriting input files without \u003ccode\u003e--allow-overwrite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor example: \u003ccode\u003eesbuild input.js --outfile=input.js\u003c/code\u003e tells esbuild to overwrite \u003ccode\u003einput.js\u003c/code\u003e with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.\u003c/p\u003e\n\u003cp\u003eThis release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless \u003ccode\u003e--allow-overwrite\u003c/code\u003e is explicitly present. This is done by not writing out any files when a build error is encountered.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect code generated when using top-level await (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing \u003ccode\u003easync\u003c/code\u003e on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an \u003ccode\u003easync\u003c/code\u003e module wrapper.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a minification bug with lowered logical assignment operators (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4508\"\u003e#4508\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// Original code\nfunction foo() {\n  let x\n\u003c/code\u003e\u003c/pre\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/evanw/esbuild/commit/609683d892977362a0f99026cb74b96263d728a9\"\u003e\u003ccode\u003e609683d\u003c/code\u003e\u003c/a\u003e publish 0.28.2 to npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/11b1fe48df6859393d9469f323b5ebd17baaf989\"\u003e\u003ccode\u003e11b1fe4\u003c/code\u003e\u003c/a\u003e add to release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/ab50d91559a27e54cd0a27a403389130ea10d97d\"\u003e\u003ccode\u003eab50d91\u003c/code\u003e\u003c/a\u003e css: fix green/blue channel swap in oklch gamut mapping (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4488\"\u003e#4488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/04627b6cf99b4a7491bebb0268173a7c77a85030\"\u003e\u003ccode\u003e04627b6\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4498\"\u003e#4498\u003c/a\u003e: \u003ccode\u003easync\u003c/code\u003e TLA checks need a worklist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/5c15177a308c7224604058a769c4abf0a66b0a36\"\u003e\u003ccode\u003e5c15177\u003c/code\u003e\u003c/a\u003e disable \u003ccode\u003egopls\u003c/code\u003e in the \u003ccode\u003ego\u003c/code\u003e folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/fc2ee9babc5a2e8ea7ec7c10dd5850b71f7cec7e\"\u003e\u003ccode\u003efc2ee9b\u003c/code\u003e\u003c/a\u003e css: adjust parser to allow \u003ccode\u003e--foo: {...}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/209db54371e62ad1c50e12e56bb93c74c53b0408\"\u003e\u003ccode\u003e209db54\u003c/code\u003e\u003c/a\u003e release notes for css nesting bugfix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/c625d31bf08a0647ec724bf76c7115f7aec55971\"\u003e\u003ccode\u003ec625d31\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4497\"\u003e#4497\u003c/a\u003e: preserve nested ampersands during minification (\u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4500\"\u003e#4500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/34474e278528a60f58c959c0f422d2bfa6f6886d\"\u003e\u003ccode\u003e34474e2\u003c/code\u003e\u003c/a\u003e better isolation of current part in js parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evanw/esbuild/commit/07f6e8c50677e0b41e5ed726c08b0ea200b14e5b\"\u003e\u003ccode\u003e07f6e8c\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/evanw/esbuild/issues/4507\"\u003e#4507\u003c/a\u003e: \u003ccode\u003eimport\u003c/code\u003e assignment tree-shaking bug\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evanw/esbuild/compare/v0.28.1...v0.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jspdf-autotable` from 5.0.8 to 5.0.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/releases\"\u003ejspdf-autotable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature/text option pass by \u003ca href=\"https://github.com/TimT1919\"\u003e\u003ccode\u003e@​TimT1919\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simonbengtsson/jsPDF-AutoTable/pull/1114\"\u003esimonbengtsson/jsPDF-AutoTable#1114\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/TimT1919\"\u003e\u003ccode\u003e@​TimT1919\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simonbengtsson/jsPDF-AutoTable/pull/1114\"\u003esimonbengtsson/jsPDF-AutoTable#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\"\u003ehttps://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\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/simonbengtsson/jsPDF-AutoTable/commit/af6dd38ff6b2383069407ef352efcea127e2cb82\"\u003e\u003ccode\u003eaf6dd38\u003c/code\u003e\u003c/a\u003e 5.0.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/bad76df5e1ee9e7bdbca98d80c3970eac1ba3385\"\u003e\u003ccode\u003ebad76df\u003c/code\u003e\u003c/a\u003e test: add test case that textOptions is passed to jspdf.text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/443bb0e41e4808ba1f7601ef415722e6871c29c1\"\u003e\u003ccode\u003e443bb0e\u003c/code\u003e\u003c/a\u003e feat: pass textOptions to autoTableText in printRow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/d66b06b96fc68a008a21602a11d10626aeef7651\"\u003e\u003ccode\u003ed66b06b\u003c/code\u003e\u003c/a\u003e feat: pass textOptions to jspdf.text in autoTableText\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/commit/898e2751095c79b7b83f21d3da23087c415ab7b3\"\u003e\u003ccode\u003e898e275\u003c/code\u003e\u003c/a\u003e feat: add textOptions to Styles\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.8...v5.0.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mssql` from 12.7.0 to 12.7.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tediousjs/node-mssql/releases\"\u003emssql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.7.9\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.8...v12.7.9\"\u003e12.7.9\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereject begin() and prepare() with ECONNCLOSED when the pool is not connected (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d7bb9a3f84fbb8ae59fc0ab98d2ed52053436155\"\u003ed7bb9a3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject begin() and prepare() with ENOCONN when there is no pool (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c26163ee8d898dedcee4b311762c1886264e62d0\"\u003ec26163e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 bulk loads swallowing what their callback throws (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/670c61244fec839b2cb0b11fa287c751ac29a2f6\"\u003e670c612\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.7...v12.7.8\"\u003e12.7.8\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecall a request's callback once when it throws (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c4790cdcbc57ea4f62426302f547bac3f2c30286\"\u003ec4790cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease the connection when msnodesqlv8 throws starting a request (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/608da61878841ab0efb2dd14e44c74ee90aefd85\"\u003e608da61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esettle msnodesqlv8 bulk loads when no connection can be acquired (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/7774ae0162b66270bf9e13b5ba9b6ca04d917e3d\"\u003e7774ae0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.6...v12.7.7\"\u003e12.7.7\u003c/a\u003e (2026-10-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ecomplete msnodesqlv8 streams when an error ends the batch (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/adbb02832a733e5bdd029b0a017d14c90a51cb91\"\u003eadbb028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egive the connection back when a transaction fails to begin (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/1ac92d163ff6bfe8854e02a16b3bf44d6dfd12ca\"\u003e1ac92d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egive the connection back when an msnodesqlv8 transaction fails to begin (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/8372c96b08f1e5a4325b7fc7782ef510ba5a64f0\"\u003e8372c96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epass request errors to the destination of Request.pipe() (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fc19d959c67d2a7acfe8ab1b8fd718697a5060fd\"\u003efc19d95\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epublish the destroy of a pooled tedious connection that has already closed (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fb66299f658fdcc9ec60dcc58d53a7cf12280b24\"\u003efb66299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease a piped request when its destination fails (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d039a07671cc6d7fab64aa8bb828ba631f6f766a\"\u003ed039a07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume a request when its readable stream is destroyed (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/cbcd0f44ab20e49966e0bb0ca8a880810a4a9424\"\u003ecbcd0f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 streams losing rows under back pressure (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/061048ec3455611803c001d30c8966c8539c3263\"\u003e061048e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estop msnodesqlv8 streams resumed after they end from hanging the connection (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/081483fcc5c2d60c7534a7537554f557e89ddfaf\"\u003e081483f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.5...v12.7.6\"\u003e12.7.6\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebulk load created tables and Xml columns on tedious (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/0a7a02c0e3ea216d6c4070310ce7002f12c806c2\"\u003e0a7a02c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev12.7.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.4...v12.7.5\"\u003e12.7.5\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ekeep every preceding error on msnodesqlv8 requests (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d040e22a13abb96788d3d41f600b21cb2098dd8a\"\u003ed040e22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject a terminated msnodesqlv8 statement with its own error (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/3468d963e26634b23b1cfd255b66a8307be9fca2\"\u003e3468d96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject msnodesqlv8 requests whose errors do not end the batch (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/6cedc31f524823a2ee337e33607400030405343b\"\u003e6cedc31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereport cancelled msnodesqlv8 requests, including paused streams, as ECANCEL (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/11923a26e8f2ce7a0b681036b693efaab6949736\"\u003e11923a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereport errors from msnodesqlv8 commit and rollback (\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/77a8dd825b8ce31937790fd2ffeeb535b61276f4\"\u003e77a8dd8\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/tediousjs/node-mssql/commit/d0803a081f13fb9efb7b8d9cb06f93c54c6ff619\"\u003e\u003ccode\u003ed0803a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1932\"\u003e#1932\u003c/a\u003e from dhensby/fix/msnodesqlv8-bulk-bind-reentry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/97aa78e4162d1d1fb3ed4d984a69f1b1b6335025\"\u003e\u003ccode\u003e97aa78e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1931\"\u003e#1931\u003c/a\u003e from dhensby/fix/transaction-prepare-connected-guard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/670c61244fec839b2cb0b11fa287c751ac29a2f6\"\u003e\u003ccode\u003e670c612\u003c/code\u003e\u003c/a\u003e fix: stop msnodesqlv8 bulk loads swallowing what their callback throws\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/fddb3a3359832ed2104c3eea4dd58def24e40ea6\"\u003e\u003ccode\u003efddb3a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1927\"\u003e#1927\u003c/a\u003e from dhensby/fix/pool-acquire-callback-reentry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/d7bb9a3f84fbb8ae59fc0ab98d2ed52053436155\"\u003e\u003ccode\u003ed7bb9a3\u003c/code\u003e\u003c/a\u003e fix: reject begin() and prepare() with ECONNCLOSED when the pool is not conne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c26163ee8d898dedcee4b311762c1886264e62d0\"\u003e\u003ccode\u003ec26163e\u003c/code\u003e\u003c/a\u003e fix: reject begin() and prepare() with ENOCONN when there is no pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/da4447de2626e7fc6cc769c613402d5030639a9b\"\u003e\u003ccode\u003eda4447d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1925\"\u003e#1925\u003c/a\u003e from dhensby/fix/msnodesqlv8-bulk-acquire-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/e08812ccf3bc3a9d35d3b54f3f186c149f3dcb36\"\u003e\u003ccode\u003ee08812c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tediousjs/node-mssql/issues/1926\"\u003e#1926\u003c/a\u003e from dhensby/docs/ereqinprog-request-errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/c4790cdcbc57ea4f62426302f547bac3f2c30286\"\u003e\u003ccode\u003ec4790cd\u003c/code\u003e\u003c/a\u003e fix: call a request's callback once when it throws\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tediousjs/node-mssql/commit/608da61878841ab0efb2dd14e44c74ee90aefd85\"\u003e\u003ccode\u003e608da61\u003c/code\u003e\u003c/a\u003e fix: release the connection when msnodesqlv8 throws starting a request\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tediousjs/node-mssql/compare/v12.7.0...v12.7.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdfkit` from 0.18.0 to 0.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/foliojs/pdfkit/releases\"\u003epdfkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.20.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bundlers and file tracers packing the ESM copies of the standard font metrics instead of the CommonJS ones the Node build actually loads, which left \u003ccode\u003eCannot find module\u003c/code\u003e errors for every standard font at runtime, by resolving the internal \u003ccode\u003e#standard-fonts/*\u003c/code\u003e mapping to a single file under all conditions\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.file()\u003c/code\u003e throwing when the same in-memory attachment is embedded twice under one name, because the creation and modified dates the deduplication check compares are absent for sources that are not read from disk\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.text()\u003c/code\u003e throwing \u003ccode\u003eunsupported number: NaN\u003c/code\u003e when \u003ccode\u003elineBreak: false\u003c/code\u003e is combined with \u003ccode\u003eunderline\u003c/code\u003e, \u003ccode\u003estrike\u003c/code\u003e, \u003ccode\u003elink\u003c/code\u003e or \u003ccode\u003egoTo\u003c/code\u003e, because the rendered width was computed from the line wrapper's measurements, which are never produced when wrapping is disabled\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.20.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a Node ESM build so \u003ccode\u003eimport 'pdfkit'\u003c/code\u003e in Node resolves to the Node build (real file system, native zlib, Node streams, self-registering standard fonts) instead of the browser bundle\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.20.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eTLDR:  \u0026quot;A PDF generation library for Node.js\u0026quot; -\u0026gt; \u0026quot;A JavaScript PDF generation library\u0026quot;\u003c/p\u003e\n\u003ch3\u003eStandard Font Support rewritten\u003c/h3\u003e\n\u003cp\u003eStandard font support has been rewritten to use pre-parsed font metrics instead of parsing raw AFM definitions at runtime. The new approach is more efficient (less runtime overhead and memory usage) and reduces the size of the browser bundle significantly. Standalone build which bundles all standard fonts is down to 1.3MB from 2.3MB.\u003c/p\u003e\n\u003cp\u003eIn Node, font metrics are loaded lazily as before, while in browser builds, except the standalone one, each font must be imported from \u003ccode\u003epdfkit/standard-fonts/*\u003c/code\u003e and registered with \u003ccode\u003eregisterStdFonts()\u003c/code\u003e. Previously, to use a standard font in browser was necessary to use a bundler.\u003c/p\u003e\n\u003cp\u003eSee usage example in output helpers section below.\u003c/p\u003e\n\u003ch3\u003eRemoval of Node specific dependencies\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eBuffer\u003c/code\u003e is no longer used internally. \u003ccode\u003eUint8Array\u003c/code\u003e is now the minimum denominator for binary data in both Node and browsers. Since \u003ccode\u003eBuffer\u003c/code\u003e is a Uint8Array subclass, this change is fully backward compatible.\u003c/p\u003e\n\u003cp\u003eNative \u003ccode\u003efs\u003c/code\u003e, \u003ccode\u003ezlib\u003c/code\u003e and \u003ccode\u003eReadableStream\u003c/code\u003e are conditionally imported only in Node. Browser builds use minimal implementations. This approach gives us the best of both worlds: Node builds still use the native modules, while browser ones are portable.\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/diegomura\"\u003e\u003ccode\u003e@​diegomura\u003c/code\u003e\u003c/a\u003e for his help in removing the Node specific dependencies.\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003eregisterFile\u003c/code\u003e API\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003eregisterFile(path, data)\u003c/code\u003e API allows registering in-memory files globally. The \u003ccode\u003edata\u003c/code\u003e argument must be a \u003ccode\u003eUint8Array\u003c/code\u003e. Passing \u003ccode\u003eundefined\u003c/code\u003e as data unregisters the path.\u003c/p\u003e\n\u003cp\u003eIn browsers, it can be used as a simplified virtual file system. In Node, this is useful for registering fonts, images and other resources that are not available on disk. The native file system is still used when the path is not registered.\u003c/p\u003e\n\u003cpre lang=\"javascript\"\u003e\u003ccode\u003eimport { PDFDocument, registerFile } from 'pdfkit';\r\n\u003cp\u003econst response = await fetch('/fonts/Roboto-Regular.ttf');\nconst fontData = new Uint8Array(await response.arrayBuffer());\u003c/p\u003e\n\u003cp\u003eregisterFile('fonts/Roboto-Regular.ttf', fontData);\u003c/p\u003e\n\u003cp\u003econst doc = new PDFDocument();\u003c/p\u003e\n\u003cp\u003e// register an alias for the font path\ndoc.registerFont('Roboto', 'fonts/Roboto-Regular.ttf');\n// or use the path directly\ndoc.font('fonts/Roboto-Regular.ttf');\u003c/p\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/foliojs/pdfkit/blob/master/CHANGELOG.md\"\u003epdfkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e[v0.20.2] - 2026-08-29\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bundlers and file tracers packing the ESM copies of the standard font metrics instead of the CommonJS ones the Node build actually loads, which left \u003ccode\u003eCannot find module\u003c/code\u003e errors for every standard font at runtime, by resolving the internal \u003ccode\u003e#standard-fonts/*\u003c/code\u003e mapping to a single file under all conditions\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.file()\u003c/code\u003e throwing when the same in-memory attachment is embedded twice under one name, because the creation and modified dates the deduplication check compares are absent for sources that are not read from disk\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edoc.text()\u003c/code\u003e throwing \u003ccode\u003eunsupported number: NaN\u003c/code\u003e when \u003ccode\u003elineBreak: false\u003c/code\u003e is combined with \u003ccode\u003eunderline\u003c/code\u003e, \u003ccode\u003estrike\u003c/code\u003e, \u003ccode\u003elink\u003c/code\u003e or \u003ccode\u003egoTo\u003c/code\u003e, because the rendered width was computed from the line wrapper's measurements, which are never produced when wrapping is disabled\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.20.1] - 2026-08-23\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a Node ESM build so \u003ccode\u003eimport 'pdfkit'\u003c/code\u003e in Node resolves to the Node build (real file system, native zlib, Node streams, self-registering standard fonts) instead of the browser bundle\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.20.0] - 2026-08-23\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING CHANGE] Remove the virtual file system (\u003ccode\u003epdfkit/virtual-fs\u003c/code\u003e). Browser builds no longer depend on \u003ccode\u003efs\u003c/code\u003e: use \u003ccode\u003eregisterFile\u003c/code\u003e to register \u003ccode\u003eUint8Array\u003c/code\u003e data under a path, pass a \u003ccode\u003eUint8Array\u003c/code\u003e or \u003ccode\u003eArrayBuffer\u003c/code\u003e directly to \u003ccode\u003eregisterFont\u003c/code\u003e, \u003ccode\u003eimage\u003c/code\u003e and \u003ccode\u003efile\u003c/code\u003e, or pass a data URL directly to \u003ccode\u003eimage\u003c/code\u003e and \u003ccode\u003efile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eregisterFile(path, data, options)\u003c/code\u003e to globally register in-memory files in Node and browsers, with optional \u003ccode\u003ebirthtime\u003c/code\u003e and \u003ccode\u003ectime\u003c/code\u003e metadata. Passing \u003ccode\u003eundefined\u003c/code\u003e as data unregisters the path\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Export \u003ccode\u003ePDFDocument\u003c/code\u003e, \u003ccode\u003eLineWrapper\u003c/code\u003e and \u003ccode\u003eregisterFile\u003c/code\u003e as named exports from the main Node and browser entry points while preserving the default \u003ccode\u003ePDFDocument\u003c/code\u003e export\u003c/li\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003etoBlob(document)\u003c/code\u003e and \u003ccode\u003etoBytes(document)\u003c/code\u003e output helpers under \u003ccode\u003epdfkit/output\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAccept already-parsed fontkit \u003ccode\u003eFont\u003c/code\u003e instances in \u003ccode\u003edoc.font()\u003c/code\u003e and \u003ccode\u003eregisterFont\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eLoad the PDF/A ICC profile from disk only when needed in Node, while continuing to bundle it in browser builds\u003c/li\u003e\n\u003cli\u003eAdd tools to convert raw AFM standard-font definitions into parsed or compact runtime JavaScript modules\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Use generated standard-font data instead of parsing raw AFM definitions at runtime. Node loads font metrics lazily; browser applications must import each font they use from \u003ccode\u003epdfkit/standard-fonts/*\u003c/code\u003e and register it with \u003ccode\u003eregisterStdFonts()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Restrict AcroForm options to documented mappings and explicit escape hatches.\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Stop automatically uppercasing annotation option keys.\u003c/li\u003e\n\u003cli\u003e[BREAKING CHANGE] Throw from \u003ccode\u003eaddNamedEmbeddedFile\u003c/code\u003e when no ref is given, instead of writing an unparseable \u003ccode\u003eundefined\u003c/code\u003e token into the \u003ccode\u003e/EmbeddedFiles\u003c/code\u003e name tree\u003c/li\u003e\n\u003cli\u003eDo not mutate options passed to \u003ccode\u003edoc.annotate()\u003c/code\u003e and its convenience methods (link, note, strike, lineAnnotation, rectAnnotation, ellipseAnnotation, textAnnotation, fileAnnotation)\u003c/li\u003e\n\u003cli\u003ePersist font options when adding a new page. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1739\"\u003e#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eUint8Array\u003c/code\u003e instead of Node's \u003ccode\u003eBuffer\u003c/code\u003e internally\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edate\u003c/code\u003e text field formatting emitting invalid JavaScript, so the format was never applied. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1546\"\u003e#1546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eindentAllLines\u003c/code\u003e applying the indent again on every paragraph and every page break, and keep it applied across continued text. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1606\"\u003e#1606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a hole in a sparse array being skipped entirely, which shifted every later entry down one\u003c/li\u003e\n\u003cli\u003eEncrypt strings inside name trees. Fixes \u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.19.1] - 2026-06-10\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix RGB JPEG embedded as DeviceGray (0.19.0 regression) (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e[v0.19.0] - 2026-06-07\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump node version requirement to 20+\u003c/li\u003e\n\u003cli\u003eBump minimum supported browsers to Firefox 115, iOS/Safari 16\u003c/li\u003e\n\u003cli\u003eFix text with input x as null\u003c/li\u003e\n\u003cli\u003eAdd opacity option to \u003ccode\u003edoc.image()\u003c/code\u003e to control image transparency\u003c/li\u003e\n\u003cli\u003eFix corrupted PDF when mixing standard and embedded fonts that share postscript name\u003c/li\u003e\n\u003cli\u003eFix PDF/UA compliance issues in kitchen-sink-accessible example\u003c/li\u003e\n\u003cli\u003eAdd bbox and placement options to PDFStructureElement for PDF/UA compliance\u003c/li\u003e\n\u003cli\u003eExtend \u003ccode\u003eroundedRect\u003c/code\u003e with \u003ccode\u003eborderRadius\u003c/code\u003e as number for all corners or per-corner array (CSS order)\u003c/li\u003e\n\u003cli\u003eFix accessibility: scope in TH element\u003c/li\u003e\n\u003cli\u003eFix PDF Name escaping for spot colors with spaces (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1644\"\u003e#1644\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/foliojs/pdfkit/commit/8d72a71c3e2b03f3253c221065e9efcc69ca5b7d\"\u003e\u003ccode\u003e8d72a71\u003c/code\u003e\u003c/a\u003e v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/70c9ad5adc5264c82f87805e1448b2028307fd13\"\u003e\u003ccode\u003e70c9ad5\u003c/code\u003e\u003c/a\u003e Document the parameter list each destination type takes (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/e04b677d71ce8e3af1263454e3e25c346b479535\"\u003e\u003ccode\u003ee04b677\u003c/code\u003e\u003c/a\u003e Fix doc.text() throwing NaN with lineBreak false and underline/strike/link/go...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/c6f57c63eca91eb4f4d97eb59aee303cfb2a8532\"\u003e\u003ccode\u003ec6f57c6\u003c/code\u003e\u003c/a\u003e fix: resolve \u003ccode\u003e#standard-fonts/*\u003c/code\u003e to one file under every condition (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/b87b5aca02c815482b0b098a9a90e5b0eba2f5d6\"\u003e\u003ccode\u003eb87b5ac\u003c/code\u003e\u003c/a\u003e Fix case-insensitive lookup for named CSS colors (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1780\"\u003e#1780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/69671d9df0ff24878e9e800d4495bd30b043f324\"\u003e\u003ccode\u003e69671d9\u003c/code\u003e\u003c/a\u003e Fix doc.file() throwing when the same in-memory attachment is added twice (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/1f1abb809ee1aa766bd2f8f400c43b5bf3221b77\"\u003e\u003ccode\u003e1f1abb8\u003c/code\u003e\u003c/a\u003e Bump ip-address from 10.2.0 to 10.4.0 (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/f58c4c7d01ad9a39fbbc4c026c93f05711bc3788\"\u003e\u003ccode\u003ef58c4c7\u003c/code\u003e\u003c/a\u003e Bump postcss from 8.5.15 to 8.5.25 (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/f048bddde0057f0ececa4972d7ccf687ea36b168\"\u003e\u003ccode\u003ef048bdd\u003c/code\u003e\u003c/a\u003e v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/foliojs/pdfkit/commit/910c86a84a17f524dcc4360bf195e6c4a6203908\"\u003e\u003ccode\u003e910c86a\u003c/code\u003e\u003c/a\u003e Add Node ESM build: route the node import condition to a real Node bundle (\u003ca href=\"https://redirect.github.com/foliojs/pdfkit/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/foliojs/pdfkit/compare/v0.18.0...v0.20.2\"\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.8 to 19.3.1\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.3.1 (October 14th, 2026)\u003c/h2\u003e\n\u003ch2\u003eReact Server Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove transport protocol (\u003ca href=\"https://redirect.github.com/facebook/react/pull/37845\"\u003e#37845\u003c/a\u003e by \u003ca href=\"https://github.com/unstubbable\"\u003e\u003ccode\u003e@​unstubbable\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e19.3.0 (September 9, 2026)\u003c/h2\u003e\n\u003cp\u003eBelow is a list of all new features, APIs, and bug fixes.\u003c/p\u003e\n\u003cp\u003eRead the \u003ca href=\"https://react.dev/blog/2026/09/09/react-19-3\"\u003eReact 19.3 release post\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003eNew React Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;ViewTransition /\u0026gt;\u003c/code\u003e: Adds \u003ccode\u003e\u0026lt;ViewTransition /\u0026gt;\u003c/code\u003e and \u003ccode\u003eaddTransitionType\u003c/code\u003e APIs to power View Transition animations in React (\u003ca href=\"https://github.com/sebmarkbage\"\u003e\u003ccode\u003e@​sebmarkbage\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jackpope\"\u003e\u003ccode\u003e@​jackpope\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/gaearon\"\u003e\u003ccode\u003e@​gaearon\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/31975\"\u003e#31975\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31987\"\u003e#31987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31996\"\u003e#31996\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/31999\"\u003e#31999\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32001\"\u003e#32001\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32002\"\u003e#32002\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32028\"\u003e#32028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32029\"\u003e#32029\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32031\"\u003e#32031\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32034\"\u003e#32034\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32038\"\u003e#32038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32041\"\u003e#32041\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32050\"\u003e#32050\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32090\"\u003e#32090\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32105\"\u003e#32105\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32254\"\u003e#32254\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32379\"\u003e#32379\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32422\"\u003e#32422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32462\"\u003e#32462\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32540\"\u003e#32540\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32545\"\u003e#32545\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32585\"\u003e#32585\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32599\"\u003e#32599\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32611\"\u003e#32611\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32612\"\u003e#32612\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32617\"\u003e#32617\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32651\"\u003e#32651\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32653\"\u003e#32653\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32656\"\u003e#32656\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32664\"\u003e#32664\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32699\"\u003e#32699\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32723\"\u003e#32723\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32734\"\u003e#32734\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32751\"\u003e#32751\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32752\"\u003e#32752\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32760\"\u003e#32760\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32761\"\u003e#32761\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32764\"\u003e#32764\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32772\"\u003e#32772\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32790\"\u003e#32790\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32819\"\u003e#32819\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32820\"\u003e#32820\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32822\"\u003e#32822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32833\"\u003e#32833\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32849\"\u003e#32849\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33094\"\u003e#33094\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33191\"\u003e#33191\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33200\"\u003e#33200\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33206\"\u003e#33206\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33293\"\u003e#33293\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33330\"\u003e#33330\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33331\"\u003e#33331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33332\"\u003e#33332\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33357\"\u003e#33357\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33362\"\u003e#33362\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33433\"\u003e#33433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33576\"\u003e#33576\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34374\"\u003e#34374\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34450\"\u003e#34450\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34481\"\u003e#34481\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34500\"\u003e#34500\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34502\"\u003e#34502\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34510\"\u003e#34510\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34511\"\u003e#34511\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34539\"\u003e#34539\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35567\"\u003e#35567\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35564\"\u003e#35564\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35485\"\u003e#35485\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35380\"\u003e#35380\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35063\"\u003e#35063\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35060\"\u003e#35060\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34676\"\u003e#34676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36917\"\u003e#36917\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35337\"\u003e#35337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35520\"\u003e#35520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFragment Refs: Add Refs to \u003ccode\u003e\u0026lt;Fragment /\u0026gt;\u003c/code\u003e to support composable platform behavior (\u003ca href=\"https://github.com/jackpope\"\u003e\u003ccode\u003e@​jackpope\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/sebmarkbage\"\u003e\u003ccode\u003e@​sebmarkbage\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Dhakshin2007\"\u003e\u003ccode\u003e@​Dhakshin2007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/chirokas\"\u003e\u003ccode\u003e@​chirokas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/teamleaderleo\"\u003e\u003ccode\u003e@​teamleaderleo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/fallintoplace\"\u003e\u003ccode\u003e@​fallintoplace\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/32465\"\u003e#32465\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32613\"\u003e#32613\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32619\"\u003e#32619\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32654\"\u003e#32654\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32660\"\u003e#32660\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32682\"\u003e#32682\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32722\"\u003e#32722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32813\"\u003e#32813\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/32814\"\u003e#32814\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33056\"\u003e#33056\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33058\"\u003e#33058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/33093\"\u003e#33093\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34069\"\u003e#34069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34103\"\u003e#34103\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34544\"\u003e#34544\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34545\"\u003e#34545\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37062\"\u003e#37062\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37061\"\u003e#37061\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37060\"\u003e#37060\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36047\"\u003e#36047\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/36010\"\u003e#36010\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35642\"\u003e#35642\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35641\"\u003e#35641\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35637\"\u003e#35637\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/35630\"\u003e#35630\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/34935\"\u003e#34935\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37457\"\u003e#37457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37408\"\u003e#37408\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37326\"\u003e#37326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37251\"\u003e#37251\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37171\"\u003e#37171\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37169\"\u003e#37169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37168\"\u003e#37168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37167\"\u003e#37167\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37166\"\u003e#37166\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37165\"\u003e#37165\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37164\"\u003e#37164\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37163\"\u003e#37163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37162\"\u003e#37162\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37161\"\u003e#37161\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37160\"\u003e#37160\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37125\"\u003e#37125\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37063\"\u003e#37063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew React DOM Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebrowser()\u003c/code\u003e: a new \u003ccode\u003ereact-dom\u003c/code\u003e API that returns a usable which errors during server rendering and resolves in the browser. \u003ccode\u003euse(browser())\u003c/code\u003e inside a \u003ccode\u003e\u0026lt;Suspense\u0026gt;\u003c/code\u003e boundary marks a subtree as browser-only without reporting a recoverable error (\u003ca href=\"https://github.com/gnoff\"\u003e\u003ccode\u003e@​gnoff\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/37143\"\u003e#37143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37241\"\u003e#37241\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eAdded an \u003ccode\u003eonBrowserBailout\u003c/code\u003e option to the \u003ccode\u003ereact-dom/server\u003c/code\u003e APIs to observe when a subtree defers to the browser (\u003ca href=\"https://github.com/gnoff\"\u003e\u003ccode\u003e@​gnoff\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/37193\"\u003e#37193\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotable changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable Trusted Types API integration (\u003ca href=\"https://github.com/rickhanlonii\"\u003e\u003ccode\u003e@​rickhanlonii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/35816\"\u003e#35816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransitions now render independently instead of being entangled into a single render, so a slow transition no longer holds up unrelated ones (\u003ca href=\"https://github.com/acdlite\"\u003e\u003ccode\u003e@​acdlite\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/37290\"\u003e#37290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a DEV-only warning when a component appears to have been unblocked by calling \u003ccode\u003euse()\u003c/code\u003e conditionally (\u003ca href=\"https://github.com/hoxyq\"\u003e\u003ccode\u003e@​hoxyq\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/eps1lon\"\u003e\u003ccode\u003e@​eps1lon\u003c/code\u003e\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/facebook/react/pull/37104\"\u003e#37104\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37203\"\u003e#37203\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/react/pull/37491\"\u003e#37491\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003ch3\u003eReact\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast Refresh Fixes\n\u003cul\u003e\n\u003cli\u003eFix Fast Refresh to find and remount edits to components wrapped behind \u003ccode\u003elazy()\u003c/code\u003e (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36965\"\u003e#36965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Fast Refresh so edits to a \u003ccode\u003ememo()\u003c/code\u003e comparison function take effect (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36964\"\u003e#36964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Fast Refresh crash when an edit changes the kind of a component's type (\u003ca href=\"https://github.com/sophiebits\"\u003e\u003ccode\u003e@​sophiebits\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/facebook/react/pull/36963\"\u003e#36963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUn...\n\n_Description has been truncated_","html_url":"https://github.com/linuxlearner-germany/Ausbildungsdoku_webapp/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxlearner-germany%2FAusbildungsdoku_webapp/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-19T04:25:08.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5917763186","node_id":"PR_kwDOTzKjms8AAAABJQEuhw","number":19,"state":"open","title":"build(deps): bump the production-dependencies group across 1 directory with 5 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-10-19T04:25:08.000Z","updated_at":"2026-10-19T04:25:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":5,"packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.1","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"firebase-admin","old_version":"13.10.0","new_version":"14.5.0","repository_url":"https://github.com/firebase/firebase-admin-node"},{"name":"firebase-functions","old_version":"6.6.0","new_version":"7.4.0","repository_url":"https://github.com/firebase/firebase-functions"},{"name":"zod","old_version":"3.25.76","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production-dependencies group with 5 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.1` | `8.7.1` |\n| [firebase-admin](https://github.com/firebase/firebase-admin-node) | `13.10.0` | `14.5.0` |\n| [firebase-functions](https://github.com/firebase/firebase-functions) | `6.6.0` | `7.4.0` |\n| [zod](https://github.com/colinhacks/zod) | `3.25.76` | `4.6.7` |\n\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.1 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.1...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firebase-admin` from 13.10.0 to 14.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-admin-node/releases\"\u003efirebase-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.5.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(fcm): migrate topic subscriptions to FCM v1 API (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3211\"\u003e#3211\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.5.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3260\"\u003e#3260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump sinon and \u003ccode\u003e@​types/sinon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3254\"\u003e#3254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump google-auth-library from 10.9.0 to 11.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3255\"\u003e#3255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump jwks-rsa from 4.0.1 to 4.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3259\"\u003e#3259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.4.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(ml): deprecate Machine Learning APIs (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.4.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​types/lodash\u003c/code\u003e from 4.17.24 to 4.17.25 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3256\"\u003e#3256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupgrade \u003ccode\u003e@​google-cloud/storage\u003c/code\u003e and \u003ccode\u003e@​google-cloud/firestore\u003c/code\u003e to the most recent version (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3253\"\u003e#3253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fast-uri from 3.1.5 to 3.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3249\"\u003e#3249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump browserslist from 4.28.4 to 4.28.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump nock from 14.0.16 to 14.0.17 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ccode\u003e@​fastify/busboy\u003c/code\u003e from 3.2.0 to 3.2.2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3246\"\u003e#3246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(docs): add custom \u003ccode\u003e@excludeFromDocs\u003c/code\u003e tag to filter generated docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3206\"\u003e#3206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ccode\u003e@​firebase/database-compat\u003c/code\u003e from 2.1.4 to 2.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3242\"\u003e#3242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/app-compat\u003c/code\u003e from 0.5.15 to 0.5.17 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3243\"\u003e#3243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/auth-types\u003c/code\u003e from 0.13.1 to 0.13.2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(ml): Skip flaky ML tests blocking nightly builds (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3241\"\u003e#3241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump brace-expansion (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​firebase/auth-compat\u003c/code\u003e from 0.6.8 to 0.6.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3238\"\u003e#3238\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Node.js SDK v14.3.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(dataconnect): update \u0026quot;X-Client-Version\u0026quot; header value to match the \u003ccode\u003eNode/Admin/{version}\u003c/code\u003e convention (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3230\"\u003e#3230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(dataconnect): add \u0026quot;X-Firebase-Sqlconnect-Affinity\u0026quot; header for GSLB soft stickiness (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3227\"\u003e#3227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(dataconnect): add \u0026quot;X-Client-Version\u0026quot; header for cloud monitoring (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3222\"\u003e#3222\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 14.3.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3237\"\u003e#3237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade \u003ccode\u003e@google-cloud\u003c/code\u003e and typescript-eslint dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3236\"\u003e#3236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​types/node\u003c/code\u003e from 26.1.1 to 26.2.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3231\"\u003e#3231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump \u003ccode\u003e@​microsoft/api-extractor\u003c/code\u003e from 7.58.9 to 7.58.12 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3224\"\u003e#3224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fast-uri from 3.1.4 to 3.1.5 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3228\"\u003e#3228\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/firebase/firebase-admin-node/commit/50ab2502c1faaf0685891ee5087a20dfd20eba2a\"\u003e\u003ccode\u003e50ab250\u003c/code\u003e\u003c/a\u003e [chore] Release 14.5.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3260\"\u003e#3260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/f95737bb34abd15db5e0f8ceb8f2d2d7399c73bf\"\u003e\u003ccode\u003ef95737b\u003c/code\u003e\u003c/a\u003e feat(fcm): migrate topic subscriptions to FCM v1 API (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3211\"\u003e#3211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/1163924a7503de29a6c98e9ccf89dca17adb99a3\"\u003e\u003ccode\u003e1163924\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump sinon and \u003ccode\u003e@​types/sinon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3254\"\u003e#3254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/df9a14854779a37488b912dc4a243fb934b71a4c\"\u003e\u003ccode\u003edf9a148\u003c/code\u003e\u003c/a\u003e build(deps): bump google-auth-library from 10.9.0 to 11.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3255\"\u003e#3255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/7505a1cf7d0af573e9e1620cc230a429b16f9a93\"\u003e\u003ccode\u003e7505a1c\u003c/code\u003e\u003c/a\u003e build(deps): bump jwks-rsa from 4.0.1 to 4.1.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3259\"\u003e#3259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/7cf116b4c4e73ff5b58814f343738535153fdf08\"\u003e\u003ccode\u003e7cf116b\u003c/code\u003e\u003c/a\u003e [chore] Release 14.4.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/72994c4547be462b48b4ffaf645828214d982d1b\"\u003e\u003ccode\u003e72994c4\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump \u003ccode\u003e@​types/lodash\u003c/code\u003e from 4.17.24 to 4.17.25 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3256\"\u003e#3256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/c151174db2b1fed3ed4b35838d4eedcd561bd6fa\"\u003e\u003ccode\u003ec151174\u003c/code\u003e\u003c/a\u003e upgrade \u003ccode\u003e@​google-cloud/storage\u003c/code\u003e and  \u003ccode\u003e@​google-cloud/firestore\u003c/code\u003e to the most recent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/cda2de96a7df4705b81d627facc8a79ad20cae58\"\u003e\u003ccode\u003ecda2de9\u003c/code\u003e\u003c/a\u003e build(deps): bump fast-uri from 3.1.5 to 3.1.7 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3249\"\u003e#3249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-node/commit/cb892610deaff505edf8d6a50f2d7e4342b1410b\"\u003e\u003ccode\u003ecb89261\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump browserslist from 4.28.4 to 4.28.9 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-node/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-admin-node/compare/v13.10.0...v14.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firebase-functions` from 6.6.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-functions/releases\"\u003efirebase-functions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePromoted 2nd gen Firebase Authentication triggers (onUserCreated and onUserDeleted) to general availability. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnify global manifest on globalThis for forward-compatible manifest extraction across duplicate module installations (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor WebhookOptions, Gemini, and Vertex AI provider types in v2/ai (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove unused fields from FAL functions (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(v2): re-export the express \u003ccode\u003eResponse\u003c/code\u003e type from \u003ccode\u003efirebase-functions/v2/https\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1798\"\u003e#1798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix malformed annotations and add missing JSDoc comments for AI provider reference docs (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1950\"\u003e#1950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExported \u003ccode\u003eai\u003c/code\u003e provider from \u003ccode\u003efirebase-functions/v2\u003c/code\u003e and fixed reference doc generation. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1949\"\u003e#1949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003efirebase-functions/logger/compat\u003c/code\u003e added synthetic Error stack traces to string \u003ccode\u003econsole.error\u003c/code\u003e calls and Node.js runtime warnings. (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1948\"\u003e#1948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(firestore): fallback to valid resource path in createSnapshotFromJson (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.3.3-rc.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore backwards compatibility for declared parameters when mixing SDK versions in nested dependencies (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1957\"\u003e#1957\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/firebase/firebase-functions/commit/8a8bae4484673c70bb201b1425daeeeb0e960381\"\u003e\u003ccode\u003e8a8bae4\u003c/code\u003e\u003c/a\u003e fix(identity): handle IS_NOT_TENANT filtering in SDK wrapper instead of Event...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3dca676d5518e87796c660de0375d007ffef8767\"\u003e\u003ccode\u003e3dca676\u003c/code\u003e\u003c/a\u003e fix(params): retain \u003ca href=\"https://github.com/alpha\"\u003e\u003ccode\u003e@​alpha\u003c/code\u003e\u003c/a\u003e tag on WireParamSpec to prevent stripped dts expor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/e10e90052b6a675680b5f7e32aacd7dd262677e2\"\u003e\u003ccode\u003ee10e900\u003c/code\u003e\u003c/a\u003e Auth v2 public release (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1959\"\u003e#1959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/5318afeeb9c6d496dca289430d41bf9b71ee4e10\"\u003e\u003ccode\u003e5318afe\u003c/code\u003e\u003c/a\u003e fix(params): remove internal WireParamSpec from public exports (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1960\"\u003e#1960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/27025b0081f8cedc9276186bbb16ecb67023a2ba\"\u003e\u003ccode\u003e27025b0\u003c/code\u003e\u003c/a\u003e docs(ai): explicitly declare tools and toolConfig on Vertex GenerateC… (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1958\"\u003e#1958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3d15762c78d10d5bc218c8e26dfe7a80e455591e\"\u003e\u003ccode\u003e3d15762\u003c/code\u003e\u003c/a\u003e fix(params): restore backwards compatibility for declared params with pre-\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/dd11b14ed3e7adacbbffc69a30131ac9ac69a450\"\u003e\u003ccode\u003edd11b14\u003c/code\u003e\u003c/a\u003e fix(scripts): pass space-separated flags in cloudbuild.yaml (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1956\"\u003e#1956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/a26938e909a142441a707782f30c925be2a6bd43\"\u003e\u003ccode\u003ea26938e\u003c/code\u003e\u003c/a\u003e feat: unify global manifest on globalThis for forward-compatible manifest ext...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/0d78dc2c7e5be3393e4900f238f68fcad8573010\"\u003e\u003ccode\u003e0d78dc2\u003c/code\u003e\u003c/a\u003e feat: remove custom tags feature and standardize release tags (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-functions/commit/3dab44a723b8cfc356193159cbcc7d5520e17e8c\"\u003e\u003ccode\u003e3dab44a\u003c/code\u003e\u003c/a\u003e Auth event v1 compat (\u003ca href=\"https://redirect.github.com/firebase/firebase-functions/issues/1953\"\u003e#1953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-functions/compare/v6.6.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zod` from 3.25.76 to 4.6.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/colinhacks/zod/releases\"\u003ezod's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.6.7\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eb500a2ee95134f81d74da7911d7378dd2853d042 4.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSix malicious commits pushed to \u003ccode\u003emain\u003c/code\u003e on September 21 with a compromised git credential were reverted the same day in \u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6620\"\u003e#6620\u003c/a\u003e and have since been removed from the history of \u003ccode\u003emain\u003c/code\u003e. None were ever published to npm. The npm provenance for 4.6.6 names 284243fb, the pre-rewrite copy of 9c219833 with identical contents.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e0cd3af5e9f50ad11bbcd4407a46a21b8848ba574 docs: load the en locale directly in Zod Mini\u003c/li\u003e\n\u003cli\u003e9d5e60f162997b764b40d45aa02481888db50dea docs: import locales from zod/locales, not z.locales\u003c/li\u003e\n\u003cli\u003e34a626f307871ecbb0123947559328dc52ed5e3e docs: tighten the z.locales tree-shaking note\u003c/li\u003e\n\u003cli\u003e74304ce5b5796b5edb9a88ceb8e170b6ea3e82df release: stage npm versions instead of publishing them (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6622\"\u003e#6622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eb2ef983e0711ff6517d6020b021071e2e5653efa docs: add Code for Japan to bronze sponsors\u003c/li\u003e\n\u003cli\u003e8fb2faf0584828a6a027d8279db36f6f52784462 docs: crop the Code for Japan logo and list it first in bronze\u003c/li\u003e\n\u003cli\u003ebacad518c41610d654658172d325874bf0ee6290 docs: square the Code for Japan logo to match the other bronze tiles\u003c/li\u003e\n\u003cli\u003ec42596bd1c87e941d7241d10e012c5c196adcc10 release: hold the run on the release-approval environment until the staged versions are approved (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6638\"\u003e#6638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea2ba4a67986a3e6b2b131be30084a2f460d9ea67 fix(types): declare record output and input as members, not base type arguments (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6645\"\u003e#6645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea0ebf970f2d752e5f58527cd2942ff48be4f46bd fix(v4): check array, set and map size bounds before parsing elements (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6652\"\u003e#6652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e529f78dd9431b07f49647fee3aa0819b3f8b66b7 4.6.6\u003c/li\u003e\n\u003cli\u003e9c219833c3a3764fa1f1ea9c5ecec8254a63c0b1 ci: stage at verbose so a failed OIDC token exchange says why\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.5\u003c/h2\u003e\n\u003ch2\u003eCommits:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ed2b135cfb7a3582b9eb515756b9166bcb9521f4a docs: add the 4.6.x patch highlights to the 4.6 post\u003c/li\u003e\n\u003cli\u003ef1448f7cee00df9fe1e9ad84a000aa1828cc8bc1 docs: fold the 4.6.x patch highlights into the 4.6 post's own sections\u003c/li\u003e\n\u003cli\u003ede65a5cb39ed22a507fac935788f718fa88d104f docs: lead the properties section with the check and add a Zod Mini tab (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6598\"\u003e#6598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e56222cd1532c07bcb91b67df529cab4c0a215330 feat(instanceof): key the .properties() shape off the instance type (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6600\"\u003e#6600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eca0229a404818290e6cdcfefcd7eb2d04bcbb543 Revert \u0026quot;feat: add z.currencyCode() over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6595\"\u003e#6595\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003ecc4cd4ee9c52fcaa10964e48cc144541e41a5ed9 Revert \u0026quot;Revert \u0026quot;feat: add z.currencyCode() over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6595\"\u003e#6595\u003c/a\u003e)\u0026quot;\u0026quot;\u003c/li\u003e\n\u003cli\u003e0f3f5ee3ca56c7574bf849e54f79e9a6e02562ee 4.6.5\u003c/li\u003e\n\u003cli\u003e59bbc03e10c636b9eb3c393dfeb552819774ec21 chore: re-pin the integration peers to the workspace zod after the 4.6.5 bump\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.4\u003c/h2\u003e\n\u003cp\u003eA patch on top of \u003ca href=\"https://github.com/colinhacks/zod/releases/tag/v4.6.3\"\u003e4.6.3\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/d6bc1e30\"\u003e\u003ccode\u003ed6bc1e30\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003ez.currencyCode()\u003c/code\u003e over a vendored ISO 4217 list, refreshed weekly by CI (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6595\"\u003e#6595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/ad32d751\"\u003e\u003ccode\u003ead32d751\u003c/code\u003e\u003c/a\u003e perf: \u003ccode\u003ez.url()\u003c/code\u003e rejects an invalid URL with \u003ccode\u003eURL.canParse()\u003c/code\u003e instead of a throwing constructor, about 50x faster; fewer allocations on the validation path (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6588\"\u003e#6588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/2bb08717\"\u003e\u003ccode\u003e2bb08717\u003c/code\u003e\u003c/a\u003e chore: re-pin the integration peers to the workspace zod after the 4.6.4 bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/f6e1701a\"\u003e\u003ccode\u003ef6e1701a\u003c/code\u003e\u003c/a\u003e chore(deps): bump next to 15.5.25 and vite to 7.3.6 (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6153\"\u003e#6153\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.6.3\u003c/h2\u003e\n\u003cp\u003eA patch on top of \u003ca href=\"https://github.com/colinhacks/zod/releases/tag/v4.6.2\"\u003e4.6.2\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/413cce9a\"\u003e\u003ccode\u003e413cce9a\u003c/code\u003e\u003c/a\u003e fix(v4): make z.properties() a check again (\u003ca href=\"https://redirect.github.com/colinhacks/zod/pull/6594\"\u003e#6594\u003c/a\u003e) — removes the standalone \u003ccode\u003ez.properties()\u003c/code\u003e schema from 4.6.0; \u003ccode\u003ez.instanceof().properties()\u003c/code\u003e and \u003ccode\u003e.check(...z.properties())\u003c/code\u003e are unchanged\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/75d63ee1\"\u003e\u003ccode\u003e75d63ee1\u003c/code\u003e\u003c/a\u003e docs: show only the \u003ccode\u003e.properties()\u003c/code\u003e method form in the 4.6 post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/46da9572\"\u003e\u003ccode\u003e46da9572\u003c/code\u003e\u003c/a\u003e docs: match the error-message examples to what the parsers emit\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/colinhacks/zod/commit/b500a2ee95134f81d74da7911d7378dd2853d042\"\u003e\u003ccode\u003eb500a2e\u003c/code\u003e\u003c/a\u003e 4.6.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/9c219833c3a3764fa1f1ea9c5ecec8254a63c0b1\"\u003e\u003ccode\u003e9c21983\u003c/code\u003e\u003c/a\u003e ci: stage at verbose so a failed OIDC token exchange says why\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/529f78dd9431b07f49647fee3aa0819b3f8b66b7\"\u003e\u003ccode\u003e529f78d\u003c/code\u003e\u003c/a\u003e 4.6.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/a0ebf970f2d752e5f58527cd2942ff48be4f46bd\"\u003e\u003ccode\u003ea0ebf97\u003c/code\u003e\u003c/a\u003e fix(v4): check array, set and map size bounds before parsing elements (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6652\"\u003e#6652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/a2ba4a67986a3e6b2b131be30084a2f460d9ea67\"\u003e\u003ccode\u003ea2ba4a6\u003c/code\u003e\u003c/a\u003e fix(types): declare record output and input as members, not base type argumen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/c42596bd1c87e941d7241d10e012c5c196adcc10\"\u003e\u003ccode\u003ec42596b\u003c/code\u003e\u003c/a\u003e release: hold the run on the release-approval environment until the staged ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/bacad518c41610d654658172d325874bf0ee6290\"\u003e\u003ccode\u003ebacad51\u003c/code\u003e\u003c/a\u003e docs: square the Code for Japan logo to match the other bronze tiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/8fb2faf0584828a6a027d8279db36f6f52784462\"\u003e\u003ccode\u003e8fb2faf\u003c/code\u003e\u003c/a\u003e docs: crop the Code for Japan logo and list it first in bronze\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/b2ef983e0711ff6517d6020b021071e2e5653efa\"\u003e\u003ccode\u003eb2ef983\u003c/code\u003e\u003c/a\u003e docs: add Code for Japan to bronze sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/colinhacks/zod/commit/74304ce5b5796b5edb9a88ceb8e170b6ea3e82df\"\u003e\u003ccode\u003e74304ce\u003c/code\u003e\u003c/a\u003e release: stage npm versions instead of publishing them (\u003ca href=\"https://redirect.github.com/colinhacks/zod/issues/6622\"\u003e#6622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/colinhacks/zod/compare/v3.25.76...v4.6.7\"\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 zod since your current version.\u003c/p\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/SonuSojan/garage-boilerplate-sonu/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonuSojan%2Fgarage-boilerplate-sonu/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-19T01:17:16.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5916159343","node_id":"PR_kwDOM6ADXc8AAAABJOzxUA","number":742,"state":"open","title":"build(deps): bump the non-major-dependencies group across 1 directory with 35 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-10-19T01:17:16.000Z","updated_at":"2026-10-19T01:23:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"non-major-dependencies","update_count":35,"packages":[{"name":"eslint-plugin-prettier","old_version":"5.5.6","new_version":"5.5.7","repository_url":"https://github.com/prettier/eslint-plugin-prettier"},{"name":"knip","old_version":"6.40.0","new_version":"6.41.0","repository_url":"https://github.com/webpro-nl/knip"},{"name":"prettier","old_version":"3.9.9","new_version":"3.9.10","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.71.1","new_version":"8.71.2","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@vitest/coverage-v8","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"vitest","old_version":"5.0.3","new_version":"5.0.5","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"@nestjs/common","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/core","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@nestjs/jwt","old_version":"12.0.2","new_version":"12.0.3","repository_url":"https://github.com/nestjs/jwt"},{"name":"@nestjs/platform-express","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@sentry/nestjs","old_version":"11.6.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"bullmq","old_version":"6.3.11","new_version":"6.3.15","repository_url":"https://github.com/taskforcesh/bullmq"},{"name":"mongoose","old_version":"9.11.1","new_version":"9.11.2","repository_url":"https://github.com/Automattic/mongoose"},{"name":"nodemailer","old_version":"10.0.16","new_version":"10.1.1","repository_url":"https://github.com/nodemailer/nodemailer"},{"name":"uuid","old_version":"14.0.2","new_version":"14.0.3","repository_url":"https://github.com/uuidjs/uuid"},{"name":"@nestjs/schematics","old_version":"12.0.6","new_version":"12.0.7","repository_url":"https://github.com/nestjs/schematics"},{"name":"@nestjs/testing","old_version":"12.1.2","new_version":"12.1.3","repository_url":"https://github.com/nestjs/nest"},{"name":"@types/node","old_version":"24.19.1","new_version":"24.19.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"ts-jest","old_version":"29.4.14","new_version":"29.4.15","repository_url":"https://github.com/kulshekhar/ts-jest"},{"name":"@sentry/react","old_version":"11.6.0","new_version":"11.8.0","repository_url":"https://github.com/getsentry/sentry-javascript"},{"name":"@tanstack/react-query","old_version":"5.104.1","new_version":"5.104.3","repository_url":"https://github.com/TanStack/query"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dropzone","old_version":"20.1.2","new_version":"20.1.3","repository_url":"https://github.com/react-dropzone/react-dropzone"},{"name":"@playwright/test","old_version":"1.64.0","new_version":"1.64.1","repository_url":"https://github.com/microsoft/playwright"},{"name":"@storybook/addon-docs","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/addon-links","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@storybook/react-vite","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"},{"name":"@testing-library/user-event","old_version":"14.6.7","new_version":"14.6.8","repository_url":"https://github.com/testing-library/user-event"},{"name":"jsdom","old_version":"30.1.2","new_version":"30.1.3","repository_url":"https://github.com/jsdom/jsdom"},{"name":"msw","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/mswjs/msw"},{"name":"sass","old_version":"1.105.1","new_version":"1.105.2","repository_url":"https://github.com/sass/dart-sass"},{"name":"storybook","old_version":"10.6.1","new_version":"10.6.2","repository_url":"https://github.com/storybookjs/storybook"}],"path":null,"ecosystem":"npm"},"body":"Bumps the non-major-dependencies group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | `5.5.6` | `5.5.7` |\n| [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `6.40.0` | `6.41.0` |\n| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.1` | `8.71.2` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `5.0.3` | `5.0.5` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `5.0.3` | `5.0.5` |\n| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `12.1.2` | `12.1.3` |\n| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `12.1.2` | `12.1.3` |\n| [@nestjs/jwt](https://github.com/nestjs/jwt) | `12.0.2` | `12.0.3` |\n| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `12.1.2` | `12.1.3` |\n| [@sentry/nestjs](https://github.com/getsentry/sentry-javascript) | `11.6.0` | `11.8.0` |\n| [bullmq](https://github.com/taskforcesh/bullmq) | `6.3.11` | `6.3.15` |\n| [mongoose](https://github.com/Automattic/mongoose) | `9.11.1` | `9.11.2` |\n| [nodemailer](https://github.com/nodemailer/nodemailer) | `10.0.16` | `10.1.1` |\n| [uuid](https://github.com/uuidjs/uuid) | `14.0.2` | `14.0.3` |\n| [@nestjs/schematics](https://github.com/nestjs/schematics) | `12.0.6` | `12.0.7` |\n| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `12.1.2` | `12.1.3` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.19.1` | `24.19.2` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.14` | `29.4.15` |\n| [@sentry/react](https://github.com/getsentry/sentry-javascript) | `11.6.0` | `11.8.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.104.1` | `5.104.3` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [react-dropzone](https://github.com/react-dropzone/react-dropzone) | `20.1.2` | `20.1.3` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.64.0` | `1.64.1` |\n| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `10.6.1` | `10.6.2` |\n| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `10.6.1` | `10.6.2` |\n| [@storybook/react](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/react) | `10.6.1` | `10.6.2` |\n| [@storybook/react-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite) | `10.6.1` | `10.6.2` |\n| [@testing-library/user-event](https://github.com/testing-library/user-event) | `14.6.7` | `14.6.8` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.2` | `30.1.3` |\n| [msw](https://github.com/mswjs/msw) | `3.0.2` | `3.0.3` |\n| [sass](https://github.com/sass/dart-sass) | `1.105.1` | `1.105.2` |\n| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.6.1` | `10.6.2` |\n\n\nUpdates `eslint-plugin-prettier` from 5.5.6 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/prettier/eslint-plugin-prettier/releases\"\u003eeslint-plugin-prettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003e#796\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e! - Fix fallback diagnostic locations for all supported line endings.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/805\"\u003e#805\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - Report a clear error when the sync worker fails to load, so a missing \u003ccode\u003eprettier\u003c/code\u003e dependency now fails fast with \u003ccode\u003eCannot find package 'prettier'\u003c/code\u003e instead of hanging ESLint indefinitely.\u003c/p\u003e\n\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/truongbo17\"\u003e\u003ccode\u003e@​truongbo17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/798\"\u003eprettier/eslint-plugin-prettier#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003eprettier/eslint-plugin-prettier#796\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-plugin-prettier/compare/v5.5.6...v5.5.7\"\u003ehttps://github.com/prettier/eslint-plugin-prettier/compare/v5.5.6...v5.5.7\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/eslint-plugin-prettier/blob/main/CHANGELOG.md\"\u003eeslint-plugin-prettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/796\"\u003e#796\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e! - Fix fallback diagnostic locations for all supported line endings.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/pull/805\"\u003e#805\u003c/a\u003e \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e Thanks \u003ca href=\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e! - Report a clear error when the sync worker fails to load, so a missing \u003ccode\u003eprettier\u003c/code\u003e dependency now fails fast with \u003ccode\u003eCannot find package 'prettier'\u003c/code\u003e instead of hanging ESLint indefinitely.\u003c/p\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/prettier/eslint-plugin-prettier/commit/e6dd27a4e4015748b2e87c646be2c1a530789343\"\u003e\u003ccode\u003ee6dd27a\u003c/code\u003e\u003c/a\u003e chore: keep packageManager when cleaning package.json for release (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7544956b642d4e653c235d178432e4d60a312b6b\"\u003e\u003ccode\u003e7544956\u003c/code\u003e\u003c/a\u003e chore: release eslint-plugin-prettier (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/799\"\u003e#799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/e3e52386bd8ab1604d4d41ecd961de5e6749eed8\"\u003e\u003ccode\u003ee3e5238\u003c/code\u003e\u003c/a\u003e ci: enable npm publish provenance for changesets v3 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/807\"\u003e#807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7c923c41069c939d6c6c8b7cfcad8f6a266f5276\"\u003e\u003ccode\u003e7c923c4\u003c/code\u003e\u003c/a\u003e build(deps): Bump http-cache-semantics from 4.2.0 to 4.3.0 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/806\"\u003e#806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/1b7c43322ce0eb3ee7495d91481613d39d97af52\"\u003e\u003ccode\u003e1b7c433\u003c/code\u003e\u003c/a\u003e fix: bump synckit to surface worker failures instead of hanging (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/a6b3feb3ce5d0bf785ddf4a83d24cf6a5c4bb902\"\u003e\u003ccode\u003ea6b3feb\u003c/code\u003e\u003c/a\u003e docs: explain line endings and \u003ccode\u003eendOfLine\u003c/code\u003e behavior (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/2f6ba1dca350a40857884103a7bf0e74b64901f7\"\u003e\u003ccode\u003e2f6ba1d\u003c/code\u003e\u003c/a\u003e ci: exercise the getLocFromIndex ponyfill on ESLint 9 (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/803\"\u003e#803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/cf1d2c5cffb7520d28fe680603cc4906ada0816f\"\u003e\u003ccode\u003ecf1d2c5\u003c/code\u003e\u003c/a\u003e chore(deps): update (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/802\"\u003e#802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/9f14a554f9737b1b985e2b26501d3bb2defac920\"\u003e\u003ccode\u003e9f14a55\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/commit/7e53ecd882fe6f0f74150cb0a539776b64182b3e\"\u003e\u003ccode\u003e7e53ecd\u003c/code\u003e\u003c/a\u003e fix: map fallback source locations to actual line starts (\u003ca href=\"https://redirect.github.com/prettier/eslint-plugin-prettier/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.6...v5.5.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `knip` from 6.40.0 to 6.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/webpro-nl/knip/releases\"\u003eknip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 6.41.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Flue plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2124\"\u003e#2124\u003c/a\u003e) (c52737d45ff008d6d96d4c2d4182048a2aa64602) - thanks \u003ca href=\"https://github.com/LuisFigueroaG\"\u003e\u003ccode\u003e@​LuisFigueroaG\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eMatch all React Native config file extensions (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2125\"\u003e#2125\u003c/a\u003e) (898fdffb37ae0bdb3d2653038eb10c2e01edf983) - thanks \u003ca href=\"https://github.com/LuisFigueroaG\"\u003e\u003ccode\u003e@​LuisFigueroaG\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eConsolidate fixture guidance and extend plugin guidelines (37a4ca04645f71f599e9b530676543f9893bd641)\u003c/li\u003e\n\u003cli\u003eAdd AI contribution policy (b15f0fbb090ea0427240880da2bec602c11cea50)\u003c/li\u003e\n\u003cli\u003eUse files from tsconfig references with --use-tsconfig-files (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2126\"\u003e#2126\u003c/a\u003e) (9618185eafb0c5cb365035f89e9d66718642338a) - thanks \u003ca href=\"https://github.com/kaanisthatyou\"\u003e\u003ccode\u003e@​kaanisthatyou\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eCompile gitignore walk patterns once (resolve \u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2127\"\u003e#2127\u003c/a\u003e) (09c80299779fa5abe133ee8f82051c25870007b8)\u003c/li\u003e\n\u003cli\u003eDrop readdir order dependent case from gitignore walk test (ab3da8ff95a05a0fbfba6873b64559017d038aa7)\u003c/li\u003e\n\u003cli\u003efix: recognize binaries from absent optional dependencies (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2120\"\u003e#2120\u003c/a\u003e) (d908556eaa98bf9637a2744d2de089bab31b8dbc) - thanks \u003ca href=\"https://github.com/DreamLongYT\"\u003e\u003ccode\u003e@​DreamLongYT\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eApply a directory's .gitignore before walking its subdirectories (9560c07862d4c72dc956371b9a77e049d83ed4a9)\u003c/li\u003e\n\u003cli\u003eApply nested .gitignore files to workspace globs (23d35421dd67c405254f2f8bcbc09b18d224e338)\u003c/li\u003e\n\u003cli\u003eUpdate gitignore matcher and walk notes (499f85f4544457dc7c51c4a7612fea69773ef3dd)\u003c/li\u003e\n\u003cli\u003eKeep the cwd out of glob patterns and matchers (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2107\"\u003e#2107\u003c/a\u003e) (1e82fb807c88cc46951f2028214569f9a2eb0061) - thanks \u003ca href=\"https://github.com/kaanisthatyou\"\u003e\u003ccode\u003e@​kaanisthatyou\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSupport function configs in Rsbuild plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2122\"\u003e#2122\u003c/a\u003e) (38071db87e9023e5dd61173ce32f9020a1a5d7ff) - thanks \u003ca href=\"https://github.com/bytedoe\"\u003e\u003ccode\u003e@​bytedoe\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSeparate Expo Router plugin; remove expo-router entry points from Expo plugin (\u003ca href=\"https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/2128\"\u003e#2128\u003c/a\u003e) (ad541764ca7d3c062236661677d1d66d5275122f) - thanks \u003ca href=\"https://github.com/jjjjonathan\"\u003e\u003ccode\u003e@​jjjjonathan\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eLink Expo config discovery source and fold expo6 fixture into expo-router (2ddeca50956790b10580e835df50bc980cce961d)\u003c/li\u003e\n\u003cli\u003eUpdate dependencies (c9f79148f7165314a7b3c801eff926d1d0d6b060)\u003c/li\u003e\n\u003cli\u003eMigrate shell script parsing to unbash v5 (4942cca05303410120a007a5bb23b0c2da725da1)\u003c/li\u003e\n\u003cli\u003eHandle updated Formatly result types (ca9e8315e003dae69646f7500fa98ab9ed403b92)\u003c/li\u003e\n\u003cli\u003ePreserve TypeScript 5.0 compatibility in shell AST filters (957ac7bbd654f6d3d0c4dc4eab2f4aa133ff0b4b)\u003c/li\u003e\n\u003cli\u003ePoint timerify crashes to the Node.js version that fixes them (0c235de096fd3361eb918d1290241fa32a62f089)\u003c/li\u003e\n\u003cli\u003eCopy importer identifier sets into the reverse index (2860d678a87dddb5ad56299119fb6e108ceffa12)\u003c/li\u003e\n\u003cli\u003eClear the resolver cache at the start of a run (10b5bb82ecd03c88b68ace58a7aea23d188cc5f1)\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/webpro-nl/knip/commit/13d7f21e8ec5b30d8fe6d8377c9012b9db96f871\"\u003e\u003ccode\u003e13d7f21\u003c/code\u003e\u003c/a\u003e Release knip@6.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/10b5bb82ecd03c88b68ace58a7aea23d188cc5f1\"\u003e\u003ccode\u003e10b5bb8\u003c/code\u003e\u003c/a\u003e Clear the resolver cache at the start of a run\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/2860d678a87dddb5ad56299119fb6e108ceffa12\"\u003e\u003ccode\u003e2860d67\u003c/code\u003e\u003c/a\u003e Copy importer identifier sets into the reverse index\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/0c235de096fd3361eb918d1290241fa32a62f089\"\u003e\u003ccode\u003e0c235de\u003c/code\u003e\u003c/a\u003e Point timerify crashes to the Node.js version that fixes them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/957ac7bbd654f6d3d0c4dc4eab2f4aa133ff0b4b\"\u003e\u003ccode\u003e957ac7b\u003c/code\u003e\u003c/a\u003e Preserve TypeScript 5.0 compatibility in shell AST filters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/ca9e8315e003dae69646f7500fa98ab9ed403b92\"\u003e\u003ccode\u003eca9e831\u003c/code\u003e\u003c/a\u003e Handle updated Formatly result types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/4942cca05303410120a007a5bb23b0c2da725da1\"\u003e\u003ccode\u003e4942cca\u003c/code\u003e\u003c/a\u003e Migrate shell script parsing to unbash v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/c9f79148f7165314a7b3c801eff926d1d0d6b060\"\u003e\u003ccode\u003ec9f7914\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/2ddeca50956790b10580e835df50bc980cce961d\"\u003e\u003ccode\u003e2ddeca5\u003c/code\u003e\u003c/a\u003e Link Expo config discovery source and fold expo6 fixture into expo-router\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webpro-nl/knip/commit/ad541764ca7d3c062236661677d1d66d5275122f\"\u003e\u003ccode\u003ead54176\u003c/code\u003e\u003c/a\u003e Separate Expo Router plugin; remove expo-router entry points from Expo plugin...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/webpro-nl/knip/commits/knip@6.41.0/packages/knip\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.9.9 to 3.9.10\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.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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.10/CHANGELOG.md#3910\"\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.10\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eMarkdown: Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on performance (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/20266\"\u003e#20266\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\u003eSee \u003ca href=\"https://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\"\u003ehttps://github.com/micromark/micromark-extension-gfm-table/commit/4f43ead37b786bc531d924530d4ab4c714886267\u003c/a\u003e for details.\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/prettier/prettier/commit/1172b82c295c4f889fd787dc6c78c3e194ebf353\"\u003e\u003ccode\u003e1172b82\u003c/code\u003e\u003c/a\u003e Release 3.9.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d0142273aff2c76f8a69785d42ee2cedc4b0aaa3\"\u003e\u003ccode\u003ed014227\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003emicromark-extension-gfm-table\u003c/code\u003e to fix the table parse issue on perfor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/953b9084329dcd06ed1072a04b333f1e6e9371e8\"\u003e\u003ccode\u003e953b908\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.9.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/ad8a6bf4fa23c42fd114683fec43b28a11bd24af\"\u003e\u003ccode\u003ead8a6bf\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/prettier/prettier/compare/3.9.9...3.9.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.71.1 to 8.71.2\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.71.2\u003c/h2\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] avoid false-positives when not using our parser (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12989\"\u003e#12989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] count instantiated mapped type templates (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12974\"\u003e#12974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unused-vars] ignore type-only refs for after-used (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12977\"\u003e#12977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unnecessary-type-parameters] parenthesize constraint in optional tuple elements (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12995\"\u003e#12995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [prefer-optional-chain] safe fix when the chain ends with a strict null comparison (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12805\"\u003e#12805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etype-utils:\u003c/strong\u003e match linked packages and packages with missing version in \u003ccode\u003eTypeOrValueSpecifier\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12948\"\u003e#12948\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAbraham Guo\u003c/li\u003e\n\u003cli\u003eBrad Zacher \u003ca href=\"https://github.com/bradzacher\"\u003e\u003ccode\u003e@​bradzacher\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003eVinccool96\u003c/li\u003e\n\u003cli\u003eYounsang Na \u003ca href=\"https://github.com/nayounsang\"\u003e\u003ccode\u003e@​nayounsang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.2\"\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/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/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.71.2 (2026-10-12)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint 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.71.2\"\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/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/typescript-eslint/typescript-eslint/commit/7488d681f6e0e96c2aaa1eee9c3d1b9b1ef077cb\"\u003e\u003ccode\u003e7488d68\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.71.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.2/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@vitest/coverage-v8` from 5.0.3 to 5.0.5\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\"\u003e@​vitest/coverage-v8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.5\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep vite default \u003ccode\u003efs.deny\u003c/code\u003e with api token file  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11578\"\u003evitest-dev/vitest#11578\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/28dc1edfb\"\u003e\u003c!-- raw HTML omitted --\u003e(28dc1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle quoted file names in \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11583\"\u003evitest-dev/vitest#11583\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/14921e962\"\u003e\u003c!-- raw HTML omitted --\u003e(14921)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edata\u003c/code\u003e to the \u003ccode\u003eimport.meta.hot\u003c/code\u003e stub  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11590\"\u003evitest-dev/vitest#11590\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/3a8289ac3\"\u003e\u003c!-- raw HTML omitted --\u003e(3a828)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eskip\u003c/code\u003e in \u003ccode\u003eskipIf\u003c/code\u003e, ignore \u003ccode\u003eundefined\u003c/code\u003e options  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11591\"\u003evitest-dev/vitest#11591\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d523a15f2\"\u003e\u003c!-- raw HTML omitted --\u003e(d523a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip builtin loading in async leak detector  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11598\"\u003evitest-dev/vitest#11598\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6\"\u003e\u003c!-- raw HTML omitted --\u003e(fe86a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep the import frame in native loader errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11599\"\u003evitest-dev/vitest#11599\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894\"\u003e\u003c!-- raw HTML omitted --\u003e(9697b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun hook cleanups when a later hook fails  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11605\"\u003evitest-dev/vitest#11605\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a44720\"\u003e\u003c!-- raw HTML omitted --\u003e(6c5a4)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease mocks of finished test files  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11607\"\u003evitest-dev/vitest#11607\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0\"\u003e\u003c!-- raw HTML omitted --\u003e(e9c3d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbort all running tests on cancel  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11606\"\u003evitest-dev/vitest#11606\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6\"\u003e\u003c!-- raw HTML omitted --\u003e(6621a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eIgnore synthetic pagehide events  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11582\"\u003evitest-dev/vitest#11582\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ca0813584\"\u003e\u003c!-- raw HTML omitted --\u003e(ca081)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun plugin buildStart on server creation  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11593\"\u003evitest-dev/vitest#11593\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ea611e44c\"\u003e\u003c!-- raw HTML omitted --\u003e(ea611)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop late connections of closed sessions  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11600\"\u003evitest-dev/vitest#11600\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2\"\u003e\u003c!-- raw HTML omitted --\u003e(f161e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait 30s for the browser to close  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11601\"\u003evitest-dev/vitest#11601\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a\"\u003e\u003c!-- raw HTML omitted --\u003e(6498b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun global setup once with instances  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11596\"\u003evitest-dev/vitest#11596\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c262\"\u003e\u003c!-- raw HTML omitted --\u003e(8dd67)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ereporter\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eEnd reason \u003ccode\u003e\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/39);failed\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/39);\u003c/code\u003e on worker crash  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11568\"\u003evitest-dev/vitest#11568\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff\"\u003e\u003c!-- raw HTML omitted --\u003e(6ae8e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\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/vitest-dev/vitest/commit/7a825db43e2beca0b219d2eadaec334cb81af0c7\"\u003e\u003ccode\u003e7a825db\u003c/code\u003e\u003c/a\u003e chore: release v5.0.5 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11609\"\u003e#11609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6a11cf66f99fa610b7364363d5ca42b66d994f40\"\u003e\u003ccode\u003e6a11cf6\u003c/code\u003e\u003c/a\u003e chore: release v5.0.4 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11554\"\u003e#11554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/2297d93a854968d2ffee6025700c69099e6b7f80\"\u003e\u003ccode\u003e2297d93\u003c/code\u003e\u003c/a\u003e fix(coverage): v8 browser memory leak between test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11466\"\u003e#11466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/c74e099a9d17e24e9816878165af4818df84a631\"\u003e\u003ccode\u003ec74e099\u003c/code\u003e\u003c/a\u003e fix(deps): update all non-major dependencies (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8/issues/11167\"\u003e#11167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/coverage-v8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vitest` from 5.0.3 to 5.0.5\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\u003ev5.0.5\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep vite default \u003ccode\u003efs.deny\u003c/code\u003e with api token file  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11578\"\u003evitest-dev/vitest#11578\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/28dc1edfb\"\u003e\u003c!-- raw HTML omitted --\u003e(28dc1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle quoted file names in \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11583\"\u003evitest-dev/vitest#11583\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/14921e962\"\u003e\u003c!-- raw HTML omitted --\u003e(14921)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edata\u003c/code\u003e to the \u003ccode\u003eimport.meta.hot\u003c/code\u003e stub  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11590\"\u003evitest-dev/vitest#11590\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/3a8289ac3\"\u003e\u003c!-- raw HTML omitted --\u003e(3a828)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eskip\u003c/code\u003e in \u003ccode\u003eskipIf\u003c/code\u003e, ignore \u003ccode\u003eundefined\u003c/code\u003e options  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11591\"\u003evitest-dev/vitest#11591\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/d523a15f2\"\u003e\u003c!-- raw HTML omitted --\u003e(d523a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip builtin loading in async leak detector  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11598\"\u003evitest-dev/vitest#11598\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6\"\u003e\u003c!-- raw HTML omitted --\u003e(fe86a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep the import frame in native loader errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11599\"\u003evitest-dev/vitest#11599\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894\"\u003e\u003c!-- raw HTML omitted --\u003e(9697b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun hook cleanups when a later hook fails  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11605\"\u003evitest-dev/vitest#11605\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a44720\"\u003e\u003c!-- raw HTML omitted --\u003e(6c5a4)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease mocks of finished test files  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11607\"\u003evitest-dev/vitest#11607\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0\"\u003e\u003c!-- raw HTML omitted --\u003e(e9c3d)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbort all running tests on cancel  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11606\"\u003evitest-dev/vitest#11606\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6\"\u003e\u003c!-- raw HTML omitted --\u003e(6621a)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eIgnore synthetic pagehide events  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11582\"\u003evitest-dev/vitest#11582\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ca0813584\"\u003e\u003c!-- raw HTML omitted --\u003e(ca081)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun plugin buildStart on server creation  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11593\"\u003evitest-dev/vitest#11593\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ea611e44c\"\u003e\u003c!-- raw HTML omitted --\u003e(ea611)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop late connections of closed sessions  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11600\"\u003evitest-dev/vitest#11600\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2\"\u003e\u003c!-- raw HTML omitted --\u003e(f161e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait 30s for the browser to close  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11601\"\u003evitest-dev/vitest#11601\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a\"\u003e\u003c!-- raw HTML omitted --\u003e(6498b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun global setup once with instances  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11596\"\u003evitest-dev/vitest#11596\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c262\"\u003e\u003c!-- raw HTML omitted --\u003e(8dd67)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ereporter\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eEnd reason \u003ccode\u003e\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/39);failed\u0026amp;[#39](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/39);\u003c/code\u003e on worker crash  -  by \u003ca href=\"https://github.com/AriPerkkio\"\u003e\u003ccode\u003e@​AriPerkkio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11568\"\u003evitest-dev/vitest#11568\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff\"\u003e\u003c!-- raw HTML omitted --\u003e(6ae8e)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTag cache directories with CACHEDIR.TAG  -  by \u003ca href=\"https://github.com/lifeiscontent\"\u003e\u003ccode\u003e@​lifeiscontent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11461\"\u003evitest-dev/vitest#11461\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a8ea3c8fd\"\u003e\u003c!-- raw HTML omitted --\u003e(a8ea3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003etest.ui.theme\u003c/code\u003e option  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11499\"\u003evitest-dev/vitest#11499\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/1da66405d\"\u003e\u003c!-- raw HTML omitted --\u003e(1da66)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight selector multiple matches in trace view  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11489\"\u003evitest-dev/vitest#11489\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/5abba1e1b\"\u003e\u003c!-- raw HTML omitted --\u003e(5abba)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrint how many tests were affected and a total when running \u003ccode\u003e--changed\u003c/code\u003e  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11424\"\u003evitest-dev/vitest#11424\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/a23368585\"\u003e\u003c!-- raw HTML omitted --\u003e(a2336)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to cache dependencies instead of statically parsing them  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11515\"\u003evitest-dev/vitest#11515\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/c06012ac8\"\u003e\u003c!-- raw HTML omitted --\u003e(c0601)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fit and zoom controls to trace viewer  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11490\"\u003evitest-dev/vitest#11490\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/f5dd99ed0\"\u003e\u003c!-- raw HTML omitted --\u003e(f5dd9)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail the run on git and location filter errors  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11430\"\u003evitest-dev/vitest#11430\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/30d0304d2\"\u003e\u003c!-- raw HTML omitted --\u003e(30d03)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable fsModuleCache by default  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11435\"\u003evitest-dev/vitest#11435\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/ad208cc29\"\u003e\u003c!-- raw HTML omitted --\u003e(ad208)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack project files and mocks with --changed  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11432\"\u003evitest-dev/vitest#11432\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/b0f2b3bb9\"\u003e\u003c!-- raw HTML omitted --\u003e(b0f2b)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor caching, fix \u003ccode\u003e:\u003c/code\u003e in project and change the shape of \u003ccode\u003eresults\u003c/code\u003e cache  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11453\"\u003evitest-dev/vitest#11453\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/9673c49a4\"\u003e\u003c!-- raw HTML omitted --\u003e(9673c)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep full \u003ccode\u003e$\u003c/code\u003e string values when \u003ccode\u003etaskTitleValueFormatTruncate\u003c/code\u003e is 0  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11485\"\u003evitest-dev/vitest#11485\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4f7e1799b\"\u003e\u003c!-- raw HTML omitted --\u003e(4f7e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve node builtins in client environments  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11417\"\u003evitest-dev/vitest#11417\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/56b319ac6\"\u003e\u003c!-- raw HTML omitted --\u003e(56b31)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix module graph builtin externals after \u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11421\"\u003e#11421\u003c/a\u003e  -  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\u003eClaude Opus 5.5\u003c/strong\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11491\"\u003evitest-dev/vitest#11491\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11421\"\u003evitest-dev/vitest#11421\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/008e184cb\"\u003e\u003c!-- raw HTML omitted --\u003e(008e1)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap module mocks during in-source testing  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11505\"\u003evitest-dev/vitest#11505\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/36d19cb00\"\u003e\u003c!-- raw HTML omitted --\u003e(36d19)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle line endings in snapshot  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11522\"\u003evitest-dev/vitest#11522\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/4c468aa40\"\u003e\u003c!-- raw HTML omitted --\u003e(4c468)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect root in projects  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11521\"\u003evitest-dev/vitest#11521\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/26642f793\"\u003e\u003c!-- raw HTML omitted --\u003e(26642)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve mocks in directories with spaces  -  by \u003ca href=\"https://github.com/sheremet-va\"\u003e\u003ccode\u003e@​sheremet-va\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11539\"\u003evitest-dev/vitest#11539\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/caaef9416\"\u003e\u003c!-- raw HTML omitted --\u003e(caaef)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003ePublish the api token atomically  -  by \u003ca href=\"https://github.com/umairnawaz333\"\u003e\u003ccode\u003e@​umairnawaz333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vitest-dev/vitest/issues/11323\"\u003evitest-dev/vitest#11323\u003c/a\u003e \u003ca href=\"https://github.com/vitest-dev/vitest/commit/6f990fef1\"\u003e\u003c!-- raw HTML omitted --\u003e(6f990)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebrowser\u003c/strong\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/vitest-dev/vitest/commit/7a825db43e2beca0b219d2eadaec334cb81af0c7\"\u003e\u003ccode\u003e7a825db\u003c/code\u003e\u003c/a\u003e chore: release v5.0.5 (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11609\"\u003e#11609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6621a72d6ed371e43f80ff327f5063693bd6b1ad\"\u003e\u003ccode\u003e6621a72\u003c/code\u003e\u003c/a\u003e fix: abort all running tests on cancel (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11606\"\u003e#11606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/e9c3d72f0c8d6867de06a3df43ea28a05eeec444\"\u003e\u003ccode\u003ee9c3d72\u003c/code\u003e\u003c/a\u003e fix: release mocks of finished test files (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11607\"\u003e#11607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/8dd67c2625943d824e257b87ae57a14094e90eed\"\u003e\u003ccode\u003e8dd67c2\u003c/code\u003e\u003c/a\u003e fix(browser): run global setup once with instances (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11596\"\u003e#11596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6c5a447203a29a0708fbc5de4fb91ea501bdc395\"\u003e\u003ccode\u003e6c5a447\u003c/code\u003e\u003c/a\u003e fix: run hook cleanups when a later hook fails (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11605\"\u003e#11605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/9697b3894f456b85db91f3824ebe833449305c04\"\u003e\u003ccode\u003e9697b38\u003c/code\u003e\u003c/a\u003e fix: keep the import frame in native loader errors (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11599\"\u003e#11599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6498b666a3ae8961f6f2a8abdc89015b6fd0b3aa\"\u003e\u003ccode\u003e6498b66\u003c/code\u003e\u003c/a\u003e fix(browser): wait 30s for the browser to close (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11601\"\u003e#11601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/f161e6df2b3c0bc84982d374094379139e380791\"\u003e\u003ccode\u003ef161e6d\u003c/code\u003e\u003c/a\u003e fix(browser): drop late connections of closed sessions (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11600\"\u003e#11600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/fe86a64c6c6aa75481bffe5880b5c4e35ea67927\"\u003e\u003ccode\u003efe86a64\u003c/code\u003e\u003c/a\u003e fix: skip builtin loading in async leak detector (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11598\"\u003e#11598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vitest-dev/vitest/commit/6ae8e89ff0734cf476e30186a83aebe6771aa330\"\u003e\u003ccode\u003e6ae8e89\u003c/code\u003e\u003c/a\u003e fix(reporter): end reason \u003ccode\u003e'failed'\u003c/code\u003e on worker crash (\u003ca href=\"https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/11568\"\u003e#11568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/vitest\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/common` from 12.1.2 to 12.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e@​nestjs/common's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.1.3 (2026-10-12)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18111\"\u003e#18111\u003c/a\u003e fix(core,microservices): flush buffered logs when initialization fails (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17993\"\u003e#17993\u003c/a\u003e fix(core,microservices): run transient global enhancers on controllers (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eplatform-express\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18110\"\u003e#18110\u003c/a\u003e fix(express): guard async request hook completion (\u003ca href=\"https://github.com/GiHoon1123\"\u003e\u003ccode\u003e@​GiHoon1123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17973\"\u003e#17973\u003c/a\u003e fix(express): destroy the \u003ccode\u003eStreamableFile\u003c/code\u003e source on client disconnect (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17942\"\u003e#17942\u003c/a\u003e fix(express): run wildcard middleware on the bare global prefix path (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18104\"\u003e#18104\u003c/a\u003e fix(core): fail at startup for request-scoped class global enhancers (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18066\"\u003e#18066\u003c/a\u003e fix(core): stop silently dropping request-scoped global enhancers (\u003ca href=\"https://github.com/OmBhandwaldar\"\u003e\u003ccode\u003e@​OmBhandwaldar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18072\"\u003e#18072\u003c/a\u003e fix(core): resolve uri versioned exclusions for the not-found handler (\u003ca href=\"https://github.com/basteez\"\u003e\u003ccode\u003e@​basteez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18075\"\u003e#18075\u003c/a\u003e fix(core): normalize slashes when mapping controllers for middleware (\u003ca href=\"https://github.com/basteez\"\u003e\u003ccode\u003e@​basteez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18086\"\u003e#18086\u003c/a\u003e fix(core): do not mutate the message when assigning an sse event id (\u003ca href=\"https://github.com/Metehan-Bicer\"\u003e\u003ccode\u003e@​Metehan-Bicer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18025\"\u003e#18025\u003c/a\u003e fix(core): end sse streams whose event data cannot be serialized (\u003ca href=\"https://github.com/OmBhandwaldar\"\u003e\u003ccode\u003e@​OmBhandwaldar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18011\"\u003e#18011\u003c/a\u003e fix(core): send status and headers set by handlers on sse responses (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18021\"\u003e#18021\u003c/a\u003e fix(core): honor a shutdown signal received while close() is in flight (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17987\"\u003e#17987\u003c/a\u003e fix(core): settle SSE lifecycle on early disconnect (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17986\"\u003e#17986\u003c/a\u003e fix(core): commit SSE headers for empty streams (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17978\"\u003e#17978\u003c/a\u003e fix(core): preserve explicit null values in reflectable decorators (\u003ca href=\"https://github.com/gophersg\"\u003e\u003ccode\u003e@​gophersg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17966\"\u003e#17966\u003c/a\u003e fix(core): run the shutdown sequence after a failed init (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17963\"\u003e#17963\u003c/a\u003e fix(core): send the expires header on sse responses (\u003ca href=\"https://github.com/Mohamed-Elshesheny\"\u003e\u003ccode\u003e@​Mohamed-Elshesheny\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17953\"\u003e#17953\u003c/a\u003e fix(core): honor global prefix exclusions for overlapping versions (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17950\"\u003e#17950\u003c/a\u003e fix(core): let a \u003ccode\u003eGET\u003c/code\u003e middleware exclusion cover \u003ccode\u003eHEAD\u003c/code\u003e requests (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17951\"\u003e#17951\u003c/a\u003e fix(core): reset the listening state when the application closes (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17945\"\u003e#17945\u003c/a\u003e fix(core): hash \u003ccode\u003eMap\u003c/code\u003e, \u003ccode\u003eSet\u003c/code\u003e and \u003ccode\u003eRegExp\u003c/code\u003e options in deep-hash tokens (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17947\"\u003e#17947\u003c/a\u003e fix(core): treat \u003ccode\u003eVERSION_NEUTRAL\u003c/code\u003e in middleware routes as no version (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17941\"\u003e#17941\u003c/a\u003e fix(core): turn off express \u003ccode\u003ex-powered-by\u003c/code\u003e in \u003ccode\u003euseSecurityHeaders()\u003c/code\u003e (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17939\"\u003e#17939\u003c/a\u003e fix(core): name dynamic host modules in import error messages (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17940\"\u003e#17940\u003c/a\u003e fix(core): isolate nested transient providers injected into properties (\u003ca href=\"https://github.com/Chaoqi31\"\u003e\u003ccode\u003e@​Chaoqi31\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18108\"\u003e#18108\u003c/a\u003e fix(microservices): keep nats status updates alive when a listener throws (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18100\"\u003e#18100\u003c/a\u003e fix(microservices): default server options like the client factory does (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18083\"\u003e#18083\u003c/a\u003e fix(microservices): match rmq '#' wildcards in any position (\u003ca href=\"https://github.com/thekhegay\"\u003e\u003ccode\u003e@​thekhegay\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18095\"\u003e#18095\u003c/a\u003e fix(microservices): fail mqtt requests whose publish fails (\u003ca href=\"https://github.com/izg0820\"\u003e\u003ccode\u003e@​izg0820\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18085\"\u003e#18085\u003c/a\u003e fix(microservices): preserve null payloads in kafka tombstone records (\u003ca href=\"https://github.com/Hangell\"\u003e\u003ccode\u003e@​Hangell\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18081\"\u003e#18081\u003c/a\u003e fix(microservices): close the connection when the channel close fails (\u003ca href=\"https://github.com/hktitof\"\u003e\u003ccode\u003e@​hktitof\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18071\"\u003e#18071\u003c/a\u003e fix(microservices): return the rmq reply publish so failures are handled (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18060\"\u003e#18060\u003c/a\u003e fix(microservices): fail redis listen on rejected subscriptions (\u003ca href=\"https://github.com/kamilmysliwiec\"\u003e\u003ccode\u003e@​kamilmysliwiec\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18056\"\u003e#18056\u003c/a\u003e fix(microservices): clone the kafka record before serializing (\u003ca href=\"https://github.com/Mihir-Rabari\"\u003e\u003ccode\u003e@​Mihir-Rabari\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18054\"\u003e#18054\u003c/a\u003e fix(microservices): do not crash when the redis connection drops (\u003ca href=\"https://github.com/maxymlyskov\"\u003e\u003ccode\u003e@​maxymlyskov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18043\"\u003e#18043\u003c/a\u003e fix(microservices): fail pending kafka request on deserializer error (\u003ca href=\"https://github.com/hktitof\"\u003e\u003ccode\u003e@​hktitof\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18002\"\u003e#18002\u003c/a\u003e fix(microservices): wait for the TCP TLS handshake (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/17995\"\u003e#17995\u003c/a\u003e fix(microservices): survive custom deserializer errors in clients (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18027\"\u003e#18027\u003c/a\u003e fix(microservices): close both kafka client connections when one fails (\u003ca href=\"https://github.com/izg0820\"\u003e\u003ccode\u003e@​izg0820\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18008\"\u003e#18008\u003c/a\u003e fix(microservices): unwrap records returned by message handlers (\u003ca href=\"https://github.com/johnnyhuirilef\"\u003e\u003ccode\u003e@​johnnyhuirilef\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18001\"\u003e#18001\u003c/a\u003e fix(microservices): wait for both Redis clients to be ready (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18000\"\u003e#18000\u003c/a\u003e fix(microservices): ignore stale NATS status events (\u003ca href=\"https://github.com/jackie-cqz\"\u003e\u003ccode\u003e@​jackie-cqz\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/nestjs/nest/commit/4514623279f6087808e3c8f08fbf9f37d3c17482\"\u003e\u003ccode\u003e4514623\u003c/code\u003e\u003c/a\u003e chore(release): publish v12.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/c5b71871140c0d639b40fa298f77d77182c38aa5\"\u003e\u003ccode\u003ec5b7187\u003c/code\u003e\u003c/a\u003e fix(common): keep custom decorator data that has schema or pipes keys (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/406c40267751baad3f908082365aedf40f9ad498\"\u003e\u003ccode\u003e406c402\u003c/code\u003e\u003c/a\u003e fix(common): reject arrays nested in ParseArrayPipe items (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18073\"\u003e#18073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/529152191ef4b46dc8258726c5ed213a87446a0b\"\u003e\u003ccode\u003e5291521\u003c/code\u003e\u003c/a\u003e fix(common,core,express): answer method miss on an excluded route (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17923\"\u003e#17923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/ea340b134023c3f55ee0efe0c759743605c2ba49\"\u003e\u003ccode\u003eea340b1\u003c/code\u003e\u003c/a\u003e fix(common): collect configurable module alias dependencies (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/1162fdc1b6f62383bae13f30fdd1010e6b1c32d0\"\u003e\u003ccode\u003e1162fdc\u003c/code\u003e\u003c/a\u003e test(common): cover serializer context group overrides (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/18026\"\u003e#18026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/5eb62e21aaa38a68c5cd8f3889533d90836ff7be\"\u003e\u003ccode\u003e5eb62e2\u003c/code\u003e\u003c/a\u003e fix(common): isolate file type regexp state (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17983\"\u003e#17983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/c318730ac9d93179a6d67b81dbcc1e524ff79678\"\u003e\u003ccode\u003ec318730\u003c/code\u003e\u003c/a\u003e fix(common): preserve parent validation constraints (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17982\"\u003e#17982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/a468f796cb5c21f9329335707fd5a8392f204393\"\u003e\u003ccode\u003ea468f79\u003c/code\u003e\u003c/a\u003e fix(common): let a redeclared \u003ccode\u003e@Inject()\u003c/code\u003e property replace the parent's (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17949\"\u003e#17949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nestjs/nest/commit/97c6e4fcd4a3fb95c297394e1375ede869f5d455\"\u003e\u003ccode\u003e97c6e4f\u003c/code\u003e\u003c/a\u003e fix(common): keep inherited \u003ccode\u003e@Optional()\u003c/code\u003e properties optional (\u003ca href=\"https://github.com/nestjs/nest/tree/HEAD/packages/common/issues/17944\"\u003e#17944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nestjs/nest/commits/v12.1.3/packages/common\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@nestjs/core` from 12.1.2 to 12.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nestjs/nest/releases\"\u003e@​nestjs/core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev12.1.3 (2026-10-12)\u003c/h2\u003e\n\u003ch4\u003eBug fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003emicroservices\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nestjs/nest/pull/18111\"\u003e#18111\u003c/a\u003e fix(core,...\n\n_Description has been truncated_","html_url":"https://github.com/emilhornlund/klurigo/pull/742","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/emilhornlund%2Fklurigo/issues/742","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/742/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":"the npm-dependencies group","pr_created_at":"2026-10-18T19:42:56.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5913415303","node_id":"PR_kwDOVEDfqc8AAAABJMqtnA","number":19,"state":"open","title":"build(deps): bump express from 5.2.1 to 5.3.0 in the npm-dependencies group","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-10-18T19:42:56.000Z","updated_at":"2026-10-18T19:43:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"the npm-dependencies group","ecosystem":"npm"},"body":"Bumps the npm-dependencies group with 1 update: [express](https://github.com/expressjs/express).\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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 \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/Mr-Nobody-Anonymous/arena-ai-android/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mr-Nobody-Anonymous%2Farena-ai-android/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":null,"pr_created_at":"2026-10-18T07:23:07.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5907218693","node_id":"PR_kwDOC-YFsc8AAAABJH545g","number":28,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T07:27:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-18T07:23:07.000Z","updated_at":"2026-10-18T07:27:18.000Z","time_to_close":243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/altrdev/high-cpu-node/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/altrdev%2Fhigh-cpu-node/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-18T06:23:10.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5906824127","node_id":"PR_kwDOR6Bq7c8AAAABJHmqXw","number":32,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T06:23:10.000Z","updated_at":"2026-10-18T06:23:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":6,"packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.6.1","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"pg","old_version":"8.22.0","new_version":"8.23.1","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@types/pg","old_version":"8.20.0","new_version":"8.23.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"resend","old_version":"6.18.1","new_version":"6.33.0","repository_url":"https://github.com/resend/resend-node"},{"name":"@types/node","old_version":"26.1.2","new_version":"26.6.5","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 6 updates in the /api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.6.1` | `8.7.1` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.22.0` | `8.23.1` |\n| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.20.0` | `8.23.1` |\n| [resend](https://github.com/resend/resend-node) | `6.18.1` | `6.33.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.6.5` |\n\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.6.1 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.7.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.6.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.6.1...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 8.22.0 to 8.23.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAll major and minor releases are briefly explained below.\u003c/p\u003e\n\u003cp\u003eFor richer information consult the commit log on github with referenced pull requests.\u003c/p\u003e\n\u003cp\u003eWe do not include break-fix version release in this file.\u003c/p\u003e\n\u003ch2\u003epg@8.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for query \u003ca href=\"https://redirect.github.com/brianc/node-postgres/pull/3652\"\u003e\u003ccode\u003epipelineing\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/brianc/node-postgres/commit/0980cefebe0ae461da8883703be049fe13ca96cf\"\u003e\u003ccode\u003e0980cef\u003c/code\u003e\u003c/a\u003e Publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/2759b2ccf70535d425688dca8a6aec79de49c1ea\"\u003e\u003ccode\u003e2759b2c\u003c/code\u003e\u003c/a\u003e fix(pg): run a named statement with an empty text more than once (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/7feb7dfd70a9f7e5718ab186c80d2658067ce4af\"\u003e\u003ccode\u003e7feb7df\u003c/code\u003e\u003c/a\u003e fix(pg): expose detail and hint on errors from the native client (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3780\"\u003e#3780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/9683053c1eac7f4a1f8910df0d7abdb5f0cb25a7\"\u003e\u003ccode\u003e9683053\u003c/code\u003e\u003c/a\u003e fix(pg): do not treat Sync as connection ending (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3772\"\u003e#3772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/458903894f3514465b74d623f6b92f713b6b952f\"\u003e\u003ccode\u003e4589038\u003c/code\u003e\u003c/a\u003e fix: validate server certificate against host when connecting to an IP addres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/9808955838dd84835c4ca904228c9c2eaeda047e\"\u003e\u003ccode\u003e9808955\u003c/code\u003e\u003c/a\u003e cleanup: Fix typo in comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/2b02f645687b8536f209aecc24f1b4bdb4c32d16\"\u003e\u003ccode\u003e2b02f64\u003c/code\u003e\u003c/a\u003e fix: avoid mutating query config (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/0cef6afdf781e4cbe7eb5ac943df3c14b49c33de\"\u003e\u003ccode\u003e0cef6af\u003c/code\u003e\u003c/a\u003e Reject portal based queries in pipeline mode instead of misrouting rows (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3737\"\u003e#3737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/299148045f921060b5df91343ab4710d46674b08\"\u003e\u003ccode\u003e2991480\u003c/code\u003e\u003c/a\u003e Deprecate serializing invalid \u003ccode\u003eDate\u003c/code\u003es (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianc/node-postgres/commit/c940d7c206c8545cb195df2ecde230d9ca0279c8\"\u003e\u003ccode\u003ec940d7c\u003c/code\u003e\u003c/a\u003e Fail pipelined queries when the connection dies instead of hanging (\u003ca href=\"https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brianc/node-postgres/commits/pg@8.23.1/packages/pg\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@types/pg` from 8.20.0 to 8.23.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/pg\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `resend` from 6.18.1 to 6.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/resend/resend-node/releases\"\u003eresend's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.33.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: inboxes endpoints by \u003ca href=\"https://github.com/isabellaaquino\"\u003e\u003ccode\u003e@​isabellaaquino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1088\"\u003eresend/resend-node#1088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1...v6.33.0\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1...v6.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(receiving): forward raw email bytes without re-decoding them as UTF-8 by \u003ca href=\"https://github.com/RaphaelFakhri\"\u003e\u003ccode\u003e@​RaphaelFakhri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1117\"\u003eresend/resend-node#1117\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/RaphaelFakhri\"\u003e\u003ccode\u003e@​RaphaelFakhri\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1117\"\u003eresend/resend-node#1117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.0...v6.32.1\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.0...v6.32.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): type inbox label colors as hex by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1144\"\u003eresend/resend-node#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.5...v6.32.1-preview-inboxes.6\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.5...v6.32.1-preview-inboxes.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): filter thread list by folders, labels and read, add thread search by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1142\"\u003eresend/resend-node#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(inboxes): type create responses as object and id by \u003ca href=\"https://github.com/joaopcm\"\u003e\u003ccode\u003e@​joaopcm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1143\"\u003eresend/resend-node#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.4...v6.32.1-preview-inboxes.5\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.4...v6.32.1-preview-inboxes.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): support reply all on thread reply by \u003ca href=\"https://github.com/felipefreitag\"\u003e\u003ccode\u003e@​felipefreitag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1141\"\u003eresend/resend-node#1141\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.3...v6.32.1-preview-inboxes.4\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.3...v6.32.1-preview-inboxes.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): support idempotency key on inbox sending methods by \u003ca href=\"https://github.com/Cisneiros\"\u003e\u003ccode\u003e@​Cisneiros\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1140\"\u003eresend/resend-node#1140\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.2...v6.32.1-preview-inboxes.3\"\u003ehttps://github.com/resend/resend-node/compare/v6.32.1-preview-inboxes.2...v6.32.1-preview-inboxes.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.32.1-preview-inboxes.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(inboxes): add agent settings get and update by \u003ca href=\"https://github.com/felipefreitag\"\u003e\u003ccode\u003e@​felipefreitag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/resend/resend-node/pull/1138\"\u003eresend/resend-node#1138\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/resend/resend-node/blob/canary/CHANGELOG.md\"\u003eresend's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eresend@6.32.1-preview-inboxes.1\u003c/h2\u003e\n\u003ch3\u003eAdd the \u003ccode\u003einbox.*\u003c/code\u003e webhook events to \u003ccode\u003eWebhookEvent\u003c/code\u003e and \u003ccode\u003eWebhookEventPayload\u003c/code\u003e\u003c/h3\u003e\n\u003ch2\u003eresend@6.32.1-preview-inboxes.0\u003c/h2\u003e\n\u003ch3\u003eAlign inbox thread, draft, and label types with the public API\u003c/h3\u003e\n\u003ch2\u003eresend@6.28.1-preview-inboxes.0\u003c/h2\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.inboxes\u003c/code\u003e with nested \u003ccode\u003ethreads\u003c/code\u003e, \u003ccode\u003ethreads.emails\u003c/code\u003e, \u003ccode\u003elabels\u003c/code\u003e, and \u003ccode\u003edrafts\u003c/code\u003e\u003c/h3\u003e\n\u003ch2\u003eresend@6.18.0\u003c/h2\u003e\n\u003ch3\u003eSupport tags and scheduledAt in batch email options\u003c/h3\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.suppressions\u003c/code\u003e with \u003ccode\u003eadd\u003c/code\u003e, \u003ccode\u003eget\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003eremove\u003c/code\u003e, and batch \u003ccode\u003eadd\u003c/code\u003e/\u003ccode\u003eremove\u003c/code\u003e methods for managing suppression list entries\u003c/h3\u003e\n\u003ch2\u003eresend@6.18.0-canary.0 (canary)\u003c/h2\u003e\n\u003ch3\u003eAdd \u003ccode\u003eresend.suppressions\u003c/code\u003e with \u003ccode\u003eadd\u003c/code\u003e, \u003ccode\u003eget\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003eremove\u003c/code\u003e, and batch \u003ccode\u003eadd\u003c/code\u003e/\u003ccode\u003eremove\u003c/code\u003e methods for managing suppression list entries\u003c/h3\u003e\n\u003ch2\u003eresend@6.17.2\u003c/h2\u003e\n\u003ch3\u003efix response types for removing contacts out of segments and removing api keys\u003c/h3\u003e\n\u003ch2\u003eresend@6.17.1\u003c/h2\u003e\n\u003ch3\u003eremove resource field, it was a dead field\u003c/h3\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/resend/resend-node/commit/5afae4b29a80e4acd5d6080c731439cb5a152f01\"\u003e\u003ccode\u003e5afae4b\u003c/code\u003e\u003c/a\u003e feat: inboxes endpoints (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/a56aa492406c989f86fb99fc0d019706eb121ead\"\u003e\u003ccode\u003ea56aa49\u003c/code\u003e\u003c/a\u003e fix(receiving): forward raw email bytes without re-decoding them as UTF-8 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/7388c5f17d0514d717d58b84d51addad5b769aa1\"\u003e\u003ccode\u003e7388c5f\u003c/code\u003e\u003c/a\u003e chore(deps): update softprops/action-gh-release digest to efb3536 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1104\"\u003e#1104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/291cccdacac59573eb4a348386fd7b054e24afa4\"\u003e\u003ccode\u003e291cccd\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency next to v16.3.6 [security] (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/7f10587e8eb490c460237fda570353cdd15e43c7\"\u003e\u003ccode\u003e7f10587\u003c/code\u003e\u003c/a\u003e chore(deps): bump morgan from 1.10.1 to 1.12.1 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1120\"\u003e#1120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/8485d02f75f5bdb82b604a7d7f194b7b216dfc0d\"\u003e\u003ccode\u003e8485d02\u003c/code\u003e\u003c/a\u003e chore: bump version to 6.32.0 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/c1c7e879ef24ab7c305e90d9bfde04c57133dcc8\"\u003e\u003ccode\u003ec1c7e87\u003c/code\u003e\u003c/a\u003e fix(batch): treat null request headers as no custom headers (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/b9a3e5a61d8653c5e4873d89feb014258688ec7e\"\u003e\u003ccode\u003eb9a3e5a\u003c/code\u003e\u003c/a\u003e fix(batch): send request headers in every HeadersInit form (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/ed3b151e93ff595f9fa6f1f0043196aacffb143a\"\u003e\u003ccode\u003eed3b151\u003c/code\u003e\u003c/a\u003e fix: treat an aborted error response as a network failure (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1123\"\u003e#1123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resend/resend-node/commit/1a4b02909c7a96c84a7390ac3b5738af98d7c96d\"\u003e\u003ccode\u003e1a4b029\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-node action to v7 (\u003ca href=\"https://redirect.github.com/resend/resend-node/issues/1106\"\u003e#1106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/resend/resend-node/compare/v6.18.1...v6.33.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 26.1.2 to 26.6.5\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\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/tomiwaaluko/tomiwaalukov3/pull/32","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomiwaaluko%2Ftomiwaalukov3/issues/32","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/32/packages"}},{"old_version":"4.22.2","new_version":"4.22.3","update_type":"patch","path":"/remix-sdk","pr_created_at":"2026-10-18T04:17:54.000Z","version_change":"4.22.2 → 4.22.3","issue":{"uuid":"5906062773","node_id":"PR_kwDOUNX6P88AAAABJHBWMw","number":585,"state":"closed","title":"Bump qs and express in /remix-sdk","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T04:19:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-18T04:17:54.000Z","updated_at":"2026-10-18T04:19:49.000Z","time_to_close":114,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"qs","repository_url":"https://github.com/ljharb/qs","old_version":"6.15.3","new_version":"6.16.1"},{"name":"express","repository_url":"https://github.com/expressjs/express","old_version":"4.22.2","new_version":"4.22.3"}],"path":"/remix-sdk","ecosystem":"npm"},"body":"Bumps [qs](https://github.com/ljharb/qs) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\nUpdates `qs` from 6.15.3 to 6.16.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ljharb/qs/blob/main/CHANGELOG.md\"\u003eqs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003cstrong\u003e6.16.1\u003c/strong\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: do not mutate an object input\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: stop re-encoding structural separator dots when \u003ccode\u003eencodeDotInKeys\u003c/code\u003e is set (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: pass the full encoder arguments with \u003ccode\u003eencodeValuesOnly\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: encode \u003ccode\u003e+\u003c/code\u003e as \u003ccode\u003e%2B\u003c/code\u003e in iso-8859-1 mode so values round-trip (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] parse: only convert top-level dots to brackets when allowDots is on (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: ignore inherited array format names (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: do not throw on elements with no callable \u003ccode\u003etoString\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: seed an overflow container's index from its own keys, not just the source\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: keep a \u003ccode\u003estrictMerge\u003c/code\u003e conflict container's index and \u003ccode\u003earrayLimit\u003c/code\u003e correct\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: only treat \u003ccode\u003e[]\u003c/code\u003e as array syntax when it ends the key\u003c/li\u003e\n\u003cli\u003e[Perf] \u003ccode\u003edecode\u003c/code\u003e: skip decoders when there is no percent sign (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Robustness] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003emerge\u003c/code\u003e: apply \u003ccode\u003earrayLimit\u003c/code\u003e to the two-element array built for colliding values\u003c/li\u003e\n\u003cli\u003e[Robustness] \u003ccode\u003eparse\u003c/code\u003e: bound the nesting added by repeated \u003ccode\u003estrictMerge\u003c/code\u003e conflicts (credit \u003ca href=\"https://github.com/Yeaseen\"\u003e\u003ccode\u003e@​Yeaseen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] document that \u003ccode\u003eqs\u003c/code\u003e and flat parsers disagree about parameter names\u003c/li\u003e\n\u003cli\u003e[Docs] clarify that \u003ccode\u003ethrowOnLimitExceeded\u003c/code\u003e limits each array, not the total number of values\u003c/li\u003e\n\u003cli\u003e[Docs] clarify 6.14.1/6.15.2 parse bracket behavior change (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/567\"\u003e#567\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ljharb/qs/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[meta] fix changelog indents\u003c/li\u003e\n\u003cli\u003e[actions] set least-privilege \u003ccode\u003ecache-mode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003edecode\u003c/code\u003e: add missing cases\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: characterize the \u003ccode\u003e]=\u003c/code\u003e split when an \u003ccode\u003e=\u003c/code\u003e precedes any bracket group (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: \u003ccode\u003eallowDots\u003c/code\u003e: cover stray close brackets before a dot\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003e@ljharb/eslint-config\u003c/code\u003e, \u003ccode\u003eeslint\u003c/code\u003e, \u003ccode\u003etape\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003cstrong\u003e6.16.0\u003c/strong\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[New] \u003ccode\u003estringify\u003c/code\u003e: add a \u003ccode\u003edepth\u003c/code\u003e option to bound recursion depth (default \u003ccode\u003eInfinity\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] stringify: serialize Date values when a filter is provided\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: enforce \u003ccode\u003earrayLimit\u003c/code\u003e on comma groups under \u003ccode\u003e[]=\u003c/code\u003e when \u003ccode\u003ethrowOnLimitExceeded\u003c/code\u003e is set\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eparse\u003c/code\u003e: flatten a collection appended to an overflowed array (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003eisBuffer\u003c/code\u003e: do not invoke a non-callable \u003ccode\u003econstructor.isBuffer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: do not let \u003ccode\u003eallowEmptyArrays\u003c/code\u003e skip cycle detection (or drop own keys) on an empty array with own properties\u003c/li\u003e\n\u003cli\u003e[Fix] \u003ccode\u003estringify\u003c/code\u003e: encode dots in a top-level key with a primitive value when encodeDotInKeys is set (\u003ca href=\"https://redirect.github.com/ljharb/qs/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] threat model: clarify \u003ccode\u003estringify\u003c/code\u003e deep-nesting DoS is caller-bounded\u003c/li\u003e\n\u003cli\u003e[Docs] clarify \u003ccode\u003earrayLimit\u003c/code\u003e is a representation threshold, not an element-count cap\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003eparse\u003c/code\u003e: remove a test that pinned \u003ccode\u003e[]=\u003c/code\u003e comma groups escaping \u003ccode\u003earrayLimit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Tests] \u003ccode\u003estringify\u003c/code\u003e: pin current \u003ccode\u003eencodeDotInKeys\u003c/code\u003e separator-dot behavior\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003e@ljharb/eslint-config\u003c/code\u003e, \u003ccode\u003eeslint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[Dev Deps] update \u003ccode\u003eeslint\u003c/code\u003e, \u003ccode\u003eevalmd\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\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/2471b66ae696a8a10915c01453ae2c0f139a5adc\"\u003e\u003ccode\u003e2471b66\u003c/code\u003e\u003c/a\u003e v6.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/51f736e94b079b8479fa8f668acba84c1e177596\"\u003e\u003ccode\u003e51f736e\u003c/code\u003e\u003c/a\u003e [Docs] document that \u003ccode\u003eqs\u003c/code\u003e and flat parsers disagree about parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/40239f7564e99ab92eb9125defaaf4779a26b03a\"\u003e\u003ccode\u003e40239f7\u003c/code\u003e\u003c/a\u003e [Dev Deps] update \u003ccode\u003etape\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/d219359f5bedc42815190b2448160fae06b7817c\"\u003e\u003ccode\u003ed219359\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003eparse\u003c/code\u003e: do not mutate an object input\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/98157dc1b770240ed4fb91da0faa3fb404b80474\"\u003e\u003ccode\u003e98157dc\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003estringify\u003c/code\u003e: stop re-encoding structural separator dots when `encodeDot...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/cb075c5c4410c36f3cefc1f11b014537c5bb9558\"\u003e\u003ccode\u003ecb075c5\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003estringify\u003c/code\u003e: \u003ccode\u003earrayFormat: 'comma'\u003c/code\u003e: pass the full encoder arguments wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/4b89c03f58d61b06636f37b8a1544d4273364620\"\u003e\u003ccode\u003e4b89c03\u003c/code\u003e\u003c/a\u003e [Fix] \u003ccode\u003eutils\u003c/code\u003e: encode \u003ccode\u003e+\u003c/code\u003e as \u003ccode\u003e%2B\u003c/code\u003e in iso-8859-1 mode so values round-trip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/266527db14153527c407fe163331ebe0165a6fd4\"\u003e\u003ccode\u003e266527d\u003c/code\u003e\u003c/a\u003e [Perf] \u003ccode\u003edecode\u003c/code\u003e: skip decoders when there is no percent sign\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/82c5bd012c2c9bcf6b81fb62acd9dd3fdb5de674\"\u003e\u003ccode\u003e82c5bd0\u003c/code\u003e\u003c/a\u003e [Tests] \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003edecode\u003c/code\u003e: add missing cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ljharb/qs/commit/3ee412caf5fd26abc4f7644c66a8c708187280db\"\u003e\u003ccode\u003e3ee412c\u003c/code\u003e\u003c/a\u003e [Tests] \u003ccode\u003eparse\u003c/code\u003e: characterize the \u003ccode\u003e]=\u003c/code\u003e split when an \u003ccode\u003e=\u003c/code\u003e precedes any bracket...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ljharb/qs/compare/v6.15.3...v6.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.2 to 4.22.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/blob/v4.22.3/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.22.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAllow conditional revalidation for QUERY requests\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereq.fresh\u003c/code\u003e now includes QUERY in the freshness check, so QUERY responses can return 304 when a validator matches\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edeps: qs@~6.16.0\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/expressjs/express/commit/899b52494e74327905c16164decdc6e51f803af8\"\u003e\u003ccode\u003e899b524\u003c/code\u003e\u003c/a\u003e 4.22.3 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7466\"\u003e#7466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/1fad2c30eff02268bb9751f9d0cb6644c14b0fbb\"\u003e\u003ccode\u003e1fad2c3\u003c/code\u003e\u003c/a\u003e ci: add npm staged publication with dist-tag support (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7465\"\u003e#7465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/41386506a9ca6874a79b304f1baafd50522e6078\"\u003e\u003ccode\u003e4138650\u003c/code\u003e\u003c/a\u003e deps: qs@~6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7440\"\u003e#7440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/61ccf2ea8c1bd19cbca6acfb7cd276c5fcd410d3\"\u003e\u003ccode\u003e61ccf2e\u003c/code\u003e\u003c/a\u003e feat: allow conditional revalidation for QUERY requests (v4) (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7377\"\u003e#7377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/715101bd27ec9c14a7ccc8a37c476f330d98ad53\"\u003e\u003ccode\u003e715101b\u003c/code\u003e\u003c/a\u003e Update path-to-regexp to 0.1.13 because CVE-2026-4867 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7135\"\u003e#7135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/f472e5fe28d7a4c1ec8b6832d504c46f8a056d1c\"\u003e\u003ccode\u003ef472e5f\u003c/code\u003e\u003c/a\u003e docs: fix the release date format for 4.22.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.2...v4.22.3\"\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 express since your current version.\u003c/p\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 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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ops-ai/Toggly.Samples/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/ops-ai/Toggly.Samples/pull/585","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ops-ai%2FToggly.Samples/issues/585","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/585/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":null,"pr_created_at":"2026-10-17T22:06:13.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5903577485","node_id":"PR_kwDOVKCyNc8AAAABJFHuJg","number":9,"state":"closed","title":"chore(deps): bump express from 4.22.3 to 5.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-18T09:00:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T22:06:13.000Z","updated_at":"2026-10-18T09:00:07.000Z","time_to_close":39232,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 4.22.3 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=4.22.3\u0026new-version=5.3.0)](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/Saneajayy/MyCourse/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saneajayy%2FMyCourse/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":"/server","pr_created_at":"2026-10-17T21:52:56.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5903474594","node_id":"PR_kwDOUj9-888AAAABJFCzIQ","number":21,"state":"open","title":"Bump express from 5.2.1 to 5.3.0 in /server","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-10-17T21:52:56.000Z","updated_at":"2026-10-17T21:53:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":"/server","ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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/mananv1791/Weather-App/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mananv1791%2FWeather-App/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"4.22.3","new_version":"5.3.0","update_type":"major","path":null,"pr_created_at":"2026-10-17T21:42:04.000Z","version_change":"4.22.3 → 5.3.0","issue":{"uuid":"5903392031","node_id":"PR_kwDOUXP4CM8AAAABJE-wvg","number":21,"state":"open","title":"Bump the production-dependencies group with 12 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-10-17T21:42:04.000Z","updated_at":"2026-10-17T21:44:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":12,"packages":[{"name":"@google/genai","old_version":"2.22.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/js-genai"},{"name":"@supabase/supabase-js","old_version":"2.116.0","new_version":"2.117.3","repository_url":"https://github.com/supabase/supabase-js"},{"name":"dodopayments","old_version":"2.54.2","new_version":"2.55.0","repository_url":"https://github.com/dodopayments/dodopayments-typescript"},{"name":"dotenv","old_version":"17.4.2","new_version":"18.0.8","repository_url":"https://github.com/motdotla/dotenv"},{"name":"express","old_version":"4.22.3","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"lucide-react","old_version":"0.546.0","new_version":"1.57.0","repository_url":"https://github.com/lucide-icons/lucide"},{"name":"motion","old_version":"12.43.0","new_version":"14.2.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"react","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"react-dom","old_version":"19.3.0","new_version":"19.3.1","repository_url":"https://github.com/react/react"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"}],"path":null,"ecosystem":"npm"},"body":"Bumps the production-dependencies group with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@google/genai](https://github.com/googleapis/js-genai) | `2.22.0` | `2.29.1` |\n| [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) | `2.116.0` | `2.117.3` |\n| [dodopayments](https://github.com/dodopayments/dodopayments-typescript) | `2.54.2` | `2.55.0` |\n| [dotenv](https://github.com/motdotla/dotenv) | `17.4.2` | `18.0.8` |\n| [express](https://github.com/expressjs/express) | `4.22.3` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.546.0` | `1.57.0` |\n| [motion](https://github.com/motiondivision/motion) | `12.43.0` | `14.2.0` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.3.0` | `19.3.1` |\n| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.3.0` | `19.3.1` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n\nUpdates `@google/genai` from 2.22.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/js-genai/releases\"\u003e@​google/genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\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/googleapis/js-genai/blob/main/CHANGELOG.md\"\u003e@​google/genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003elyria-3.5\u003c/code\u003e, \u003ccode\u003egemini-omni-1.1-flash\u003c/code\u003e, and \u003ccode\u003egemini-omni-flash-preview\u003c/code\u003e to Interactions \u003ccode\u003eModel\u003c/code\u003e enum (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4ce63d11497cc86567ecc7e44677cd687f28deac\"\u003e4ce63d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport continuation_token in Interactions (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a888ad73abda6a64dfb140599438afca1033ee2f\"\u003ea888ad7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.25.0...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2026-10-01)\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/googleapis/js-genai/commit/2e083a76600f37755dab8c4947dd45881f05f33a\"\u003e\u003ccode\u003e2e083a7\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.1 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/51cf872f3b60050fe63e9d8a1e3cadaae24c05e0\"\u003e\u003ccode\u003e51cf872\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e\u003ccode\u003e567cc8a\u003c/code\u003e\u003c/a\u003e fix: concatenate output_text across multi-step model responses in a turn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/1693f7cce750e5e9c3615e5a90b4602029cb0979\"\u003e\u003ccode\u003e1693f7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2013\"\u003e#2013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f66291c8556719ed60d10a85aacb9561d996471b\"\u003e\u003ccode\u003ef66291c\u003c/code\u003e\u003c/a\u003e chore: return early on generate content if automatic continuation is not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e\u003ccode\u003e0885fb9\u003c/code\u003e\u003c/a\u003e fix(js): do not set initial prompt token count for requests that do not use a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e\u003ccode\u003e10e850c\u003c/code\u003e\u003c/a\u003e fix: Raise default HTTP timeouts so long-running requests aren't killed clien...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003e\u003ccode\u003ef3d10a6\u003c/code\u003e\u003c/a\u003e fix(js): fix streaming continuation edge cases (stale token, AbortError, init...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/3ecb0b542c30e4b26c82fc8be96c1e753f99bae8\"\u003e\u003ccode\u003e3ecb0b5\u003c/code\u003e\u003c/a\u003e chore: internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e\u003ccode\u003e8478e12\u003c/code\u003e\u003c/a\u003e fix: Update EnvironmentConfig.env schema to map keys to EnvVar or string.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.22.0...v2.29.1\"\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.116.0 to 2.117.3\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.117.3\u003c/h2\u003e\n\u003ch2\u003e2.117.3 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump next to patch RCE in realtime-js example (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e send a Blob or File with its own content type (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2714\"\u003e#2714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e treat TimeoutError as an abort in retry guard (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBruno Gale \u003ca href=\"https://github.com/fresh55\"\u003e\u003ccode\u003e@​fresh55\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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\u003ev2.117.3-canary.1\u003c/h2\u003e\n\u003ch2\u003e2.117.3-canary.1 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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\u003ev2.117.3-canary.0\u003c/h2\u003e\n\u003ch2\u003e2.117.3-canary.0 (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump next to patch RCE in realtime-js example (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efunctions:\u003c/strong\u003e send a Blob or File with its own content type (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2714\"\u003e#2714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e treat TimeoutError as an abort in retry guard (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBruno Gale \u003ca href=\"https://github.com/fresh55\"\u003e\u003ccode\u003e@​fresh55\u003c/code\u003e\u003c/a\u003e\u003c/li\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\u003ev2.117.2\u003c/h2\u003e\n\u003ch2\u003e2.117.2 (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e avoid instantiation depth errors for large relationship unions (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2701\"\u003e#2701\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\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.117.3 (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e send multipart fields before files (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFerhat Elmas\u003c/li\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.117.2 (2026-09-25)\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.117.1 (2026-09-23)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e return stored session when a refresh loses to another tab (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2698\"\u003e#2698\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.117.0 (2026-09-22)\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e enable passkey API by default and deprecate experimental passkey opt-in (\u003ca href=\"https://redirect.github.com/supabase/supabase-js/pull/2695\"\u003e#2695\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efadymak\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/supabase-js/commit/4d23055805ce2cf853686b704cfaec1a701d29c6\"\u003e\u003ccode\u003e4d23055\u003c/code\u003e\u003c/a\u003e fix(storage): send multipart fields before files (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/a684cf97b67fd71670bab5030fe88b219f2c09fe\"\u003e\u003ccode\u003ea684cf9\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.2 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/54c225dacb1fc5f5a0a97c93908a46b7e8f5c9cc\"\u003e\u003ccode\u003e54c225d\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.1 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/739b35128c7fdefed78d747e5ea2ec80a2bcde2f\"\u003e\u003ccode\u003e739b351\u003c/code\u003e\u003c/a\u003e fix(auth): return stored session when a refresh loses to another tab (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2698\"\u003e#2698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/f34d4284d8c73a3b57a4c1228b62ef3c8c3f9fca\"\u003e\u003ccode\u003ef34d428\u003c/code\u003e\u003c/a\u003e chore(release): version 2.117.0 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/cc45ccfd1dd8ef9ee87d69adaf16c1947cbf7dc4\"\u003e\u003ccode\u003ecc45ccf\u003c/code\u003e\u003c/a\u003e feat(auth): enable passkey API by default and deprecate experimental passkey ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/c5112864f7830ad2fbd0c0c8368491021f530aea\"\u003e\u003ccode\u003ec511286\u003c/code\u003e\u003c/a\u003e docs(realtime): document relationship of \u003ccode\u003eaccessToken()\u003c/code\u003e and heartbeat (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2680\"\u003e#2680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-js/commit/84af33f79e5732633c2a20a2ecc6d3535879c4d8\"\u003e\u003ccode\u003e84af33f\u003c/code\u003e\u003c/a\u003e chore(release): version 2.116.0 changelogs (\u003ca href=\"https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-js/commits/v2.117.3/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 `dodopayments` from 2.54.2 to 2.55.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/releases\"\u003edodopayments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.55.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003e2.55.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e93d61b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e16ef1e2\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/dodopayments/dodopayments-typescript/blob/main/CHANGELOG.md\"\u003edodopayments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003e2.55.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e93d61b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e payment service periods, retry attempts and subscription renewal payment_id (\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e16ef1e2\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/dodopayments/dodopayments-typescript/commit/f38a877c6a466038097446729cb51e5f16892d3f\"\u003e\u003ccode\u003ef38a877\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/373\"\u003e#373\u003c/a\u003e from dodopayments/release-please--branches--main--com...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/6b2da7af7feb1346a540ee49202b43ea5a1699b1\"\u003e\u003ccode\u003e6b2da7a\u003c/code\u003e\u003c/a\u003e release: 2.55.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/93d61b67767ba33ecd273ae39a4284b7f8249715\"\u003e\u003ccode\u003e93d61b6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/372\"\u003e#372\u003c/a\u003e from dodopayments/stlc-generated-38531523791\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/16ef1e25bdc79329ca105aa1afb264ca22a052f4\"\u003e\u003ccode\u003e16ef1e2\u003c/code\u003e\u003c/a\u003e feat(api): payment service periods, retry attempts and subscription renewal p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/11c4ba5860efaaf5a5bfa6d7aae8b565ba13391e\"\u003e\u003ccode\u003e11c4ba5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dodopayments/dodopayments-typescript/issues/370\"\u003e#370\u003c/a\u003e from dodopayments/ci/ghcr-github-token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/commit/75d00f66d291d0ea27bf2da500f2c0b5f2c5ab99\"\u003e\u003ccode\u003e75d00f6\u003c/code\u003e\u003c/a\u003e ci(mcp): push the MCP Docker image to GHCR with GITHUB_TOKEN\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/dodopayments/dodopayments-typescript/compare/v2.54.2...v2.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv` from 17.4.2 to 18.0.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md\"\u003edotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.7...v18.0.8\"\u003e18.0.8\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFast parser should strip appended extra quotes (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType detail improvement (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.6...v18.0.7\"\u003e18.0.7\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat undefined settings like \u003ccode\u003equiet: true\u003c/code\u003e as null rather than falsey (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI should honor \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting in \u003ccode\u003e.env\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.5...v18.0.6\"\u003e18.0.6\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse smarter \u003ccode\u003eparseBoolean\u003c/code\u003e not Boolean() to fix override (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.4...v18.0.5\"\u003e18.0.5\u003c/a\u003e (2026-09-30)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing typescript module declaration (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance for large .env files (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.3...v18.0.4\"\u003e18.0.4\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eimport dotenv/config\u003c/code\u003e should default quiet: true (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.2...v18.0.3\"\u003e18.0.3\u003c/a\u003e (2026-09-22)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePatch \u003ccode\u003eDOTENV_QUIET\u003c/code\u003e setting when inside .env file (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.1...v18.0.2\"\u003e18.0.2\u003c/a\u003e (2026-09-21)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePatch additional edge cases for the fast parser (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/motdotla/dotenv/compare/v18.0.0...v18.0.1\"\u003e18.0.1\u003c/a\u003e (2026-09-18)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle file urls in config logging (\u003ca href=\"https://redirect.github.com/motdotla/dotenv/pull/1054\"\u003e#1054\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/motdotla/dotenv/commit/e2fe95e8e952e881787d8207b654c80326f821d8\"\u003e\u003ccode\u003ee2fe95e\u003c/code\u003e\u003c/a\u003e 18.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/7aa712ab2914c0cf128ea8ccdaf5e918a867db59\"\u003e\u003ccode\u003e7aa712a\u003c/code\u003e\u003c/a\u003e type detail improvement\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/53405b0b140debc002e41c5abb671d5da5f3e8f9\"\u003e\u003ccode\u003e53405b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1074\"\u003e#1074\u003c/a\u003e from himanshu748/codex/fix-dotenv-populate-undefined...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/0b4843a90d6d70b110d1f1a309f209c3d8d7cb6e\"\u003e\u003ccode\u003e0b4843a\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/55855ab6bffb017ca94cb273704c055f2d977c57\"\u003e\u003ccode\u003e55855ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motdotla/dotenv/issues/1073\"\u003e#1073\u003c/a\u003e from xiehuanyi/fix/unicode-unquoting-parity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/f7578114202cf0b8df31775225a9233ead6b2a80\"\u003e\u003ccode\u003ef757811\u003c/code\u003e\u003c/a\u003e fix(types): allow undefined values in populate output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/fde5db2bca73438a013ee8837b021a436e65dac7\"\u003e\u003ccode\u003efde5db2\u003c/code\u003e\u003c/a\u003e Keep fast-parser unquoting consistent at Unicode line boundaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/295320751866efa323236c719cdc1b5306fa3de7\"\u003e\u003ccode\u003e2953207\u003c/code\u003e\u003c/a\u003e 18.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/9944723d89e6f776897f171bfc6b945dfad23c57\"\u003e\u003ccode\u003e9944723\u003c/code\u003e\u003c/a\u003e make more readable for undefined -\u0026gt; null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motdotla/dotenv/commit/d455db06a7b37acd8b240793a888efaba75885f4\"\u003e\u003ccode\u003ed455db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:motdotla/dotenv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motdotla/dotenv/compare/v17.4.2...v18.0.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 4.22.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v4.22.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.7.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\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/express-rate-limit/express-rate-limit/commit/c2e30b340189e287123cf5bfd89526dd2ea07d3f\"\u003e\u003ccode\u003ec2e30b3\u003c/code\u003e\u003c/a\u003e 8.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/b40a390170d984b20f6257b15acf31dbad4f0180\"\u003e\u003ccode\u003eb40a390\u003c/code\u003e\u003c/a\u003e v8.7.1 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/ccbee88b60845c6ef07fdbc3ac3615c4445f8f92\"\u003e\u003ccode\u003eccbee88\u003c/code\u003e\u003c/a\u003e fix: correct es2020/es2022 version mismatch between tsconfig and esbuild comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/11a143a56eb18678766bdc3ba4557ead10ca89d1\"\u003e\u003ccode\u003e11a143a\u003c/code\u003e\u003c/a\u003e chore: fix duplicate entries in pnpm-lockfile.yaml (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92f685d7a6ddf5423e96662295805e8d3452fd3d\"\u003e\u003ccode\u003e92f685d\u003c/code\u003e\u003c/a\u003e chore(deps): bump softprops/action-gh-release from 1 to 3 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0c7c0663f4a8072ef13cd6374651837da0094415\"\u003e\u003ccode\u003e0c7c066\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9735b69649f20e462b6260e9cef856a57b7c4033\"\u003e\u003ccode\u003e9735b69\u003c/code\u003e\u003c/a\u003e chore(deps): bump pnpm/action-setup from 3.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7f401b76504ebfe25ab97c2291d1de27a8d31d73\"\u003e\u003ccode\u003e7f401b7\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/7a49bb0d4bc1a1a1bc4f4ef42e0ddcc26f222b07\"\u003e\u003ccode\u003e7a49bb0\u003c/code\u003e\u003c/a\u003e ci: add guard that fails the build on unpinned GitHub Actions (companion to #...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/784c447798bac552e2dad4a1a818092765cc6b9b\"\u003e\u003ccode\u003e784c447\u003c/code\u003e\u003c/a\u003e ci: pin GitHub Actions to immutable commit SHAs (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lucide-react` from 0.546.0 to 1.57.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.57.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003efolder-user\u003c/code\u003e and \u003ccode\u003efolder-user\u003c/code\u003e icons by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4603\"\u003elucide-icons/lucide#4603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ecalendar-chevrons-left\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/5001\"\u003elucide-icons/lucide#5001\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eusers-collaboration\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4922\"\u003elucide-icons/lucide#4922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eBelarusian ruble\u003c/code\u003e icon by \u003ca href=\"https://github.com/js-best\"\u003e\u003ccode\u003e@​js-best\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4984\"\u003elucide-icons/lucide#4984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ecircle-fading-play\u003c/code\u003e icon by \u003ca href=\"https://github.com/tatianatsiguleva\"\u003e\u003ccode\u003e@​tatianatsiguleva\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4990\"\u003elucide-icons/lucide#4990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003ecpu-ai\u003c/code\u003e icon by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4992\"\u003elucide-icons/lucide#4992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eguitar-electric\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4917\"\u003elucide-icons/lucide#4917\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003egraph-star\u003c/code\u003e icon by \u003ca href=\"https://github.com/Nitero\"\u003e\u003ccode\u003e@​Nitero\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4983\"\u003elucide-icons/lucide#4983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the svelte-deps group with 2 updates 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/4996\"\u003elucide-icons/lucide#4996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump preact from 11.0.0 to 11.0.1 in the preact-deps group 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/4999\"\u003elucide-icons/lucide#4999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e from 6.1.1 to 6.1.2 in the react-deps group 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/4995\"\u003elucide-icons/lucide#4995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eperfume\u003c/code\u003e icon by \u003ca href=\"https://github.com/rrod497\"\u003e\u003ccode\u003e@​rrod497\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4426\"\u003elucide-icons/lucide#4426\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/js-best\"\u003e\u003ccode\u003e@​js-best\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4984\"\u003elucide-icons/lucide#4984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tatianatsiguleva\"\u003e\u003ccode\u003e@​tatianatsiguleva\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4990\"\u003elucide-icons/lucide#4990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4992\"\u003elucide-icons/lucide#4992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nitero\"\u003e\u003ccode\u003e@​Nitero\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4983\"\u003elucide-icons/lucide#4983\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.56.0...1.57.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.56.0...1.57.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.56.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eserver-nas\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4537\"\u003elucide-icons/lucide#4537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(icons,categories): fix \u003ccode\u003enotifications\u003c/code\u003e category name and refine \u003ccode\u003ecircle-x\u003c/code\u003e tags by \u003ca href=\"https://github.com/Rachit315\"\u003e\u003ccode\u003e@​Rachit315\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4994\"\u003elucide-icons/lucide#4994\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): add \u003ccode\u003emessage-circle-text\u003c/code\u003e icon 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/4898\"\u003elucide-icons/lucide#4898\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/Rachit315\"\u003e\u003ccode\u003e@​Rachit315\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4994\"\u003elucide-icons/lucide#4994\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.55.0...1.56.0\"\u003ehttps://github.com/lucide-icons/lucide/compare/1.55.0...1.56.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.55.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003email-dot\u003c/code\u003e icon by \u003ca href=\"https://github.com/elenakovelskikh\"\u003e\u003ccode\u003e@​elenakovelskikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3230\"\u003elucide-icons/lucide#3230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(lint): split lint jobs and annotate Prettier and JSON schema errors in PRs 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/4982\"\u003elucide-icons/lucide#4982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sharp from 0.35.4 to 0.35.5 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/4987\"\u003elucide-icons/lucide#4987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump next from 16.3.6 to 16.3.8 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/4988\"\u003elucide-icons/lucide#4988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(lucide): add tests for empty icons error and DocumentFragment root in createIcons by \u003ca href=\"https://github.com/grzdev\"\u003e\u003ccode\u003e@​grzdev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4967\"\u003elucide-icons/lucide#4967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ephone-log\u003c/code\u003e icon by \u003ca href=\"https://github.com/Levi-Bensley\"\u003e\u003ccode\u003e@​Levi-Bensley\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/3598\"\u003elucide-icons/lucide#3598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(copilot-instruction): Adjust instruction text to allow more then 4 use-cases 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/4989\"\u003elucide-icons/lucide#4989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003ewifi-lock\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4913\"\u003elucide-icons/lucide#4913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): Add \u003ccode\u003ehandle-bottom-right\u003c/code\u003e icon by \u003ca href=\"https://github.com/ocavue\"\u003e\u003ccode\u003e@​ocavue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/1793\"\u003elucide-icons/lucide#1793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest(lucide-react): add tests for DynamicIcon fallback and ref forwarding by \u003ca href=\"https://github.com/grzdev\"\u003e\u003ccode\u003e@​grzdev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4966\"\u003elucide-icons/lucide#4966\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003escrew\u003c/code\u003e icon by \u003ca href=\"https://github.com/edik17\"\u003e\u003ccode\u003e@​edik17\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4932\"\u003elucide-icons/lucide#4932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003euser-round-star\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/3469\"\u003elucide-icons/lucide#3469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(icons): added \u003ccode\u003eshield-house\u003c/code\u003e icon by \u003ca href=\"https://github.com/benhaube\"\u003e\u003ccode\u003e@​benhaube\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lucide-icons/lucide/pull/4602\"\u003elucide-icons/lucide#4602\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/lucide-icons/lucide/commit/3f1255ecfa1b5b3a231e4aeb027781761204e187\"\u003e\u003ccode\u003e3f1255e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​vitejs/plugin-react\u003c/code\u003e (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4995\"\u003e#4995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/949bc6d61f5964a98f99f4eb9b5bc291949ca18f\"\u003e\u003ccode\u003e949bc6d\u003c/code\u003e\u003c/a\u003e test(lucide-react): add tests for DynamicIcon fallback and ref forwarding (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/98331e287029edeff0e04f269439884d060af703\"\u003e\u003ccode\u003e98331e2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the react-deps group across 1 directory with 3 updates (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4951\"\u003e#4951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/09aa9c5c62c3b4b519fbb8c9ce1c396cc12f4dae\"\u003e\u003ccode\u003e09aa9c5\u003c/code\u003e\u003c/a\u003e chore(deps): Upgrade to vite 8 (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4950\"\u003e#4950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/e042fec3b59b2bc36a07bcd8b433c1aedde1db29\"\u003e\u003ccode\u003ee042fec\u003c/code\u003e\u003c/a\u003e fix(packages): declare \u003ccode\u003e@types/react\u003c/code\u003e as an optional peer dependency (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/f06ac67e33d645c40b8ce19a0419c85c5d7dd751\"\u003e\u003ccode\u003ef06ac67\u003c/code\u003e\u003c/a\u003e chore(typchecking): More typecheck jobs for all packages (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4885\"\u003e#4885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/94e4cb9d9db5907053ebf3636a97c45529cf776b\"\u003e\u003ccode\u003e94e4cb9\u003c/code\u003e\u003c/a\u003e chore(dependencies): Update dependencies (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4806\"\u003e#4806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/99d25bdee231922e73e19525f57a585d1682fab2\"\u003e\u003ccode\u003e99d25bd\u003c/code\u003e\u003c/a\u003e feat(packages): extract icon build logic into \u003ccode\u003e@lucide/shared\u003c/code\u003e (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4409\"\u003e#4409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/75b55160aa9edd7095dfed1a6e3d88e66fb2b153\"\u003e\u003ccode\u003e75b5516\u003c/code\u003e\u003c/a\u003e chore(dev): upgrade ESLint to latest compatible stack (v10) (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4378\"\u003e#4378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lucide-icons/lucide/commit/0f8d48b266e7af1e2bab49ff12ab6ec0795ed204\"\u003e\u003ccode\u003e0f8d48b\u003c/code\u003e\u003c/a\u003e test(packages): updates unit test snapshots with face-slightly-smiling (\u003ca href=\"https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lucide-icons/lucide/commits/1.57.0/packages/lucide-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 lucide-react since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `motion` from 12.43.0 to 14.2.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\"\u003emotion's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.2.0] 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHardware accelerated independent transforms like \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003escaleX\u003c/code\u003e etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.1.1] 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix velocity hand-off for hardware-accelerated springs.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecubicBezier\u003c/code\u003e: More accurate, 2x faster.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eReorder\u003c/code\u003e: Fix click events on reoredered items.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003euseTransform\u003c/code\u003e: Fix desync when source is set in an effect under Strict Mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.1.0] 2026-10-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanimateLayout\u003c/code\u003e: Layout animations for vanilla JS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDelay animation start when main thread held to prevent visual jumps.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ewhileHover\u003c/code\u003e/\u003ccode\u003ewhileTap\u003c/code\u003e getting stuck after Fast Refresh reorders siblings.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escroll\u003c/code\u003e/\u003ccode\u003euseScroll\u003c/code\u003e: Fix reporting of elastic overscroll.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAnimatePresence\u003c/code\u003e: Fix \u003ccode\u003epopLayout\u003c/code\u003e when rendering into another window or iframe.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanimate\u003c/code\u003e: Fix JS animations jumping ahead when played after a pause at non-\u003ccode\u003e1\u003c/code\u003e speed.\u003c/li\u003e\n\u003cli\u003eAllow layout animations inside dragged elements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.0.0] 2026-10-02\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved internal APIs restored in \u003ccode\u003e13.5.1\u003c/code\u003e for compatibility with \u003ccode\u003eframer-motion\u003c/code\u003e \u003ccode\u003e13.0\u003c/code\u003e–\u003ccode\u003e13.4\u003c/code\u003e. Future removed internal APIs won't cause cross-compatibility issues since pinning internal \u003ccode\u003eframer-motion\u003c/code\u003e, \u003ccode\u003emotion-dom\u003c/code\u003e and \u003ccode\u003emotion-utils\u003c/code\u003e dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[13.5.1] 2026-10-02\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Fall back to the attribute in readSVGValue when computed style is empty.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Internal changes to \u003ccode\u003eanimateChanges\u003c/code\u003e for size reductions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003escroll\u003c/code\u003e: Temporarily reverted removal of internal \u003ccode\u003eobserveTimeline\u003c/code\u003e API to fix compatibility with previous \u003ccode\u003e13.x\u003c/code\u003e APIs. Moving to pinned dependencies before removing in \u003ccode\u003e14.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyleEffect\u003c/code\u003e: Cleaning up an earlier value no longer removes a value that was bound to the same key after it.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esvgEffect\u003c/code\u003e: No longer writes transforms and origins as attributes.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: \u003ccode\u003einherit={false}\u003c/code\u003e now correctly not inheriting parent animations.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;motion\u0026gt;\u003c/code\u003e: Fix \u003ccode\u003esortNodePosition\u003c/code\u003e throwing when a sibling hasn't mounted\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/motiondivision/motion/commit/bd3a91b4a995ece766982cb6785d27bc4026340b\"\u003e\u003ccode\u003ebd3a91b\u003c/code\u003e\u003c/a\u003e v14.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/c35493f2d750b998bd0e166f2efa597bbef8baa3\"\u003e\u003ccode\u003ec35493f\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/e0c0e7fa8c47a0b070ffd630a5fc2d03d68e58f9\"\u003e\u003ccode\u003ee0c0e7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3897\"\u003e#3897\u003c/a\u003e from motiondivision/claude/independent-transform-waa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9f4da2eead9fa859d0cbcae035bcd624679e56b3\"\u003e\u003ccode\u003e9f4da2e\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into claude/independent-transform-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/c53fcc687af6bf9013374b0407931918f1882a2b\"\u003e\u003ccode\u003ec53fcc6\u003c/code\u003e\u003c/a\u003e Trim transform group code and reuse shared helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/23b2a5697ffa854d6da4c26b04ea0d2425e033d7\"\u003e\u003ccode\u003e23b2a56\u003c/code\u003e\u003c/a\u003e v14.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/7d5bb804f52741a2a7ff6981ae45690e5105b1fe\"\u003e\u003ccode\u003e7d5bb80\u003c/code\u003e\u003c/a\u003e Updating changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/4840bbc4ae6aae27c24d00f34f5db18da8433fb9\"\u003e\u003ccode\u003e4840bbc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3915\"\u003e#3915\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-use...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/9dc3a409227d484ca321cd48a4b3d8139c756d69\"\u003e\u003ccode\u003e9dc3a40\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3916\"\u003e#3916\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-reo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motiondivision/motion/commit/5ce6caf4362a15a06a84257538234d6e4e181487\"\u003e\u003ccode\u003e5ce6caf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/motiondivision/motion/issues/3914\"\u003e#3914\u003c/a\u003e from motiondivision/claude/project-thread-jj781x-cub...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/motiondivision/motion/compare/v12.43.0...v14.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pino` from 10.3.1 to 10.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pinojs/pino/releases\"\u003epino's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning on incompatible formatters.level with multi-target transports by \u003ca href=\"https://github.com/lraveri\"\u003e\u003ccode\u003e@​lraveri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2381\"\u003epinojs/pino#2381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: use TSTyche for type testing by \u003ca href=\"https://github.com/mrazauskas\"\u003e\u003ccode\u003e@​mrazauskas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2376\"\u003epinojs/pino#2376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Sentry Native Integration Docs by \u003ca href=\"https://github.com/KyleTryon\"\u003e\u003ccode\u003e@​KyleTryon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2394\"\u003epinojs/pino#2394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add flush limitation warning for pino-pretty, fix \u003ca href=\"https://redirect.github.com/pinojs/pino/issues/1015\"\u003e#1015\u003c/a\u003e by \u003ca href=\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pinojs/pino/pull/2402\"\u003epinojs/pino#2402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(browser): add redaction supp...\n\n_Description has been truncated_","html_url":"https://github.com/vaishakh19/datings.lol/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaishakh19%2Fdatings.lol/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-17T19:17:09.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5902148003","node_id":"PR_kwDOPPPQu88AAAABJEBDGg","number":8287,"state":"closed","title":"deps: bump the minor-and-patch group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","javascript"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-18T14:59:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T19:17:09.000Z","updated_at":"2026-10-18T14:59:38.000Z","time_to_close":70947,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"minor-and-patch","update_count":40,"packages":[{"name":"@anthropic-ai/sdk","old_version":"0.127.0","new_version":"0.134.0","repository_url":"https://github.com/anthropics/anthropic-sdk-typescript"},{"name":"@contentauth/c2pa-node","old_version":"0.9.7","new_version":"0.9.9","repository_url":"https://github.com/contentauth/c2pa-js"},{"name":"@google-cloud/kms","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"@google-cloud/storage","old_version":"8.2.0","new_version":"8.4.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"@google/genai","old_version":"2.23.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/js-genai"},{"name":"@opentelemetry/api-logs","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/exporter-logs-otlp-http","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/resources","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-logs","old_version":"0.222.0","new_version":"0.223.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@slack/web-api","old_version":"8.1.1","new_version":"8.2.0","repository_url":"https://github.com/slackapi/node-slack-sdk"},{"name":"@workos-inc/widgets","old_version":"1.18.0","new_version":"1.20.0","repository_url":"https://github.com/workos/widgets"},{"name":"csv-parse","old_version":"7.0.2","new_version":"7.0.3","repository_url":"https://github.com/adaltas/node-csv"},{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"},{"name":"express-rate-limit","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"file-type","old_version":"22.1.1","new_version":"22.2.0","repository_url":"https://github.com/sindresorhus/file-type"},{"name":"google-auth-library","old_version":"11.1.0","new_version":"11.3.0","repository_url":"https://github.com/googleapis/google-cloud-node"},{"name":"isomorphic-dompurify","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/kkomelin/isomorphic-dompurify"},{"name":"mammoth","old_version":"1.12.3","new_version":"1.13.0","repository_url":"https://github.com/mwilliamson/mammoth.js"},{"name":"marked","old_version":"18.0.13","new_version":"18.1.1","repository_url":"https://github.com/markedjs/marked"},{"name":"openai","old_version":"7.20.0","new_version":"7.33.0","repository_url":"https://github.com/openai/openai-node"},{"name":"pg","old_version":"8.23.0","new_version":"8.23.1","repository_url":"https://github.com/brianc/node-postgres"},{"name":"pino","old_version":"10.3.1","new_version":"10.4.0","repository_url":"https://github.com/pinojs/pino"},{"name":"pino-pretty","old_version":"13.1.3","new_version":"13.2.0","repository_url":"https://github.com/pinojs/pino-pretty"},{"name":"posthog-node","old_version":"5.52.4","new_version":"5.56.1","repository_url":"https://github.com/PostHog/posthog-js"},{"name":"resend","old_version":"6.28.1","new_version":"6.33.0","repository_url":"https://github.com/resend/resend-node"},{"name":"svix","old_version":"2.5.0","new_version":"2.8.0","repository_url":"https://github.com/svix/svix-webhooks"},{"name":"tldts","old_version":"7.4.13","new_version":"7.4.18","repository_url":"https://github.com/remusao/tldts"},{"name":"undici","old_version":"8.11.2","new_version":"8.12.2","repository_url":"https://github.com/nodejs/undici"},{"name":"uuid","old_version":"14.0.2","new_version":"14.0.3","repository_url":"https://github.com/uuidjs/uuid"},{"name":"ws","old_version":"8.21.3","new_version":"8.22.0","repository_url":"https://github.com/websockets/ws"},{"name":"@types/ws","old_version":"8.18.1","new_version":"8.18.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"zod","old_version":"4.6.5","new_version":"4.6.7","repository_url":"https://github.com/colinhacks/zod"},{"name":"@types/multer","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/node","old_version":"24.13.6","new_version":"24.19.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"@types/ws","old_version":"8.18.1","new_version":"8.18.2","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"concurrently","old_version":"10.0.5","new_version":"10.0.6","repository_url":"https://github.com/open-cli-tools/concurrently"},{"name":"jsdom","old_version":"30.1.0","new_version":"30.1.3","repository_url":"https://github.com/jsdom/jsdom"},{"name":"mint","old_version":"4.2.909","new_version":"4.2.1032","repository_url":"https://github.com/mintlify/mint"},{"name":"puppeteer","old_version":"25.11.0","new_version":"25.14.0","repository_url":"https://github.com/puppeteer/puppeteer"},{"name":"supertest","old_version":"7.2.2","new_version":"7.3.1","repository_url":"https://github.com/ladjs/supertest"},{"name":"tsx","old_version":"4.23.13","new_version":"4.23.15","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"npm"},"body":"Bumps the minor-and-patch group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.127.0` | `0.134.0` |\n| [@contentauth/c2pa-node](https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node) | `0.9.7` | `0.9.9` |\n| [@google-cloud/kms](https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms) | `6.2.0` | `6.3.0` |\n| [@google-cloud/storage](https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage) | `8.2.0` | `8.4.0` |\n| [@google/genai](https://github.com/googleapis/js-genai) | `2.23.0` | `2.29.1` |\n| [@opentelemetry/api-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/exporter-logs-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.11.0` | `2.12.0` |\n| [@opentelemetry/sdk-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.222.0` | `0.223.0` |\n| [@slack/web-api](https://github.com/slackapi/node-slack-sdk) | `8.1.1` | `8.2.0` |\n| [@workos-inc/widgets](https://github.com/workos/widgets/tree/HEAD/packages/widgets) | `1.18.0` | `1.20.0` |\n| [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) | `7.0.2` | `7.0.3` |\n| [express](https://github.com/expressjs/express) | `5.2.1` | `5.3.0` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.7.0` | `8.7.1` |\n| [file-type](https://github.com/sindresorhus/file-type) | `22.1.1` | `22.2.0` |\n| [google-auth-library](https://github.com/googleapis/google-cloud-node/tree/HEAD/core/packages/google-auth-library-nodejs) | `11.1.0` | `11.3.0` |\n| [isomorphic-dompurify](https://github.com/kkomelin/isomorphic-dompurify) | `4.3.0` | `4.5.0` |\n| [mammoth](https://github.com/mwilliamson/mammoth.js) | `1.12.3` | `1.13.0` |\n| [marked](https://github.com/markedjs/marked) | `18.0.13` | `18.1.1` |\n| [openai](https://github.com/openai/openai-node) | `7.20.0` | `7.33.0` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.23.0` | `8.23.1` |\n| [pino](https://github.com/pinojs/pino) | `10.3.1` | `10.4.0` |\n| [pino-pretty](https://github.com/pinojs/pino-pretty) | `13.1.3` | `13.2.0` |\n| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.52.4` | `5.56.1` |\n| [resend](https://github.com/resend/resend-node) | `6.28.1` | `6.33.0` |\n| [svix](https://github.com/svix/svix-webhooks) | `2.5.0` | `2.8.0` |\n| [tldts](https://github.com/remusao/tldts) | `7.4.13` | `7.4.18` |\n| [undici](https://github.com/nodejs/undici) | `8.11.2` | `8.12.2` |\n| [uuid](https://github.com/uuidjs/uuid) | `14.0.2` | `14.0.3` |\n| [ws](https://github.com/websockets/ws) | `8.21.3` | `8.22.0` |\n| [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) | `8.18.1` | `8.18.2` |\n| [zod](https://github.com/colinhacks/zod) | `4.6.5` | `4.6.7` |\n| [@types/multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multer) | `2.2.0` | `2.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.13.6` | `24.19.2` |\n| [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) | `8.18.1` | `8.18.2` |\n| [concurrently](https://github.com/open-cli-tools/concurrently) | `10.0.5` | `10.0.6` |\n| [jsdom](https://github.com/jsdom/jsdom) | `30.1.0` | `30.1.3` |\n| [mint](https://github.com/mintlify/mint/tree/HEAD/packages/mint) | `4.2.909` | `4.2.1032` |\n| [puppeteer](https://github.com/puppeteer/puppeteer) | `25.11.0` | `25.14.0` |\n| [supertest](https://github.com/ladjs/supertest) | `7.2.2` | `7.3.1` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.23.13` | `4.23.15` |\n\n\nUpdates `@anthropic-ai/sdk` from 0.127.0 to 0.134.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.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add execution_identity to Managed Agents agents\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add organization_type_not_supported error to spend limit lists\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destination test endpoint\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destinations to the Admin API\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add native support for OpenTelemetry tracing\u003c/p\u003e\n\u003cp\u003eIf your app registers a global tracer provider, the SDK will create spans with it after upgrading, and they'll be exported with the rest of your traces. Requests will also get trace context headers from the global propagator. To disable, pass \u003ccode\u003eopenTelemetry: false\u003c/code\u003e to the client or set \u003ccode\u003eANTHROPIC_OPEN_TELEMETRY=false\u003c/code\u003e. Learn more in the \u003ca href=\"https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e don't follow redirects on token requests\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e treat proxy-authorization as a sensitive header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e tolerate unknown event types in MessageStream and BetaMessageStream\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e stop throwing \u0026quot;Unexpected event order\u0026quot; for an event before message_start\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e yield events that arrive before message_start when iterating MessageStream and BetaMessageStream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e correct prefill, thinking, fallback and model descriptions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e document the scope required to assign the managed role\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e update model examples\u003c/li\u003e\n\u003cli\u003einclude the license files in the published packages\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e narrow the tripwire test rule in the contributor guides\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove \u003ccode\u003e@internal\u003c/code\u003e tag from a type that public types reference\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove file-level \u003ccode\u003e@internal\u003c/code\u003e tags from toolset modules\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e strip \u003ccode\u003e@internal\u003c/code\u003e declarations from published types\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e type-check the built declarations in lint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e clarify when custom tool results can be sent\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e say is_enabled is always true for user spend limits\u003c/li\u003e\n\u003cli\u003emove more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eshow examples of streaming-only methods iterating the stream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esdk-v0.133.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\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\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.133.0...sdk-v0.134.0\"\u003e0.134.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add execution_identity to Managed Agents agents\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add organization_type_not_supported error to spend limit lists\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destination test endpoint\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add telemetry destinations to the Admin API\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add native support for OpenTelemetry tracing\u003c/p\u003e\n\u003cp\u003eIf your app registers a global tracer provider, the SDK will create spans with it after upgrading, and they'll be exported with the rest of your traces. Requests will also get trace context headers from the global propagator. To disable, pass \u003ccode\u003eopenTelemetry: false\u003c/code\u003e to the client or set \u003ccode\u003eANTHROPIC_OPEN_TELEMETRY=false\u003c/code\u003e. Learn more in the \u003ca href=\"https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e don't follow redirects on token requests\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e treat proxy-authorization as a sensitive header\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e tolerate unknown event types in MessageStream and BetaMessageStream\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e stop throwing \u0026quot;Unexpected event order\u0026quot; for an event before message_start\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e yield events that arrive before message_start when iterating MessageStream and BetaMessageStream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e correct prefill, thinking, fallback and model descriptions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e document the scope required to assign the managed role\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e update model examples\u003c/li\u003e\n\u003cli\u003einclude the license files in the published packages\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e narrow the tripwire test rule in the contributor guides\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove \u003ccode\u003e@internal\u003c/code\u003e tag from a type that public types reference\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e remove file-level \u003ccode\u003e@internal\u003c/code\u003e tags from toolset modules\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e strip \u003ccode\u003e@internal\u003c/code\u003e declarations from published types\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e type-check the built declarations in lint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e clarify when custom tool results can be sent\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e say is_enabled is always true for user spend limits\u003c/li\u003e\n\u003cli\u003emove more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eshow examples of streaming-only methods iterating the stream\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.132.1...sdk-v0.133.0\"\u003e0.133.0\u003c/a\u003e (2026-10-09)\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/anthropics/anthropic-sdk-typescript/commit/034b168065139f10a7482b2e7af5eb7aab8d7991\"\u003e\u003ccode\u003e034b168\u003c/code\u003e\u003c/a\u003e release: 0.134.0, packages/aws-sdk 0.8.0, packages/bedrock-sdk 0.35.0, packag...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/7167acf7a0e7c3930709258c43613b441785e0dd\"\u003e\u003ccode\u003e7167acf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/918\"\u003e#918\u003c/a\u003e from anthropics/synced/published\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/ddedaf6e2ba5859aac14a6c33ac13b3a9e51703c\"\u003e\u003ccode\u003eddedaf6\u003c/code\u003e\u003c/a\u003e fix(client): close an unread messages.create stream that was dropped while tr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/b30ce1d410e1ef962e33a017ae9b3e36efc15cd4\"\u003e\u003ccode\u003eb30ce1d\u003c/code\u003e\u003c/a\u003e fix(api): rename telemetry destination test response model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/294fd9307f6ada46aa6b68265b935fb55f735e74\"\u003e\u003ccode\u003e294fd93\u003c/code\u003e\u003c/a\u003e feat(api): add telemetry destination test endpoint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/0827ac85d312be95dedf857949031637c6655a0f\"\u003e\u003ccode\u003e0827ac8\u003c/code\u003e\u003c/a\u003e fix(client): close an unread stream that was dropped while tracing is on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1d976d35826df65a87801023ff156d9f7c706c4f\"\u003e\u003ccode\u003e1d976d3\u003c/code\u003e\u003c/a\u003e feat(api): add telemetry destinations to the Admin API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/d18ddbdf8d705f8ca14d050dcfcee11f2d83f6b2\"\u003e\u003ccode\u003ed18ddbd\u003c/code\u003e\u003c/a\u003e feat(client): emit OpenTelemetry spans for API calls and the tool runners (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-typescript/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/1d5025fb624734b366886df7877cd25aefbe844a\"\u003e\u003ccode\u003e1d5025f\u003c/code\u003e\u003c/a\u003e feat(client): add OpenTelemetry spans for API calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/commit/f6d4ef6f788658680e08d6fe4ebaaafac011f317\"\u003e\u003ccode\u003ef6d4ef6\u003c/code\u003e\u003c/a\u003e docs: move more shared rules into the shared part of CLAUDE.md\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.127.0...sdk-v0.134.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@contentauth/c2pa-node` from 0.9.7 to 0.9.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contentauth/c2pa-js/blob/main/packages/c2pa-node/CHANGELOG.md\"\u003e@​contentauth/c2pa-node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.9\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee29811b: Add ability to modify assertions\u003c/li\u003e\n\u003cli\u003ea0057f8: Update to Trustmark version 0.4.0.\u003c/li\u003e\n\u003cli\u003eb862120: Bump Trustmark crate dependency to v0.3.0 for c2pa-node.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.9.8\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ee454a78: Update to c2pa-rs v0.91.0.\u003c/li\u003e\n\u003cli\u003eabe6b75: Support optional (empty) mime types for Readers. Prefer supplying the mime type explicitly whenever it's known — omitting it falls back to slower, less reliable byte-based format detection in the native library.\u003c/li\u003e\n\u003cli\u003ef5141d9: Fix typings errors and avoid potential udnerflow\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [e454a78]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​contentauth/c2pa-utilities\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.3.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​contentauth/c2pa-types\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.7.5\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/contentauth/c2pa-js/commit/edb68d82944f15b92695506e9ff9b8280a709847\"\u003e\u003ccode\u003eedb68d8\u003c/code\u003e\u003c/a\u003e chore: version packages (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/232\"\u003e#232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/a0057f86ac7aa006c6823f92426c1f8b19254f05\"\u003e\u003ccode\u003ea0057f8\u003c/code\u003e\u003c/a\u003e fix: Switch to Trustmark v0.4.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/233\"\u003e#233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/e29811b88204be8728ccc7c2f46fc6c203ceb42d\"\u003e\u003ccode\u003ee29811b\u003c/code\u003e\u003c/a\u003e feat: Add assertion updates to Node and Web (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/b862120d767530a3197525e77c933513f6680412\"\u003e\u003ccode\u003eb862120\u003c/code\u003e\u003c/a\u003e chore(c2pa-node): Bump Trustmark dependency to v0.3.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/231\"\u003e#231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/598bd8c7f7139f9fb6b5aabeac1fa82ef8e1b04d\"\u003e\u003ccode\u003e598bd8c\u003c/code\u003e\u003c/a\u003e chore: version packages (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/226\"\u003e#226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/e454a78d0ab94ad539e183c1387be7dce0bfd2cb\"\u003e\u003ccode\u003ee454a78\u003c/code\u003e\u003c/a\u003e Bump c2pa-rs to 0.91.0 (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/abe6b75801e9f083e3c18e03253a0a24fb4ce8c8\"\u003e\u003ccode\u003eabe6b75\u003c/code\u003e\u003c/a\u003e feat: Add support for optional (empty) MIME types for Readers (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/227\"\u003e#227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contentauth/c2pa-js/commit/f5141d989c48ef75d41879db0126475f89105ad9\"\u003e\u003ccode\u003ef5141d9\u003c/code\u003e\u003c/a\u003e fix: Add missing types/bindings/override in identity flows (\u003ca href=\"https://github.com/contentauth/c2pa-js/tree/HEAD/packages/c2pa-node/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/contentauth/c2pa-js/commits/@contentauth/c2pa-node@0.9.9/packages/c2pa-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google-cloud/kms` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-node/releases\"\u003e@​google-cloud/kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epubsub: v6.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/pubsub-v6.2.0...pubsub-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebigquery-storage: v6.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/bigquery-storage-v6.2.0...bigquery-storage-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Bump bigquery-storage-api to ^0.5.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9595\"\u003e#9595\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/fca6160fce7932d5491fb9fcca9c42c3de2102c1\"\u003efca6160\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/googleapis/google-cloud-node/blob/main/packages/google-cloud-kms/CHANGELOG.md\"\u003e@​google-cloud/kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/kms-v6.2.1...kms-v6.3.0\"\u003e6.3.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/kms-v6.2.0...kms-v6.2.1\"\u003e6.2.1\u003c/a\u003e (2026-09-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate package.json and .gitignore across packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9378\"\u003e#9378\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/9c54cece565b5cbcae63a9856c1ef3448307d46e\"\u003e9c54cec\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/googleapis/google-cloud-node/commit/cf59635a259dd06f01b810d8369ff22c04a08b15\"\u003e\u003ccode\u003ecf59635\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6398\"\u003e#6398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/bd8cc854ee691ef51a7b826690658fc5685a8531\"\u003e\u003ccode\u003ebd8cc85\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sinon to v21 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6413\"\u003e#6413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/58d287807d370acb588c0491c28f9ee9935c2a8f\"\u003e\u003ccode\u003e58d2878\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency jsdoc-fresh to v4 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6385\"\u003e#6385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/0cba45c3abc98d4f1ffdf75da3610e6e52267737\"\u003e\u003ccode\u003e0cba45c\u003c/code\u003e\u003c/a\u003e feat: [Many APIs] add methods from gax to cache proto root and process custom...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/e7e9fc358f4a9717c33bd318da587d88ec01fa21\"\u003e\u003ccode\u003ee7e9fc3\u003c/code\u003e\u003c/a\u003e chore: update google-gax in client libraries (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6428\"\u003e#6428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/246de8f28d2f739ab869897902481262adf7e0a4\"\u003e\u003ccode\u003e246de8f\u003c/code\u003e\u003c/a\u003e 🦉 Updates from OwlBot post-processor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/d9179726b4b8b61a69c70898367c0e6b8c6e80a0\"\u003e\u003ccode\u003ed917972\u003c/code\u003e\u003c/a\u003e 🦉 Updates from OwlBot post-processor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/d11d8e96f03f87ce03bfd5a7a0e908c83cdc9819\"\u003e\u003ccode\u003ed11d8e9\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6177\"\u003e#6177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/dcfc7b492a2ac3fb86b93ae1375bac1c5153d049\"\u003e\u003ccode\u003edcfc7b4\u003c/code\u003e\u003c/a\u003e fix: [Many APIs] await/catch promises, and update listOperationsAsync return ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f8e36751fb23f73bff53afd4da39a04caa7d700\"\u003e\u003ccode\u003e6f8e367\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/packages/google-cloud-kms/issues/6167\"\u003e#6167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-node/commits/dlp-v6.3.0/packages/google-cloud-kms\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google-cloud/storage` from 8.2.0 to 8.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-node/releases\"\u003e@​google-cloud/storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003estorage: v8.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.3.0...storage-v8.4.0\"\u003e8.4.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egaxios: v8.3.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/gaxios-v8.3.0...gaxios-v8.3.1\"\u003e8.3.1\u003c/a\u003e (2026-10-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Exclude compiled tests and .tsbuildinfo from published tarball (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9612\"\u003e#9612\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/7394a3817c0dc8cc1a93a64a61c7ef06766d70b4\"\u003e7394a38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Normalize TimeoutError in _request and propagate retry timeout (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9582\"\u003e#9582\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/1b10df061581851f05bdd4f9162711b68726297c\"\u003e1b10df0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Remove --abort-signal-timeout-shim (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9555\"\u003e#9555\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/29d8a5e19b4498b63caa7de97bda6c1474ba19b1\"\u003e29d8a5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egaxios:\u003c/strong\u003e Remove --bun-plugin-shim and support Bun fetch natively (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9561\"\u003e#9561\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/93b426d1b94e6c42e3f4b0ef8f1be213f3bc1187\"\u003e93b426d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecloud-profiler: v8.2.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/cloud-profiler-v8.2.0...cloud-profiler-v8.2.1\"\u003e8.2.1\u003c/a\u003e (2026-10-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse npm in prepare/compile lifecycle scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9587\"\u003e#9587\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/64c3a2bafc62273f7cdc3b9612756d631afc3f97\"\u003e64c3a2b\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/googleapis/google-cloud-node/blob/main/handwritten/storage/CHANGELOG.md\"\u003e@​google-cloud/storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.3.0...storage-v8.4.0\"\u003e8.4.0\u003c/a\u003e (2026-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate API sources and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9554\"\u003e#9554\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/8b6837a9757cc8bb281e0611b173cb19b58d4ac5\"\u003e8b6837a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.2.1...storage-v8.3.0\"\u003e8.3.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e Add individual CLI flags for Bun monkey patches (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9533\"\u003e#9533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/a5eec894b054e0605fd8e79591a88393bb2697c6\"\u003ea5eec89\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/compare/storage-v8.2.0...storage-v8.2.1\"\u003e8.2.1\u003c/a\u003e (2026-10-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Re-enable docs check and update linkinator (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9257\"\u003e#9257\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f9d967049cb80ac201964258a6d3fd016ad0963\"\u003e6f9d967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Upgrade google-auth-library to v11, gaxios to v7 and align auth client types (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-node/issues/9289\"\u003e#9289\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c6c946d25ffd2cba6a703f7e2c910d866a5d9694\"\u003ec6c946d\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/googleapis/google-cloud-node/commit/27d6be61e43e2f54a78ffc78e141f79471848623\"\u003e\u003ccode\u003e27d6be6\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.4.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9576\"\u003e#9576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/5250db6096d9181c5f650b1f8c518a139a94a1a5\"\u003e\u003ccode\u003e5250db6\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.3.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9552\"\u003e#9552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/a5eec894b054e0605fd8e79591a88393bb2697c6\"\u003e\u003ccode\u003ea5eec89\u003c/code\u003e\u003c/a\u003e feat(tools): add individual CLI flags for Bun monkey patches (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9533\"\u003e#9533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c0239c88c992c6969463f38c3d68a5c2828b7386\"\u003e\u003ccode\u003ec0239c8\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.2.1 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/c6c946d25ffd2cba6a703f7e2c910d866a5d9694\"\u003e\u003ccode\u003ec6c946d\u003c/code\u003e\u003c/a\u003e fix(storage): upgrade google-auth-library to v11, gaxios to v7 and align auth...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/6f9d967049cb80ac201964258a6d3fd016ad0963\"\u003e\u003ccode\u003e6f9d967\u003c/code\u003e\u003c/a\u003e fix(storage): re-enable docs check and update linkinator (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9257\"\u003e#9257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/f11413ca7dcd35c96c98e1f2a5ced889c710c56e\"\u003e\u003ccode\u003ef11413c\u003c/code\u003e\u003c/a\u003e test(storage): adopt run-test runner and fix Bun shim caching and mocking for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/fd32884d9861fa6a11502d6f1784d90fd79add84\"\u003e\u003ccode\u003efd32884\u003c/code\u003e\u003c/a\u003e chore(main): release storage 8.2.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9297\"\u003e#9297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/b880f6628d6871e66fc71bdcb42065cffab6d4b7\"\u003e\u003ccode\u003eb880f66\u003c/code\u003e\u003c/a\u003e refactor(storage): dynamically import mime and p-limit with module caching (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-node/commit/3ff5ae9a40d1703f9df548dfdf12012cfcb24a0d\"\u003e\u003ccode\u003e3ff5ae9\u003c/code\u003e\u003c/a\u003e chore: update .nycrc, Contributing.md, and .gitignore across packages (\u003ca href=\"https://github.com/googleapis/google-cloud-node/tree/HEAD/handwritten/storage/issues/9144\"\u003e#9144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-node/commits/storage-v8.4.0/handwritten/storage\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@google/genai` from 2.23.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/js-genai/releases\"\u003e@​google/genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\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/googleapis/js-genai/blob/main/CHANGELOG.md\"\u003e@​google/genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.29.0...v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econcatenate output_text across multi-step model responses in a turn (\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e567cc8a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.28.0...v2.29.0\"\u003e2.29.0\u003c/a\u003e (2026-10-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eaccumulate streaming continuation usage metadata and expose initialPromptTokenCount (\u003ca href=\"https://github.com/googleapis/js-genai/commit/dbc961f0294e3fdc9d8fc277b9921bada8f97b90\"\u003edbc961f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003econtinuation_token\u003c/code\u003e to the Interactions \u003ccode\u003einteraction.status_update\u003c/code\u003e event. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a93776c9479d69d280ca1d2fc9784a8cebc5417a\"\u003ea93776c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a CONTINUATION_REQUIRED Interaction status (\u003ca href=\"https://github.com/googleapis/js-genai/commit/754f71f0f90d0355f32f100a1c338b008a1c89e1\"\u003e754f71f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd billable token counts fields (\u003ca href=\"https://github.com/googleapis/js-genai/commit/839ffc25de12a47a66db10d236d53d59d97d0530\"\u003e839ffc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd startOffset/endOffset to Transcription and interimTranscriptTimestampEnabled to RealtimeInputConfig (\u003ca href=\"https://github.com/googleapis/js-genai/commit/bdbf1560751d333c6391ca5b4a29799af2baef3c\"\u003ebdbf156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage in InteractionStatusUpdate events (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8892aeace095b90805890e0fd5cfa027d87bbc70\"\u003e8892aea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically consume the continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/98637d1f60dd5a02d978aa354d576ce160b5c65c\"\u003e98637d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e update Speakeasy generator to v2.948.0, bump CLI to v0.4.2, and apply CLI overlay fixes (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22d53ec2f7dc94416fac20bbbf68585712c527c3\"\u003e22d53ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eclear intermediate CONTINUATION finishReason in streaming continuation (\u003ca href=\"https://github.com/googleapis/js-genai/commit/22706af4f7d770a64df2aa0557011549380d2350\"\u003e22706af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edo not record incomplete continuation stream turns in curated chat history (\u003ca href=\"https://github.com/googleapis/js-genai/commit/81c3c49bd2a86c300b23693327df41382f94e535\"\u003e81c3c49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egemini-api-cli:\u003c/strong\u003e remove unsupported 2.5 and 1.6 models from Interactions model options and CLI examples (\u003ca href=\"https://github.com/googleapis/js-genai/commit/1002720893eef0663d020312da552c64d7c5e65e\"\u003e1002720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e do not set initial prompt token count for requests that do not use automatic consumption of continuation token (\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e0885fb9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ejs:\u003c/strong\u003e fix streaming continuation edge cases (stale token, AbortError, initialPromptTokenCount) (\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003ef3d10a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise default HTTP timeouts so long-running requests aren't killed client-side (\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e10e850c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresume streaming generation from the latest checkpoint continuation token on mid-stream errors or cutoffs (\u003ca href=\"https://github.com/googleapis/js-genai/commit/625ac2c3a663719e57efbf51055a36b1e27a86d8\"\u003e625ac2c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate EnvironmentConfig.env schema to map keys to EnvVar or string. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e8478e12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-10-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026quot;allowlist\u0026quot;: \u0026quot;disabled\u0026quot;\u003c/code\u003e in environment network config. (\u003ca href=\"https://github.com/googleapis/js-genai/commit/18bc39223fd7f7f31c85ce9c60d3007046c787ee\"\u003e18bc392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate discovery doc (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4e996fec6389945d55d04e3a65948a4358eeb34e\"\u003e4e996fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2026-10-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003elyria-3.5\u003c/code\u003e, \u003ccode\u003egemini-omni-1.1-flash\u003c/code\u003e, and \u003ccode\u003egemini-omni-flash-preview\u003c/code\u003e to Interactions \u003ccode\u003eModel\u003c/code\u003e enum (\u003ca href=\"https://github.com/googleapis/js-genai/commit/4ce63d11497cc86567ecc7e44677cd687f28deac\"\u003e4ce63d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport continuation_token in Interactions (\u003ca href=\"https://github.com/googleapis/js-genai/commit/a888ad73abda6a64dfb140599438afca1033ee2f\"\u003ea888ad7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.25.0...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2026-10-01)\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/googleapis/js-genai/commit/2e083a76600f37755dab8c4947dd45881f05f33a\"\u003e\u003ccode\u003e2e083a7\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.1 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/51cf872f3b60050fe63e9d8a1e3cadaae24c05e0\"\u003e\u003ccode\u003e51cf872\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/567cc8a1731850d3d3f22c0f9cf3b0b3664cf79f\"\u003e\u003ccode\u003e567cc8a\u003c/code\u003e\u003c/a\u003e fix: concatenate output_text across multi-step model responses in a turn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/1693f7cce750e5e9c3615e5a90b4602029cb0979\"\u003e\u003ccode\u003e1693f7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.29.0 (\u003ca href=\"https://redirect.github.com/googleapis/js-genai/issues/2013\"\u003e#2013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f66291c8556719ed60d10a85aacb9561d996471b\"\u003e\u003ccode\u003ef66291c\u003c/code\u003e\u003c/a\u003e chore: return early on generate content if automatic continuation is not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/0885fb917cba113fcbe4294731473de5be1fc55f\"\u003e\u003ccode\u003e0885fb9\u003c/code\u003e\u003c/a\u003e fix(js): do not set initial prompt token count for requests that do not use a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/10e850c21ab87d00c7e63e7c8afa592c5d407f0e\"\u003e\u003ccode\u003e10e850c\u003c/code\u003e\u003c/a\u003e fix: Raise default HTTP timeouts so long-running requests aren't killed clien...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/f3d10a68f010825ebf07b13857012ac78ea92546\"\u003e\u003ccode\u003ef3d10a6\u003c/code\u003e\u003c/a\u003e fix(js): fix streaming continuation edge cases (stale token, AbortError, init...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/3ecb0b542c30e4b26c82fc8be96c1e753f99bae8\"\u003e\u003ccode\u003e3ecb0b5\u003c/code\u003e\u003c/a\u003e chore: internal change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/js-genai/commit/8478e1222137e288fa3eaedbc5111bd090dbf400\"\u003e\u003ccode\u003e8478e12\u003c/code\u003e\u003c/a\u003e fix: Update EnvironmentConfig.env schema to map keys to EnvVar or string.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/js-genai/compare/v2.23.0...v2.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/api-logs` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/api-logs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/exporter-logs-otlp-http` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/exporter-logs-otlp-http's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/resources` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/resources's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(sdk-trace): add \u003ccode\u003eStackContextManager\u003c/code\u003e in \u003ccode\u003e@opentelemetry/sdk-trace\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7086\"\u003e#7086\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(ci): support releasing from maintenance branches \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6767\"\u003e#6767\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThe API documentation site is only redeployed for releases whose commit is reachable from \u003ccode\u003emain\u003c/code\u003e, so a maintenance release no longer overwrites it.\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/blob/v2.12.0/CHANGELOG.md\"\u003e@​opentelemetry/resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(sdk-trace): add \u003ccode\u003eStackContextManager\u003c/code\u003e in \u003ccode\u003e@opentelemetry/sdk-trace\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/7086\"\u003e#7086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ci): support releasing from maintenance branches \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6767\"\u003e#6767\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThe API documentation site is only redeployed for releases whose commit is reachable from \u003ccode\u003emain\u003c/code\u003e, so a maintenance release no longer overwrites it.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/v2.11.0...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/sdk-logs` from 0.222.0 to 0.223.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/sdk-logs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.223.0\u003c/h2\u003e\n\u003ch2\u003e0.223.0\u003c/h2\u003e\n\u003ch3\u003e:boom: Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(web-common)!: clean up and deprecate network span utils \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7114\"\u003e#7114\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eThese utilities were long planned for removal. They were moved from the \u003ccode\u003esdk-trace-web\u003c/code\u003e package and are currently only used by the (deprecated) \u003ccode\u003einstrumentation-fetch\u003c/code\u003e and \u003ccode\u003einstrumentation-xml-http-request\u003c/code\u003e packages.\u003c/li\u003e\n\u003cli\u003eDrop the \u003ccode\u003eskipOldSemconvContentLengthAttrs\u003c/code\u003e vestigial option from \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(web-common, instrumentation-fetch, instrumentation-xml-http-request): move utils from \u003ccode\u003e@opentelemetry/sdk-trace-web\u003c/code\u003e\ninto \u003ccode\u003e@opentelemetry/web-common\u003c/code\u003e and use them in \u003ccode\u003e@opentelemetry/instrumentation-fetch\u003c/code\u003e and \u003ccode\u003e@opentelemetry/instrumentation-xml-http-request\u003c/code\u003e.\nWith this change the instrumentations do not depend on SDK packages and the utils are kept in a shared package so we avoid code duplication.\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/open-telemetry/opentelemetry-js/commit/92b844e8aa7d9655e4b3560154e912c4c1ced64d\"\u003e\u003ccode\u003e92b844e\u003c/code\u003e\u003c/a\u003e chore: prepare next v2.x release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7151\"\u003e#7151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/a859aff9825ec8138cf287d08ac86401f00aad7c\"\u003e\u003ccode\u003ea859aff\u003c/code\u003e\u003c/a\u003e fix(web-common): export getElementXPath utility (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7124\"\u003e#7124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/2bd5a73e7af7ab363f3b239f8cb1f5f56eaa3ad5\"\u003e\u003ccode\u003e2bd5a73\u003c/code\u003e\u003c/a\u003e chore(web-common)!: deprecate \u003ccode\u003eaddSpanNetworkEvents()\u003c/code\u003e et al instrumentation-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/d60f05edeac6aec8e64736c10672077fd4a766b5\"\u003e\u003ccode\u003ed60f05e\u003c/code\u003e\u003c/a\u003e doc(sdk-trace): add description for StackContextManager (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7089\"\u003e#7089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/5bd476e6f7a22e6cf2e94a645833247284aa295d\"\u003e\u003ccode\u003e5bd476e\u003c/code\u003e\u003c/a\u003e chore: move context manager to sdk-trace (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7086\"\u003e#7086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/554c0c6467c77e9ef1f2676f2bd20b505e228417\"\u003e\u003ccode\u003e554c0c6\u003c/code\u003e\u003c/a\u003e chore: move sdk-trace-web utils to web-common (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/788922c5780a17d5aaace76a0da458858b2ad88a\"\u003e\u003ccode\u003e788922c\u003c/code\u003e\u003c/a\u003e ci: support maintenance branch releases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/7036\"\u003e#7036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.222.0...experimental/v0.223.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@slack/web-api` from 8.1.1 to 8.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/slackapi/node-slack-sdk/releases\"\u003e@​slack/web-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​slack/web-api\u003c/code\u003e\u003ca href=\"https://github.com/8\"\u003e\u003ccode\u003e@​8\u003c/code\u003e\u003c/a\u003e.2.0\u003c/h2\u003e\n\u003ch3\u003eMinor Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ec523063: feat: add the \u003ccode\u003eagents.conversations.*\u003c/code\u003e methods for \u003ca href=\"https://docs.slack.dev/changelog/2026/08/20/slack-code\"\u003eSlack Code\u003c/a\u003e (\u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.create\"\u003e\u003ccode\u003ecreate\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.archive\"\u003e\u003ccode\u003earchive\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setProperties\"\u003e\u003ccode\u003esetProperties\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setView\"\u003e\u003ccode\u003esetView\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setCommands\"\u003e\u003ccode\u003esetCommands\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.listViews\"\u003e\u003ccode\u003elistViews\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.removeView\"\u003e\u003ccode\u003eremoveView\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.getCanvas\"\u003e\u003ccode\u003egetCanvas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://docs.slack.dev/reference/methods/agents.conversations.setCanvasContent\"\u003e\u003ccode\u003esetCanvasContent\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [ca6f416]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [abf184e]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [d420d00]\u003c/li\u003e\n\u003cli\u003eUpdated dependencies [52eeb05]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​slack/types\u003c/code\u003e\u003ca href=\"https://github.com/3\"\u003e\u003ccode\u003e@​3\u003c/code\u003e\u003c/a\u003e.2.0\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/slackapi/node-slack-sdk/commit/a98047a7f27149812664c78e2dccfe4155b0e145\"\u003e\u003ccode\u003ea98047a\u003c/code\u003e\u003c/a\u003e chore: release (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2726\"\u003e#2726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/c523063b73d6a161fb596a3a86ab51a9de9edd60\"\u003e\u003ccode\u003ec523063\u003c/code\u003e\u003c/a\u003e feat(web-api): add agents.conversations.* methods (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/e22facd44c91843c68258581e104454a7fc21967\"\u003e\u003ccode\u003ee22facd\u003c/code\u003e\u003c/a\u003e fix(socket-mode): route ping/pong diagnostics by identity, not instanceof (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/4dfe5eb41730811e74e5d9616cfd527f24bdc1d6\"\u003e\u003ccode\u003e4dfe5eb\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​biomejs/biome\u003c/code\u003e from 2.5.13 to 2.5.14 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/6d9bad8453caa68c3024d7051d3ab1e8b6bbc81e\"\u003e\u003ccode\u003e6d9bad8\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump typedoc-plugin-markdown from 4.13.0 to 4.13.1 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/334e6a639d33c28c0ef214ecb5598b34003a0d6f\"\u003e\u003ccode\u003e334e6a6\u003c/code\u003e\u003c/a\u003e feat(socket-mode): support undici v8 as a peer dependency (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2694\"\u003e#2694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/7d415e477d7237ca76009f98a148ab97af7760b1\"\u003e\u003ccode\u003e7d415e4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​changesets/cli\u003c/code\u003e from 3.0.2 to 3.0.3 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/600fca5b85f8d910bd1db847e8193af9a3dfe871\"\u003e\u003ccode\u003e600fca5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump \u003ccode\u003e@​biomejs/biome\u003c/code\u003e from 2.5.12 to 2.5.13 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2745\"\u003e#2745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/f4c3e7ed62ec6b459abfc2b68e1d3c153baf0a04\"\u003e\u003ccode\u003ef4c3e7e\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump tsx from 4.23.12 to 4.23.13 (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slackapi/node-slack-sdk/commit/d420d00b623deab9ea4634f5bcba23ae0ecaacdd\"\u003e\u003ccode\u003ed420d00\u003c/code\u003e\u003c/a\u003e feat(types): allow raw_number cells in TableBlock rows (\u003ca href=\"https://redirect.github.com/slackapi/node-slack-sdk/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@8.1.1...@slack/web-api@8.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@workos-inc/widgets` from 1.18.0 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/workos/widgets/commits/HEAD/packages/widgets\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `csv-parse` from 7.0.2 to 7.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md\"\u003ecsv-parse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/adaltas/node-csv/compare/csv-parse@7.0.2...csv-parse@7.0.3\"\u003e7.0.3\u003c/a\u003e (2026-09-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-parse:\u003c/strong\u003e preserve typed column keys (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/500\"\u003e#500\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/745f045295f43a77e14a779bd57a4e3c5f51d9ea\"\u003e745f045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecsv-parse:\u003c/strong\u003e type the delimiter_auto score callback arguments (\u003ca href=\"https://redirect.github.com/adaltas/node-csv/issues/499\"\u003e#499\u003c/a\u003e) (\u003ca href=\"https://github.com/adaltas/node-csv/commit/4aa04daba6336a53fa79c0e0ec2ea242a95ae33c\"\u003e4aa04da\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/adaltas/node-csv/commit/594c6469c4a7376c1048d13c47859c2f91674206\"\u003e\u003ccode\u003e594c646\u003c/code\u003e\u003c/a\u003e chore(release): publish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/16d9900bbe96f0b6d88a6599503f40fea410e6fb\"\u003e\u003ccode\u003e16d9900\u003c/code\u003e\u003c/a\u003e refactor(csv-parse): isolate error and normalize_options in types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/4aa04daba6336a53fa79c0e0ec2ea242a95ae33c\"\u003e\u003ccode\u003e4aa04da\u003c/code\u003e\u003c/a\u003e fix(csv-parse): type the delimiter_auto score callback arguments (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse/issues/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/8d4173d6d8dbb375ba8699cfd1d83af93b921f80\"\u003e\u003ccode\u003e8d4173d\u003c/code\u003e\u003c/a\u003e build: latest dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/c8caa1ccd262151c7d11add8fb7b454ed1d447a9\"\u003e\u003ccode\u003ec8caa1c\u003c/code\u003e\u003c/a\u003e build: generate latest dist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6c45c9b2f5aac96b2097229749a3521840cf1dc2\"\u003e\u003ccode\u003e6c45c9b\u003c/code\u003e\u003c/a\u003e build: remove npx usage in package scripts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/6f39f278fdd8faa2e972c0e5bbda525ebec56e87\"\u003e\u003ccode\u003e6f39f27\u003c/code\u003e\u003c/a\u003e test: remove lint errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/94ae7b949ddd26f7ec09e2bf13147c41801b32d0\"\u003e\u003ccode\u003e94ae7b9\u003c/code\u003e\u003c/a\u003e test: rename mocha setup rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/42a6b0928ae17ad020a46d610e6515173a8e2f27\"\u003e\u003ccode\u003e42a6b09\u003c/code\u003e\u003c/a\u003e test: remove ts-node usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adaltas/node-csv/commit/745f045295f43a77e14a779bd57a4e3c5f51d9ea\"\u003e\u003ccode\u003e745f045\u003c/code\u003e\u003c/a\u003e fix(csv-parse): preserve typed column keys (\u003ca href=\"https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adaltas/node-csv/commits/csv-parse@7.0.3/packages/csv-parse\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express` from 5.2.1 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-8...\n\n_Description has been truncated_","html_url":"https://github.com/adcontextprotocol/adcp/pull/8287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adcontextprotocol%2Fadcp/issues/8287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8287/packages"}},{"old_version":"5.2.1","new_version":"5.3.0","update_type":"minor","path":null,"pr_created_at":"2026-10-17T17:42:49.000Z","version_change":"5.2.1 → 5.3.0","issue":{"uuid":"5901260708","node_id":"PR_kwDOTNPCz88AAAABJDVKVw","number":17,"state":"open","title":"chore(deps): bump express from 5.2.1 to 5.3.0","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-10-17T17:42:49.000Z","updated_at":"2026-10-17T17:43:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"express","old_version":"5.2.1","new_version":"5.3.0","repository_url":"https://github.com/expressjs/express"}],"path":null,"ecosystem":"npm"},"body":"Bumps [express](https://github.com/expressjs/express) from 5.2.1 to 5.3.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/expressjs/express/releases\"\u003eexpress's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003ch3\u003e🐞 Bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\r\napp.query('/reports', (req, res) =\u0026gt; {\r\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\r\n  res.send(results); // now responds 304 Not Modified\r\n});\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\r\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\r\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\r\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\r\n\u003c/code\u003e\u003c/pre\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/expressjs/express/blob/master/History.md\"\u003eexpress's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.3.0\u003c/h1\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by \u003ca href=\"https://github.com/YuryShkoda\"\u003e\u003ccode\u003e@​YuryShkoda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/4893\"\u003e#4893\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFixed the behavior of \u003ccode\u003eres.send()\u003c/code\u003e to prevent conflicts between \u003ccode\u003eContent-Length\u003c/code\u003e and \u003ccode\u003eTransfer-Encoding\u003c/code\u003e HTTP headers in responses. The \u003ccode\u003eContent-Length\u003c/code\u003e header in \u003ccode\u003eres.send()\u003c/code\u003e is now only added when a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of a \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header - by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7459\"\u003e#7459\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eqs\u003c/code\u003e to \u003ccode\u003e^6.16.0\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-2391\"\u003eCVE-2026-2391\u003c/a\u003e (\u003ca href=\"https://github.com/ljharb/qs/security/advisories/GHSA-w7fw-mjwx-w883\"\u003eGHSA-w7fw-mjwx-w883\u003c/a\u003e), \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82417\"\u003eCVE-2026-82417\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-4mjr-xmp4-gh2g\"\u003eGHSA-4mjr-xmp4-gh2g\u003c/a\u003e) and \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-82562\"\u003eCVE-2026-82562\u003c/a\u003e (\u003ca href=\"https://github.com/advisories/GHSA-x5fp-wj9c-mxmx\"\u003eGHSA-x5fp-wj9c-mxmx\u003c/a\u003e): \u003ccode\u003earrayLimit\u003c/code\u003e bypasses in comma parsing and a denial of service via an attacker-controlled \u003ccode\u003eisBuffer\u003c/code\u003e - by \u003ca href=\"https://github.com/davetashner\"\u003e\u003ccode\u003e@​davetashner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7057\"\u003e#7057\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7478\"\u003e#7478\u003c/a\u003e, and \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7305\"\u003e#7305\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003eproxy-addr\u003c/code\u003e to \u003ccode\u003e^2.0.8\u003c/code\u003e, which fixes \u003ca href=\"https://www.cve.org/CVERecord?id=CVE-2026-90711\"\u003eCVE-2026-90711\u003c/a\u003e - by \u003ca href=\"https://github.com/lazerg\"\u003e\u003ccode\u003e@​lazerg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7474\"\u003e#7474\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow conditional revalidation for QUERY requests. \u003ccode\u003ereq.fresh\u003c/code\u003e previously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by \u003ca href=\"https://github.com/Cherry\"\u003e\u003ccode\u003e@​Cherry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7366\"\u003e#7366\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003e// QUERY /reports with If-None-Match: \u0026quot;12345\u0026quot;\napp.query('/reports', (req, res) =\u0026gt; {\n  res.set('ETag', '\u0026quot;12345\u0026quot;');\n  res.send(results); // now responds 304 Not Modified\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove HTML structure in \u003ccode\u003eres.redirect()\u003c/code\u003e responses when HTML format is accepted by adding \u003ccode\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e, and \u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e tags for better browser compatibility - by \u003ca href=\"https://github.com/Bernice55231\"\u003e\u003ccode\u003e@​Bernice55231\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eapp.render\u003c/code\u003e with options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by \u003ca href=\"https://github.com/AkaHarshit\"\u003eAkaHarshit\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6903\"\u003e#6903\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eapp.render('index', null, callback); // now works as expected\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-type\u003c/code\u003e to \u003ccode\u003e^2.0.0\u003c/code\u003e, bringing a faster parser (~1.5x quicker \u003ccode\u003eContent-Type\u003c/code\u003e parsing/formatting in \u003ccode\u003eres.send()\u003c/code\u003e) along with a behavior change: \u003ccode\u003eres.send()\u003c/code\u003e now keeps any existing parameters when adding the charset and no longer throws on a \u003ccode\u003eContent-Type\u003c/code\u003e that fails to parse. \u003ccode\u003etype-is\u003c/code\u003e is upgraded to \u003ccode\u003e^2.1.0\u003c/code\u003e as part of the same change - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7234\"\u003e#7234\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.set('Content-Type', 'text/plain; foo=bar').send('hey');\n// -\u0026gt; Content-Type: text/plain; foo=bar; charset=utf-8\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default error handler now logs the full error object instead of only its stack trace, so nested details such as \u003ccode\u003eError.cause\u003c/code\u003e and library-specific properties (e.g. Sequelize's \u003ccode\u003eparent\u003c/code\u003e/\u003ccode\u003eoriginal\u003c/code\u003e) are no longer swallowed - by \u003ca href=\"https://github.com/Nitin-Mohapatra\"\u003e\u003ccode\u003e@​Nitin-Mohapatra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/6464\"\u003e#6464\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade \u003ccode\u003econtent-disposition\u003c/code\u003e to \u003ccode\u003e^2.0.1\u003c/code\u003e, which changes the \u003ccode\u003eContent-Disposition\u003c/code\u003e header emitted by \u003ccode\u003eres.download()\u003c/code\u003e, \u003ccode\u003eres.attachment()\u003c/code\u003e, and \u003ccode\u003eres.sendFile()\u003c/code\u003e: file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by \u003ca href=\"https://github.com/blakeembrey\"\u003e\u003ccode\u003e@​blakeembrey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/expressjs/express/pull/7233\"\u003e#7233\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eres.attachment('user.html');\n// before -\u0026gt; Content-Disposition: attachment; filename=\u0026quot;user.html\u0026quot;\n// after  -\u0026gt; Content-Disposition: attachment; filename=user.html\n\u003c/code\u003e\u003c/pre\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/expressjs/express/commit/cf6722bf89a86905281d9160b6482e08166b5ef0\"\u003e\u003ccode\u003ecf6722b\u003c/code\u003e\u003c/a\u003e 5.3.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7468\"\u003e#7468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/8c2fcfcb7d37c9c2e89363b7b86a092768c3a8a3\"\u003e\u003ccode\u003e8c2fcfc\u003c/code\u003e\u003c/a\u003e docs: fix typos and a stale API reference in lib comments (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7512\"\u003e#7512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9efc29e280018dafc1f0617f3a3d28f4e463b7be\"\u003e\u003ccode\u003e9efc29e\u003c/code\u003e\u003c/a\u003e docs: fix pass-through typos (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7509\"\u003e#7509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/2717ae3cbf2bdc3f946d22ea6a4e0b5bd438b87b\"\u003e\u003ccode\u003e2717ae3\u003c/code\u003e\u003c/a\u003e build(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7499\"\u003e#7499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/de777714df3fb1e81ac2d95f509c421478ab1e56\"\u003e\u003ccode\u003ede77771\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump hbs from 4.3.0 to 4.3.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7500\"\u003e#7500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9169cbe1127ed1f9bc4f80a70b82c412467dd156\"\u003e\u003ccode\u003e9169cbe\u003c/code\u003e\u003c/a\u003e docs: add missing apostrophe in example (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7483\"\u003e#7483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/7ef98448f8b38099ab1ded55e458538ad47a51e7\"\u003e\u003ccode\u003e7ef9844\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump morgan from 1.12.0 to 1.12.1 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7493\"\u003e#7493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/3b7e39fe74371ddabc77fed736dd22aa71c14f5c\"\u003e\u003ccode\u003e3b7e39f\u003c/code\u003e\u003c/a\u003e deps: bump qs minimum to 6.16.0 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7478\"\u003e#7478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/98bd4cd96b250d25e1672c36f49cfc743bc801e7\"\u003e\u003ccode\u003e98bd4cd\u003c/code\u003e\u003c/a\u003e deps: proxy-addr@^2.0.8 (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7474\"\u003e#7474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/expressjs/express/commit/9a34acf03cb818ff3f8bc40e44176e277a25cbb9\"\u003e\u003ccode\u003e9a34acf\u003c/code\u003e\u003c/a\u003e fix(res.send): preserve ETag generation with Transfer-Encoding (\u003ca href=\"https://redirect.github.com/expressjs/express/issues/7459\"\u003e#7459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/expressjs/express/compare/v5.2.1...v5.3.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 express since your current version.\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=express\u0026package-manager=npm_and_yarn\u0026previous-version=5.2.1\u0026new-version=5.3.0)](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/GimiRick/DevTools-Terminator/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GimiRick%2FDevTools-Terminator/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}}]}