Repository navigation
chore(deps): update npm deps - #98
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/npm-deps
branch
23 times, most recently
from
October 18, 2026 00:42
9fbc3fa to
165fda2
Compare
renovate
Bot
force-pushed
the
renovate/npm-deps
branch
from
October 18, 2026 20:45
165fda2 to
c7533b4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^1.63.0→^1.64.1^5.104.1→^5.104.4^5.104.1→^5.104.4^1.170.41→^1.170.45^14.6.7→^14.6.8^6.1.1→^6.1.2^10.12.0→^10.13.0^19.1.0-rc.3→^19.1.0-rc.1-rc-af1b7da-20250421^26.4.2→^26.5.2^30.1.2→^30.1.3^1.52.0→^1.59.0^1.6.7→^1.8.1^19.3.0→^19.3.1^19.3.0→^19.3.1^17.0.15→^17.1.0^4.21.1→^4.22.1^8.71.0→^8.71.2^8.3.2→^8.3.4^5.0.3→^5.0.5^4.6.5→^4.6.7Release Notes
microsoft/playwright (@playwright/test)
v1.64.1Compare Source
Bug Fixes
v1.64.0Compare Source
🧰 WebMCP
New page.webmcp and frame.webmcp give access to the tools that a page registers through the experimental WebMCP browser API, so you can test them like any other part of your app:
Playwright MCP also supports WebMCP by default, with page-defined tools offered to the agent as
webmcp_<tool>. Pass--no-webmcpto opt out.playwright-cliexposes them as well:playwright-cli webmcp-list playwright-cli webmcp-call search_catalog --params '{"query":"cats"}'🎬 Better videos
Videos can now be recorded at a custom frame rate, and the decorations for actions are styled with plain CSS:
fpsoption in testOptions.video,recordVideoandscreencast.start(). Firefox and WebKit currently capture up to 25 frames per second.
styleoption takes CSS declarations for thepointmarker, the targethighlightand the actiontitle. It replaces thefontSizeoption, which is now deprecated.quality.
playwright-cli.🎯 Test runner
New testProject.default option keeps a project in the config without running it by default. You can configure every browser you care about, and let a plain
npx playwright testrun just your favourite one:New
--shufflecommand line option schedules tests in a random order, which helps to find tests that accidentally depend on each other.New
lockoption in test.describe.configure() adds test locks to all tests in a file or a group:New
typeoption oftoHaveScreenshotin testConfig.expect stores all unnamed screenshots as WebP:🪆 Locator.within()
New locator.within() combines two locators that you already have, reading in the natural order —
"this button, within that dialog":
Relative locators such as locator.nth() or locator.first() are resolved inside each parent
separately, which makes column-like queries straightforward:
New APIs
New page.getByRef() locates an element by its aria ref, such as
e2, reported by page.ariaSnapshot() in the'ai'mode.New option
includeShadowin page.content() and frame.content() serializes open shadow roots as declarative shadow DOM.New option
signCountsets the initial signature counter of a virtual credential. credentials.create() and credentials.get() return the currentsignCount, and it is saved and restored together with the credentials in the storage state.New fullConfig.filteredProjects lists the projects that were selected to run after applying the
--projectfilter. It is available in global setup and reporters.New apiRequestContext.addCookies(), apiRequestContext.cookies() and apiRequestContext.clearCookies() manage cookies of a request context, mirroring the BrowserContext methods:
Breaking changes⚠️
screenproperty is now forwarded from the device descriptors. If you use...devices['Desktop Chrome']and alike,window.screenand media queries now see the emulated screen size. You can opt-out by explicitly settingscreentoundefined:JSX in your test files now follows your
tsconfig.json. Playwright compiles JSX in test files according to thejsx,jsxFactory,jsxFragmentFactoryandjsxImportSourcetsconfig options, and defaults to the automatic runtime fromreact/jsx-runtime.--update-snapshots=missingnow passes the test run. Tests that only create missing snapshots now pass in the'missing'mode of testConfig.updateSnapshots, so that CI can generate new snapshots and verify the existing ones in a single run. The mode used when the option is not specified is now called'default'and behaves as before: missing snapshots are written and the test fails.Elements inside hidden iframes are considered hidden. Elements inside an iframe that is not visible, for example with
visibility: hidden, are now considered hidden by actions, locator.isVisible() and expect(locator).toBeVisible().Browser Versions
This version was also tested against the following stable channels:
TanStack/query (@tanstack/eslint-plugin-query)
v5.104.4Compare Source
Patch Changes
#12044
a5f1b09- refactor(eslint-plugin-query/exhaustive-deps): remove the unusedfixablefrom the rule metadata, as the rule only provides suggestions#11889
1cf6eb4- Detect unstable query dependencies in aliased React hooks imported fromreact.v5.104.3Compare Source
No changes in this release.
v5.104.2Compare Source
No changes in this release.
TanStack/query (@tanstack/react-query)
v5.104.4Compare Source
Patch Changes
#11328
c208861- Allow queries with falsy errors to retry on mount whenthrowOnErrorreturns false.#11728
a108398- fix(react-query*): declare '@types/react' as an optional peer dependencyUpdated dependencies [
1fee044,fce89dd]:v5.104.3Compare Source
Patch Changes
0f15bc9]:v5.104.2Compare Source
Patch Changes
03e8c39]:TanStack/router (@tanstack/react-router)
v1.170.45Compare Source
Patch Changes
18154b1]:v1.170.44Compare Source
Patch Changes
d6ba115]:v1.170.43Compare Source
Patch Changes
94d6d8e]:v1.170.42Compare Source
Patch Changes
#8594
2413cc0- reduce component nesting per route match#8602
efc2042- Links of a route that the pending navigation leaves skip deriving the destination location, and clicks and preloads follow the href a Link displays.buildLocationnow buildsmaskandrouteMaskslocations from the same_fromLocationas the destination.#8602
efc2042- Fixed Link destinations that resolve to a route mask are now reused across navigations instead of being rebuilt every time. A mounted Link now follows changes to itshrefandreloadDocumentprops, and React Links no longer each subscribe to a hydration flag.#8579
d35aab4- Cancel pending link preload timers when starting navigation to avoid redundant preloading while the destination is loading.Updated dependencies [
dfe3dea,dfe3dea,dfe3dea,efc2042,efc2042,dfe3dea,663282b]:testing-library/user-event (@testing-library/user-event)
v14.6.8Compare Source
Bug Fixes
vitejs/vite-plugin-react (@vitejs/plugin-react)
v6.1.2Compare Source
Fix HMR for compound components (#1484)
Adding or removing a component from a compound component was not handled, creating stale updates. Doing this now triggers hmr invalidate on the file and propagates the invalidation to importers.
Fix
compiler.logDiagnosticsoption not working (#1483)With
oxc-transform-react>= 0.148, thelogDiagnosticswas not working. This version fixes it and requiresoxc-transform-react>= 0.152 as a peer dependency if you are using thecompileroption.compiler.logDiagnosticsoption is now deprecated and should be swapped for the builtincompiler.reportDiagnostics.Disable refresh for non-jsx with compiler enabled (fix #1478) (#1485)
When the compiler was enabled, TS files could trigger fast refresh which would cause runtime errors. The logic now follows what the builtin oxc plugin in Vite does.
eslint/eslint (eslint)
v10.13.0Compare Source
Features
48d5cc4feat: report references inside IIFEs inno-use-before-define(#21238) (Irfan fandi)a39d9fbfeat: addglobalThistono-obj-calls(#21382) (synthex-byte)66ac583feat: checkyield*expressions inno-unsafe-optional-chaining(#21399) (xbinaryx)Bug Fixes
87bd2cefix: avoid redeclaredletwhenno-varandone-varfix together (#21389) (Daniel Pinto)Documentation
4783a68docs: Update README (GitHub Actions Bot)43f0ac9docs: clarify parameter description ingetText(#21287) (lumir)Chores
b59d889chore: update github/codeql-action action to v4.38.3 (#21412) (renovate[bot])95e51a0ci: re-enable@typescript-eslint/typescript-eslintin ecosystem tests (#21410) (Francesco Trotta)317fcb3chore: update ecosystem plugins (#21409) (ESLint Bot)b92decfperf: skip no-redeclare scan for single-declaration variables (#21365) (James Ross)47b7063chore: update dependency @eslint/json to ^2.1.1 (#21398) (renovate[bot])e5aea41chore: update ecosystem plugins (#21390) (ESLint Bot)i18next/i18next (i18next)
v26.5.2Compare Source
t()call with a missing, misspelled or wrongly typed option now reports that option again (Property 'album' is missing,Type 'string' is not assignable to type 'number'), as TypeScript 5 and 6 do. TypeScript 7 elaborated the error against the default-value signature instead and ended in'{ count: 3; albm: "Summer"; }' is not assignable to type 'string': on a failed call TypeScript explains the last of the equally matching signatures, and TypeScript 7 sorts the 3-element[key, defaultValue, options?]last. It is now written as two signatures,[key, defaultValue]and[key, defaultValue, options]. This affects the default key checks with i18next{{name}}messages as well asparseInterpolation: 'icu'and'mf2'. Which calls compile, their return types and the error positions are unchanged on TypeScript 5.9, 6 and 7.v26.5.1Compare Source
t()calls against a large namespace is no longer quadratic in the number of keys. TypeScript does not cachekeyofof an object type, and the types rebuilt the union of all keys of a namespace once per key while building the key union, and again in everyt()call to look up the return type. Both now use a cached key union, and a literal key is looked up directly instead of being intersected with every key. With 5,000 keys in one namespace and one call per key, the check time went from 14.8s to 1.1s (TypeScript 6); with 1,000 keys from 0.75s to 0.27s. Keys, return types and errors are unchanged.enableSelector: true/'strict') withcontextis no longer quadratic in the size of an object. To decide which keys a context keeps, the types scanned all keys of the object once for every key, also when TypeScript checks the selector withcontextwidened tostring. With 1,000 keys plus one context variant each, a namespace took 18.7s and failed with "Type instantiation is excessively deep and possibly infinite" (TS2589); 2,500 and more ran out of memory. The context variants of an object are now collected once, in one pass over its keys: 1,000 keys check in 0.69s, 5,000 in 3.1s. Long keys (whole sentences withkeySeparator: false) work as before. Selected values and errors are unchanged.v26.5.0Compare Source
parseInterpolation: 'icu'andparseInterpolation: 'mf2'typet()options from the message's ICU MessageFormat arguments (i18next-icu) or MessageFormat 2 variables (i18next-mf2), so ICU and MF2 users no longer needparseInterpolation: falseand lose argument checking. Missing, misspelled and wrongly typed arguments fail, and so does leaving out the options for a message with arguments (t('greeting')); that error names the missing arguments. Opt-in, defaulttrueis unchanged.{name}takesstring | number,{n, number},pluralandselectordinaltakenumber,{d, date}and{t, time}takeDate,selecttakes its case keys or any string (forother), and arguments nested in cases are required too.#and tags are not arguments, apostrophe quoting is read like intl-messageformat does.{$name}takesstring | number, a variable annotated with:number,:integer,:currency,:percentor:unit(inline or through.input/.local) takesnumber,:datetime,:dateand:timetakeDate,:stringtakesstring, option and markup variables (minimumFractionDigits=$digits,{#link href=$url}) are required too,.localvariables are not arguments, and|quoted literals|and\{escapes are skipped.interpolationFormatTypeMapoverrides a type by ICU format or MF2 function name, e.g.date: Date | numberor a customuppercase: string.t(),getFixedT(),i18n.t, key prefixes, namespaces, the selector API and react-i18next'sTransvalues. Messages need literal types, as the resources file from i18next-cli'stypescommand has them.false(TypeScript 6), 0.5s instead of 0.26s with TypeScript 7. Messages that no call uses cost nothing.Property 'name' is missing) instead of'{ nmae: string }' is not assignable to type 'string'from the default-value overload.v26.4.7Compare Source
cloneInstance()no longer inheritspreload.loadResources()adds everypreloadlanguage to each load, and clones copiedpreloadfrom the parent, so a clone'sinit()and everychangeLanguage()walked all preloaded languages × all namespaces throughqueueLoad()/hasResourceBundle(), although the parent had already loaded them into the shared store. With i18next-http-middleware (one clone +changeLanguage()per request), 25 preloaded languages and 20 namespaces, that was most of the per-request CPU: the reproduction from the issue went from ~90 µs to ~10 µs per request, the same as with a single language. A clone now only loads what it uses itself: itschangeLanguage()no longer waits for parent preload languages that are still loading (the parent's owninit()still does), andclone.loadNamespaces()loads the new namespace for the clone's language and fallbacks instead of every preloaded language.clone.loadLanguages()works as before, the parent instance is unchanged, and passingpreloadtocloneInstance()keeps the old behavior. Thanks @theMostCuriousHomunculus for the detailed report (#2451).v26.4.6Compare Source
toResolveHierarchy()checked the rawfallbackLngvalue against the list, but the list holds formatted codes, so any fallback written differently from its formatted form slipped through:lng: 'de-CH'withfallbackLng: 'de-ch'gavelanguages['de-CH', 'de', 'de-CH'], and the same happened withfallbackLng: 'EN'+cleanCode,lowerCaseLng, and Intl aliases (iw-IL→he-IL). Missing keys were looked up in the same language twice. Only exact duplicates are removed; the order is unchanged. Thanks @lprnmns (#2450).v26.4.5Compare Source
hasLoadedNamespace(ns, { lng })no longer staysfalseforever when the passed inlngis loaded under another code, or not at all. It checked the load state of the rawlng, butloadLanguages()stores a language under its resolved code (de-ch→de-CH,de-CH→dewithload: 'languageOnly') and skips alngoutsidesupportedLngsentirely (only the fallback gets loaded), so that state never got set. react-i18next'suseTranslation(ns, { lng })then never became ready: withuseSuspenseit 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 alngoutsidesupportedLngsonly waits for the fallback, which is also whatt()resolves to. Calls withoutlngand theprecheck(react-i18next'sbindI18n: 'languageChanging') are unchanged (react-i18next#1934).v26.4.4Compare Source
$t(. Its repeated group had overlapping alternatives ([^()"']+inside(?:...)*?, and inside parentheses[^()]also matched quotes), so a string containing$t(without a closing)made the engine try every way to split the text: about 2x the runtime per extra character, and a ~25 character value hungt()for minutes. With the default config this was reachable through any interpolated value (t('greet', { name: '$t(aaaaaaaaaaaaaaaaaaaaaaaa' })): escaping does not touch$,tor(, and theskipOnVariablescheck runs the regexp on the interpolated result, sonest: falsedid not help either. Every alternative now starts with a different character (plain char,",'or(), so there is only one way to match and the cost is linear. Quoted strings and one level of parentheses in nesting options keep working (#2336). The only difference: a lone"or'inside unquoted parentheses within$t(...)is no longer matched. Affects 25.3.3 to 26.4.3. See advisory GHSA-5jr9-983r-c8x4, CVSS 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H). Thanks to Anisetti Chaitanya Eshwar Prasad for the responsible disclosure.nest()now resolves$t(...)in a single pass and no longer nests text that came out of a resolved value. Every nested lookup reset the shared nesting regexp, so the loop started over from the beginning of the string after each match. That had two effects. First, a$t(...)inside a variable that the nested lookup deliberately kept literal (defaultskipOnVariables: true) was resolved anyway by the outer loop: withouter: 'A $t(inner) B'andinner: 'Hi {{name}}',t('outer', { name: '$t(secret)' })rendered thesecrettranslation. It now staysA Hi $t(secret) B, the same as without the outer nesting; withskipOnVariables: falseit is still resolved. Second, the cost was quadratic when an unclosed$t(preceded many nestings, which matters when an app passes untrusted input as the key itself (t(userInput)): 20,000 nestings took ~1.4 s, now ~25 ms. The resolved value is now sliced into the result instead of going throughString.replace, so$&,$`,$'and$$stay literal as before (26.4.2).v26.4.3Compare Source
ResourceStore.hasLanguageSomeTranslations()no longer enumerates every key of a large bundle on each call. It ranObject.keys()on the whole bundle just to learn whether it had at least one key, andinit()/changeLanguage()reach it three times per instance (once while picking the language, twice viasetResolvedLanguage()). With large flat bundles and one i18next instance per SSR request reusing the same resources, that showed up as measurable CPU work before anyt()call. Bundle objects already found non-empty are now remembered in aWeakSetshared across instances, so later checks are O(1): 2,000 inits with a 6,800-key bundle went from ~750 ms to ~20 ms, the same as a one-key bundle. Only the non-empty result is cached. No API removes single keys from a bundle, so a non-empty bundle stays non-empty, and empty bundles are re-checked every time, so keys added later (backend loads,addResource,addResourceBundle, direct or silent changes) count right away. The only edge case: a bundle emptied by hand withdeleteon every key while it is still in the store keeps counting as having translations; useremoveResourceBundle()for that. Thanks @dmchoi77 for the detailed report (#2449).jsdom/jsdom (jsdom)
v30.1.3Compare Source
getComputedStyle()and computed CSS property reads, including with stylesheets containing attribute selectors. (@scttcper, @asamuzaK)XMLHttpRequestreusing credentials supplied toxhr.open()after cross-origin redirects, including in response to authentication challenges from the destination.XMLHttpRequestincorrectly sending and accepting cookies after cross-origin redirects back to the document's origin whenxhr.withCredentialsis false.calc(0px - @submenu_space), while parsing documents, stylesheets, and style declarations. (@rnavarro)getComputedStyle()ignoring style rules nested inside multiple@mediarules.getComputedStyle()returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance.color-mix()results, which regressed in v29.0.2.currentcolorborder colors incorrectly becoming transparent when 'color' useslight-dark()or relative color syntax.[data-a|=""]failing to match empty values and values beginning with-. (@asamuzaK)lucide-icons/lucide (lucide-react)
v1.59.0: Version 1.59.0Compare Source
What's Changed
chess-queenicon by @karsa-mistmere in #4613Full Changelog: lucide-icons/lucide@1.58.0...1.59.0
v1.58.0: Version 1.58.0Compare Source
What's Changed
@ucide/svelteby @ericfennis in #5005barrelicon by @karsa-mistmere in #4639certificateicon by @rrod497 in #4327New Contributors
Full Changelog: lucide-icons/lucide@1.57.0...1.58.0
v1.57.0: Version 1.57.0Compare Source
What's Changed
folder-userandfolder-usericons by @rrod497 in #4603calendar-chevrons-lefticon by @karsa-mistmere in #5001users-collaborationicon by @rrod497 in #4922Belarusian rubleicon by @js-best in #4984circle-fading-playicon by @tatianatsiguleva in #4990cpu-aiicon by @signalgridco in #4992guitar-electricicon by @rrod497 in #4917graph-staricon by @Nitero in #4983perfumeicon by @rrod497 in #4426New Contributors
Full Changelog: lucide-icons/lucide@1.56.0...1.57.0
v1.56.0: Version 1.56.0Compare Source
What's Changed
server-nasicon by @benhaube in #4537notificationscategory name and refinecircle-xtags by @Rachit315 in #4994message-circle-texticon by @ericfennis in #4898New Contributors
Full Changelog: lucide-icons/lucide@1.55.0...1.56.0
v1.55.0: Version 1.55.0Compare Source
What's Changed
mail-doticon by @elenakovelskikh in #3230phone-logicon by @Levi-Bensley in #3598Configuration
📅 Schedule: (in timezone Asia/Shanghai)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.