Update all non-major dependencies - #2954
red-hat-konflux[bot] wants to merge 1 commit into
Conversation
|
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
e488f96 to
a76ea18
Compare
Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
a76ea18 to
fb16aba
Compare
|



This PR contains the following updates:
9.39.4→9.39.51.62.1→1.63.014.6.1→14.6.73.7.2→3.7.520.19.30→20.19.433.4.13→3.4.151.5.387→1.5.4251.5.428(+2)9.39.4→9.39.5^0.4.19→^0.5.00.5.71.66.2→1.73.21.73.33.8.0→3.9.311.1.2→11.1.51.62.1→1.63.03.9.4→3.9.66.14.1→6.16.07.81.0→7.87.07.88.057ad03c→6d86fec9.8-1787721811→9.8-17884113059.8-1787706653→9.8-17890454041.101.0→1.104.01.104.129.4.11→29.4.128.63.0→8.70.0Release Notes
eslint/eslint (@eslint/js)
v9.39.5Compare Source
Bug Fixes
253be16fix: handle unavailable require cache (backport of #20812 to v9.x) (#21065) (Eric)Documentation
74930eddocs: switch build to Node.js 24 (#20894) (Milos Djermanovic)eaec8bbdocs: Add ESLint v9.x EOL notice (#20828) (Milos Djermanovic)Chores
458205fchore: update@eslint/eslintrcand@eslint/jsfor v9.39.5 (#21077) (Francesco Trotta)202117bchore: package.json update for @eslint/js release (Jenkins)d9eb6edtest: disable warning forvm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER(#21074) (Francesco Trotta)7b431a7chore: overridere2dependency for@metascraper/helpers(#21068) (Milos Djermanovic)daf7791chore: pin fflate@0.8.2 (#20895) (Milos Djermanovic)daee8baci: use pnpm ineslint-flat-config-utilstype integration test (#20829) (Milos Djermanovic)116d4beci: unpin Node.js 25.x in CI (#20619) (Copilot)microsoft/playwright (@playwright/test)
v1.63.0Compare Source
🔒 Test locks
Tests that access a shared resource — an external service, a global account setting — can now declare a named
lock.Tests that share a lock name never run concurrently, across files, workers and projects, while
everything else keeps running in parallel:
A test can hold multiple locks, and test.describe() accepts a
lockfor the whole group.Learn more about test locks.
🪟 Locate across frames
page.frameLocator() and frame.frameLocator() called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:
The rest of the locator resolves inside a single frame, just like a regular locator, and an error is thrown when it
matches elements in several frames.
👁️ Visible-only locators
New locator.visible() returns a locator that matches only visible elements. It is the recommended
replacement for the
:visibleCSS pseudo-class:🧾 Step params and subtitles
Steps now carry structured data for reporters. Playwright API steps report the target locator and call arguments,
and test.step() accepts
subtitleandparamsoptions for your own steps:Reporters receive them via testStep.subtitle and testStep.params. For Playwright API
steps, the subtitle is the locator or the navigation url — for example,
Clickwith subtitlegetByRole('button').Both are rendered next to the step title in the trace viewer and the HTML report.
🖼️ Aria and screen snapshots in traces
The
snapshotsoption of tracing.start() and the testOptions.trace fixture option now accept anobject selecting what to capture on every action:
With aria and screen snapshots recorded, the new Display Aria mode in the trace viewer shows the action screenshot
side by side with the aria snapshot, and hovering an aria node highlights it on the screenshot.
New APIs
Browser and Context
httpCredentialsnow also accepts an array of credentials. The first entry matching the request origin is used, and entries without an origin match any request.opfsincludes the origin private file system in the storage state, so it can be persisted and restored into later contexts.Locators
mode,depthandboxesoptions.json():Test runner
--add-reportercommand line option appends a reporter on top of the ones configured inplaywright.config, instead of replacing them like--reporterdoes.omitTagsoption for thelist,line,dot,githubandjunitreporters suppresses the tags that are automatically appended to test titles.Command line
npx playwright install --no-removekeeps the browsers of other Playwright installations instead of removing them.npx playwright codegen --http-credentialsrecords against pages behind HTTP authentication.Miscellaneous
perfettoreporter writes a Trace Event Format file for the Perfetto UI orchrome://tracing, rendering the test run as a timeline with a lane per worker.Announcements
@playwright/experimental-ct-react,@playwright/experimental-ct-react17and@playwright/experimental-ct-vuepackages will no longer be updated. Follow the migration guide to move to the stories model introduced in 1.62. Story ids passed to fixtures.mount() can now be typed through the generatedStoriesregistry.Browser Versions
This version was also tested against the following stable channels:
testing-library/user-event (@testing-library/user-event)
v14.6.7Compare Source
Bug Fixes
v14.6.6Compare Source
Bug Fixes
v14.6.5Compare Source
Bug Fixes
v14.6.4Compare Source
Bug Fixes
v14.6.3Compare Source
Bug Fixes
cure53/DOMPurify (dompurify)
v3.4.15: DOMPurify 3.4.15Compare Source
v3.4.14: DOMPurify 3.4.14Compare Source
pointer-eventsandvector-effectpresentation attributes to the allow-list, thanks @JaybhadeKilian/electron-to-chromium (electron-to-chromium)
v1.5.425Compare Source
v1.5.424Compare Source
v1.5.423Compare Source
v1.5.422Compare Source
v1.5.421Compare Source
v1.5.420Compare Source
v1.5.419Compare Source
v1.5.418Compare Source
v1.5.417Compare Source
v1.5.416Compare Source
v1.5.415Compare Source
v1.5.414Compare Source
v1.5.413Compare Source
v1.5.412Compare Source
v1.5.411Compare Source
v1.5.410Compare Source
v1.5.409Compare Source
v1.5.408Compare Source
v1.5.407Compare Source
v1.5.406Compare Source
v1.5.405Compare Source
v1.5.404Compare Source
v1.5.403Compare Source
v1.5.402Compare Source
v1.5.401Compare Source
v1.5.400Compare Source
v1.5.399Compare Source
v1.5.398Compare Source
v1.5.397Compare Source
v1.5.396Compare Source
v1.5.395Compare Source
v1.5.394Compare Source
v1.5.393Compare Source
v1.5.392Compare Source
v1.5.391Compare Source
v1.5.389Compare Source
v1.5.388Compare Source
ArnaudBarre/eslint-plugin-react-refresh (eslint-plugin-react-refresh)
v0.5.6Compare Source
v0.5.5Compare Source
export { Name }incorrectly treated as React component #114 (fixes #113)contentTypeandsizetoallowExportNamesin Next config #115v0.5.4Compare Source
instanttoallowExportNamesin Next config #112v0.5.3Compare Source
export { }#110 (fixes #109)v0.5.2Compare Source
v0.5.1Compare Source
v0.5.0Compare Source
Breaking changes
reactRefreshexport is available and prefered over the default export. It's an object with two properties:plugin: The plugin object with the rulesconfigs: An object containing configuration presets, each exposed as a function. These functions accept your custom options, merge them with sensible defaults for that config, and return the final config object.customHOCsoption was renamed toextraHOCsextraHOCsoptionConfig example:
Config example without config:
Why
This version follows a revamp of the internal logic to better make the difference between random call expressions like
export const Enum = Object.keys(Record)and actual React HOC calls likeexport const MemoComponent = memo(Component). (fixes #93)The rule now handles ternaries and patterns like
export default customHOC(props)(Component)which makes it able to correctly support files like this one given this config:{ "react-refresh/only-export-components": [ "warn", { "extraHOCs": ["createRootRouteWithContext"] } ] }Because I'm not 100% sure this new logic doesn't introduce any false positive, this is done in a major-like version. This also give me the occasion to remove the hardcoded
connectfrom the rule. If you are usingconnectfromreact-redux, you should now add it toextraHOCslike this:{ "react-refresh/only-export-components": ["warn", { "extraHOCs": ["connect"] }] }i18next/i18next-cli (i18next-cli)
v1.73.2Compare Source
reactis no longer a runtime dependency; it only lives indevDependenciesfor thetype import. The CLI only needs
react-i18nextat runtime, which resolves React from theconsuming project. Previously the
^19.2.8floor could not dedupe against a project pinning anolder React patch (Expo SDK 57 pins
react@19.2.3) and nested a second copy undernode_modules/i18next-cli, which Expo Doctor flagged as a duplicate. Now a single React copy isused. Fixes #292.
v1.73.1Compare Source
<Trans>child error added for#246 now also fires for
{table.name},{fn()},{`a ${b}`}and any other child expression the extractor cannot serialise, notonly for bare identifiers like
{name}. react-i18next inlines the value at runtime, whileextraction silently produced an empty
<1></1>placeholder, so the key never matched. Themessage suggests the
{{name: table.name}}object form. It also no longer asks for avaluesprop: react-i18next reads the value from the
{{name}}object child itself, so<Trans>See table {{name}}</Trans>works on its own. Extraction output is unchanged.Fixes #290.
v1.73.0Compare Source
initruns without the wizard.--yestakes the detected defaults for every questionnot answered by
--locales,--input,--output,--backend <local|locize|other>or--file-type <ts|js>;--project-id <id>(orLOCIZE_PROJECTID) supplies the Locize project idand skips the signup page and the credential prompts. Made for scripts and AI coding agents,
which cannot drive the prompts.
init --agent-note(also the last wizard question, default No) appends a short## Internationalizationsection toAGENTS.md(andCLAUDE.mdwhen present; when neitherexists,
AGENTS.mdis created, plus aCLAUDE.mdimporting it if the project has a.claude/folder) so the next agent session knows where the locale files are and how translations are
managed. The exact text is in the README;
--no-agent-noteskips the question. Nothing iswritten unless you say yes.
localizeagent prompt (--print-agent-prompt) and thei18next-localizationskill no longer presume Locize. The agent asks the developer once, before creating the config,
whether to manage the translations with Locize or keep the files in the repository, and never
creates a project or asks for an API key unless they chose Locize. The prompt now creates the
config with
init --yes ...instead of the interactive wizard.v1.72.4Compare Source
i18next-localizationAgent Skill, andi18next-cli --helpnow ends with a one-line hint on installing it(
npx skills add i18next/i18next-cli). No other command prints anything new.v1.72.3Compare Source
status,extractandsyncis now a single line thatnames the untranslated-key gap and the one command that fills it (
npx i18next-cli localize),each with its own
?from=tagged register link. It only appears when secondary localesactually have untranslated keys; the 24h cooldown and the CI/non-TTY suppression are unchanged.
v1.72.2Compare Source
for...ofloop variables.for (const unit of UNITS)overan
as conststring array now bindsunitwhile the loop body is walked, just like.map()/.forEach()callback parameters already did.as constarrays of object literals (e.g.[{ unit: 'day' }, { unit: 'hour' }]),so both
for (const { unit } of UNITS)andUNITS.forEach(({ unit }) => ...)resolve thedestructured properties.
as constobject, e.g.const { unit } = rate;followed by
t(`msg ${unit}`)(#289).
v1.72.1Compare Source
instrumentprompt crashed because it still used inquirer'slistprompttype, which was removed in inquirer 13; switched to
select(#288).
v1.72.0Compare Source
locize-sync --changed-only [--base <ref>]syncs and AI-auto-translates only the keysthat changed on the current git branch vs. the base branch — ideal for translating just a pull
request's diff instead of the whole project. The source-language files are diffed against the
merge-base with the base branch (auto-detected via
origin/HEAD,main,master, or set with--base); key creation, value updates and auto-translation are restricted to those keys, anddeletions are skipped. Changed keys are scoped per namespace file, and when any plural variant
of a key changed, all its plural forms are included (target languages often need more CLDR
plural forms than the source). Also configurable via
locize.changedOnly/locize.changedOnlyBase. Requires git and locize-cli >= 12.7.sync --changed-only [--base <ref>]applies the same branch-diff scoping to the localsynchronizer: only primary-language keys added or modified on the branch are propagated to the
secondary language files, and obsolete keys are left in place. Works with JSON, JSON5 and YAML
translation files (JS/TS resource modules cannot be parsed from git history and fail with a
clear message). Unusable git setups (git missing, not a repository, unresolvable base ref) fail
the command with actionable errors that mention
actions/checkoutfetch-depth: 0for shallowCI clones.
v1.71.3Compare Source
fallbackNSaccounting now works when the fallback namespace lives in its own fileoutside a merged output (
mergeNamespaces: true), e.g. split out and hidden viaignoreNamespaces:statusandextractlook up a fallback namespace missing from themerged file at its per-namespace path, and a function
outputresolves the merged filewithout a namespace (matching what
extractwrites), so hybrid layouts are expressible viaan
outputfunction. When afallbackNSis listed inignoreNamespacesbut itstranslations cannot be found,
statusnow warns instead of silently reporting the keys asabsent (#287).
v1.71.2Compare Source
extractno longer scales quadratically with the number of keys: selector-API /returnObjectskeys are matched via an O(key depth) Set lookup instead of one regex perobject key, and the per-key leaf check uses a precomputed ancestor-prefix Set instead of
scanning all keys. A 4-minute run on a ~11,500-key monorepo drops to seconds; written
output is byte-identical (#286).
v1.71.1Compare Source
.reduce()/.reduceRight()over anas constarray now bind the element callbackparameter (the second one,
(acc, el) => …) like.map()/.forEach()already did, soERRORS.reduce((acc, n) => { acc[n] = t(`errors.${n}.title`) }, {})extracts every elementwithout the
(typeof ERRORS)[number]cast workaround(#285).
v1.71.0Compare Source
status.ignoreKeysconfig option: glob patterns (same shape aspreservePatterns,optional
ns:prefix) for keys thatstatusshould not report or fail on, e.g. keys that areintentionally empty in some locales. Only affects
status;extractis unchanged(#284).
v1.70.4Compare Source
useTranslation(ns)wherensis a function parameter now resolves to the parameter'sstring default (
({ ns = 'a' }) =>,(ns = 'a') =>), or, without a default, to the firstmember of its inline union type (
{ ns: 'a' | 'b' }), mirroring theTFunction<'a' | 'b'>rule (#284).
v1.70.3Compare Source
TFunction<Ns>members are now found inside intersection types(
Base & { t?: TFunction<Ns> }), including optionalt?:and overload implementationsignatures (#284).
TFunction<Namespace>,<Ns extends Namespace>) are no longerresolved to their first member. Introduced in 1.70.2, this could attribute keys to an arbitrary
namespace when the alias is an app-wide union. Inline unions and literal generic constraints still
resolve to the first member.
v1.70.2Compare Source
(#284):
TFunction<'a' | 'b'>,TFunction<Ns>with<Ns extends 'a' | 'b'>, andTFunction<Alias>with a local
type Alias = 'a' | 'b'resolve to the first member (plain, destructured andprops.tmember-call forms).useTranslation(['a', 'b'] as const)anduseTranslation(NS)with a localconst NS = ['a', 'b']are resolved like the inline array form.v1.70.1Compare Source
(#284):
ReturnType<typeof useTranslation<'ns', 'keyPrefix'>>['t']on parameters (plain anddestructured) is treated like
TFunction<'ns', 'keyPrefix'>.translation function (e.g.
const t = useCallback((key, opts) => tLocal(key, opts), [...]))inherits that function's namespace / keyPrefix.
t()calls inside fenced code blocks (```) of doc comments are no longer extractedas real call sites.
v1.70.0Compare Source
tfunctions whose namespace is not a plainuseTranslation('ns')literal (#284):useTranslation(ns ?? 'fallback')/useTranslation(ns || 'fallback')now resolve to thestatically known side (the fallback literal when the left side is dynamic) instead of
silently falling back to
defaultNS.TFunction<'ns'>/TFunction<'ns', 'keyPrefix'>is now honoured on destructuredparameters as well (
({ t }: { t: TFunction<'ns'> }),({ t }: Props)with a localinterface or type alias), not only on plain
(t: TFunction<'ns'>)parameters.These previously caused
status/extractto attribute such keys to the default namespaceand report them as missing.
v1.69.2Compare Source
@swc/core1.16, which types function, arrow and methodbodies as
FunctionBodyinstead ofBlockStatement(plain blocks likeif (x) { … }areunchanged). Every "is this a function body?" check silently went false, which broke selector
calls with a block body (
t($ => { return $.a.b })), return-type inference from a functionbody (finite dynamic keys), and React component-boundary detection in the instrumenter — so
useTranslation()/<Trans>were no longer injected. Both node types are now accepted.v1.69.1Compare Source
resolved by searching the raw source text, so a short string was reported at the first place
it appeared as a substring anywhere in the file — e.g.
<span>in</span>on line 4 was reportedon line 1 because of
import './settings.scss'. Lines are now taken from the AST node's span,falling back to the text search only when no span is available. This also fixes
i18next-instrument-ignore/i18next-instrument-ignore-next-linebeing ignored for suchstrings, since the directives suppress issues by line
(#283).
v1.69.0Compare Source
acceptedTags: 'all'to lint every JSX tag, including customcomponents, instead of the recommended built-in tag list. Useful together with
acceptedAttributesin codebases with many custom JSX elements where maintaining anexplicit tag accept-list is impractical.
ignoredTagsandtransComponentsstill takeprecedence, and the default behavior when
acceptedTagsis unset is unchanged(#282).
v1.68.0Compare Source
--unusedto report only unused translation keys — keys present in thetranslation files but no longer used in the source code. "Unused" is defined as what
extractwithremoveUnusedKeyswould delete: the report runs the extractor in dry-runmode (with
removeUnusedKeysforced on, regardless of the config) and diffs the existingkey set against the pruned result, so it inherits all of extract's edge-case handling
(plural variants, context variants,
preservePatterns,ignoreNamespaces). The commandnever modifies any files and exits with a non-zero status code when unused keys are found
(or when source files failed to parse, since that could cause false positives), making it
a dedicated CI check alongside the missing-translations check
status <locale>. Combineswith the locale argument and
--namespace, e.g.i18next-cli status en --unused. Notethat static analysis cannot detect dynamically constructed keys; to find keys that are
truly unused at runtime, see https://www.locize.com/docs/guides/find-unused-translations
(#281).
v1.67.9Compare Source
defaultNSfrom the generated resources whenextract.defaultNSisfalse. i18next's type system cannot expressdefaultNS: false—DefaultNamespace = TypeOptions['defaultNS']feedsNs extends Namespace, so emittingfalsemade everyt()call silently accept any string and the generated definitions checked nothing. Thenamespace is now taken from the keys of the generated
Resourcesinterface (deduplicatedand sorted, preferring
'translation', and preferring a namespace insidetypes.basePathover one resolved outside of it), with a warning naming the pick.
falseis still emittedwhen the resource files are named after locales (
en.json+de.json), where derivingwould turn sibling languages into namespaces. Only affects
i18next.d.tson firstcreation;
resources.d.tsand--cibehavior are unchanged(#280).
v1.67.8Compare Source
extractis idempotent. Thecomparator compared base keys for plural/plural pairs but full keys for every other
pair, which produced a cycle (
foo_solved < foo_zero < foo_one < foo_other < foo_solved)for a key that has both plural forms and a context variant in a locale with a
zeroplural (lv, ru, pl, lt,
Configuration
📅 Schedule: (UTC)
🚦 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.
To execute skipped test pipelines write comment
/ok-to-test.Documentation
Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.