[PR #358] [CLOSED] chore(deps): Bump i18next from 25.10.9 to 26.0.2 #360

Closed
opened 2026-05-06 12:16:34 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/BreizhHardware/portfolio/pull/358
Author: @dependabot[bot]
Created: 3/30/2026
Status: Closed

Base: devHead: dependabot/npm_and_yarn/dev/i18next-26.0.2


📝 Commits (1)

  • fa8ea4a chore(deps): Bump i18next from 25.10.9 to 26.0.2

📊 Changes

2 files changed (+9 additions, -36 deletions)

View changed files

📝 package.json (+1 -1)
📝 pnpm-lock.yaml (+8 -35)

📄 Description

Bumps i18next from 25.10.9 to 26.0.2.

Release notes

Sourced from i18next's releases.

v26.0.2

  • fix(types): t("key", {} as TOptions) no longer produces a type error — the context constraint now bypasses strict checking when context is unknown (e.g. from TOptions) 2418

v26.0.1

  • fix: Formatter no longer crashes when alwaysFormat is true and no format specifier is present (format is undefined)
  • fix: Formatter now returns undefined/null values as-is instead of producing NaN when the value is missing

v26.0.0

This is a major breaking release:

Breaking Changes

  • Remove deprecated initImmediate option — the backward-compatibility mapping from initImmediate to initAsync (introduced in v24) has been removed. Use initAsync instead.
  • Remove legacy interpolation.format function — the old monolithic format function (interpolation: { format: (value, format, lng) => ... }) is no longer supported. The built-in Formatter (or a custom Formatter module via .use()) is now always used. Migrate to the new formatting approach using i18next.services.formatter.add() or .addCached() for custom formatters.
  • Remove console support notice — the console support notice introduced in v25.8.0 has been removed, along with the showSupportNotice option and all related internal suppression logic (globalThis.__i18next_supportNoticeShown, I18NEXT_NO_SUPPORT_NOTICE env var). See our blog post for the full story.
  • Remove simplifyPluralSuffix option — this option was unused by the core PluralResolver (which relies entirely on Intl.PluralRules). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to true internally.
  • Remove deprecated @babel/polyfill from devDependencies.

Improvements

  • Code modernization across all source files:
    • Replace indexOf() > -1 / indexOf() < 0 with .includes() (~40+ occurrences)
    • Replace indexOf() === 0 with .startsWith() where appropriate
    • Replace var with const, '' + object with String(object), .substring() with .slice()
    • Replace .apply(observer, [event, ...args]) with direct call observer(event, ...args)
    • Remove unnecessary .call(this, ...) in BackendConnector retry logic
    • Fix array-callback-return in LanguageUtils getBestMatchFromCodes
    • Clean up all stale eslint-disable comments from source files
  • EventEmitter: add once() method for one-time event subscriptions
  • Memory leak fix: move module-level checkedLoadedFor cache to Translator instance, preventing cross-instance state leakage
  • TypeScript: fix BackendModule generic parameter naming inconsistency between CJS and ESM type definitions
  • TypeScript: add once() method to i18n and ResourceStore type interfaces
  • ESLint 9: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with neostandard
  • Vitest 4: upgrade from vitest 3 to vitest 4, migrate workspace files to test.projects config

v25.10.10

  • feat: suppress support notice automatically in production environments (NODE_ENV=production)
Changelog

Sourced from i18next's changelog.

26.0.2

  • fix(types): t("key", {} as TOptions) no longer produces a type error — the context constraint now bypasses strict checking when context is unknown (e.g. from TOptions) 2418

26.0.1

  • fix: Formatter no longer crashes when alwaysFormat is true and no format specifier is present (format is undefined)
  • fix: Formatter now returns undefined/null values as-is instead of producing NaN when the value is missing

26.0.0

This is a major breaking release:

Breaking Changes

  • Remove deprecated initImmediate option — the backward-compatibility mapping from initImmediate to initAsync (introduced in v24) has been removed. Use initAsync instead.
  • Remove legacy interpolation.format function — the old monolithic format function (interpolation: { format: (value, format, lng) => ... }) is no longer supported. The built-in Formatter (or a custom Formatter module via .use()) is now always used. Migrate to the new formatting approach using i18next.services.formatter.add() or .addCached() for custom formatters.
  • Remove console support notice — the console support notice introduced in v25.8.0 has been removed, along with the showSupportNotice option and all related internal suppression logic (globalThis.__i18next_supportNoticeShown, I18NEXT_NO_SUPPORT_NOTICE env var). See our blog post for the full story.
  • Remove simplifyPluralSuffix option — this option was unused by the core PluralResolver (which relies entirely on Intl.PluralRules). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to true internally.
  • Remove deprecated @babel/polyfill from devDependencies.

Improvements

  • Code modernization across all source files:
    • Replace indexOf() > -1 / indexOf() < 0 with .includes() (~40+ occurrences)
    • Replace indexOf() === 0 with .startsWith() where appropriate
    • Replace var with const, '' + object with String(object), .substring() with .slice()
    • Replace .apply(observer, [event, ...args]) with direct call observer(event, ...args)
    • Remove unnecessary .call(this, ...) in BackendConnector retry logic
    • Fix array-callback-return in LanguageUtils getBestMatchFromCodes
    • Clean up all stale eslint-disable comments from source files
  • EventEmitter: add once() method for one-time event subscriptions
  • Memory leak fix: move module-level checkedLoadedFor cache to Translator instance, preventing cross-instance state leakage
  • TypeScript: fix BackendModule generic parameter naming inconsistency between CJS and ESM type definitions
  • TypeScript: add once() method to i18n and ResourceStore type interfaces
  • ESLint 9: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with neostandard
  • Vitest 4: upgrade from vitest 3 to vitest 4, migrate workspace files to test.projects config

25.10.10

  • feat: suppress support notice automatically in production environments (NODE_ENV=production)
Commits
  • 3db098f 26.0.2
  • 6ece798 fix(types): t("key", {} as TOptions) no longer produces a type error — the ...
  • 18b3dbb 26.0.1
  • c829f91 fix: Formater crashes etc.
  • 1593d11 remove node v18 from github actions
  • d85c23d 26.0.0
  • fad19d5 feat!: v26.0.0 — major version with breaking changes
  • 780aa91 jsr update
  • e0fa838 25.10.10
  • 796fdd9 feat: suppress support notice automatically in production environments (`NODE...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot 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.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @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)
  • @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)
  • @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)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/BreizhHardware/portfolio/pull/358 **Author:** [@dependabot[bot]](https://github.com/apps/dependabot) **Created:** 3/30/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `dependabot/npm_and_yarn/dev/i18next-26.0.2` --- ### 📝 Commits (1) - [`fa8ea4a`](https://github.com/BreizhHardware/portfolio/commit/fa8ea4ad78a99a747ff94784b4739c0b6129460c) chore(deps): Bump i18next from 25.10.9 to 26.0.2 ### 📊 Changes **2 files changed** (+9 additions, -36 deletions) <details> <summary>View changed files</summary> 📝 `package.json` (+1 -1) 📝 `pnpm-lock.yaml` (+8 -35) </details> ### 📄 Description Bumps [i18next](https://github.com/i18next/i18next) from 25.10.9 to 26.0.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/i18next/i18next/releases">i18next's releases</a>.</em></p> <blockquote> <h2>v26.0.2</h2> <ul> <li>fix(types): <code>t(&quot;key&quot;, {} as TOptions)</code> no longer produces a type error — the context constraint now bypasses strict checking when <code>context</code> is <code>unknown</code> (e.g. from <code>TOptions</code>) <a href="https://redirect.github.com/i18next/i18next/issues/2418">2418</a></li> </ul> <h2>v26.0.1</h2> <ul> <li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is <code>true</code> and no format specifier is present (<code>format</code> is <code>undefined</code>)</li> <li>fix: Formatter now returns <code>undefined</code>/<code>null</code> values as-is instead of producing <code>NaN</code> when the value is missing</li> </ul> <h2>v26.0.0</h2> <p><strong>This is a major breaking release:</strong></p> <h3>Breaking Changes</h3> <ul> <li><strong>Remove deprecated <code>initImmediate</code> option</strong> — the backward-compatibility mapping from <code>initImmediate</code> to <code>initAsync</code> (introduced in v24) has been removed. Use <code>initAsync</code> instead.</li> <li><strong>Remove legacy <code>interpolation.format</code> function</strong> — the old monolithic format function (<code>interpolation: { format: (value, format, lng) =&gt; ... }</code>) is no longer supported. The built-in Formatter (or a custom Formatter module via <code>.use()</code>) is now always used. Migrate to the <a href="https://www.i18next.com/translation-function/formatting">new formatting approach</a> using <code>i18next.services.formatter.add()</code> or <code>.addCached()</code> for custom formatters.</li> <li><strong>Remove console support notice</strong> — the console support notice introduced in v25.8.0 has been removed, along with the <code>showSupportNotice</code> option and all related internal suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>, <code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for the <a href="https://www.locize.com/blog/i18next-support-notice">full story</a>.</li> <li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> — this option was unused by the core PluralResolver (which relies entirely on <code>Intl.PluralRules</code>). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to <code>true</code> internally.</li> <li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from devDependencies.</li> </ul> <h3>Improvements</h3> <ul> <li><strong>Code modernization</strong> across all source files: <ul> <li>Replace <code>indexOf() &gt; -1</code> / <code>indexOf() &lt; 0</code> with <code>.includes()</code> (~40+ occurrences)</li> <li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code> where appropriate</li> <li>Replace <code>var</code> with <code>const</code>, <code>'' + object</code> with <code>String(object)</code>, <code>.substring()</code> with <code>.slice()</code></li> <li>Replace <code>.apply(observer, [event, ...args])</code> with direct call <code>observer(event, ...args)</code></li> <li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector retry logic</li> <li>Fix <code>array-callback-return</code> in LanguageUtils <code>getBestMatchFromCodes</code></li> <li>Clean up all stale <code>eslint-disable</code> comments from source files</li> </ul> </li> <li><strong>EventEmitter</strong>: add <code>once()</code> method for one-time event subscriptions</li> <li><strong>Memory leak fix</strong>: move module-level <code>checkedLoadedFor</code> cache to Translator instance, preventing cross-instance state leakage</li> <li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic parameter naming inconsistency between CJS and ESM type definitions</li> <li><strong>TypeScript</strong>: add <code>once()</code> method to <code>i18n</code> and <code>ResourceStore</code> type interfaces</li> <li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with <a href="https://github.com/neostandard/neostandard">neostandard</a></li> <li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4, migrate workspace files to <code>test.projects</code> config</li> </ul> <h2>v25.10.10</h2> <ul> <li>feat: suppress support notice automatically in production environments (<code>NODE_ENV=production</code>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md">i18next's changelog</a>.</em></p> <blockquote> <h2>26.0.2</h2> <ul> <li>fix(types): <code>t(&quot;key&quot;, {} as TOptions)</code> no longer produces a type error — the context constraint now bypasses strict checking when <code>context</code> is <code>unknown</code> (e.g. from <code>TOptions</code>) <a href="https://redirect.github.com/i18next/i18next/issues/2418">2418</a></li> </ul> <h2>26.0.1</h2> <ul> <li>fix: Formatter no longer crashes when <code>alwaysFormat</code> is <code>true</code> and no format specifier is present (<code>format</code> is <code>undefined</code>)</li> <li>fix: Formatter now returns <code>undefined</code>/<code>null</code> values as-is instead of producing <code>NaN</code> when the value is missing</li> </ul> <h2>26.0.0</h2> <p><strong>This is a major breaking release:</strong></p> <h3>Breaking Changes</h3> <ul> <li><strong>Remove deprecated <code>initImmediate</code> option</strong> — the backward-compatibility mapping from <code>initImmediate</code> to <code>initAsync</code> (introduced in v24) has been removed. Use <code>initAsync</code> instead.</li> <li><strong>Remove legacy <code>interpolation.format</code> function</strong> — the old monolithic format function (<code>interpolation: { format: (value, format, lng) =&gt; ... }</code>) is no longer supported. The built-in Formatter (or a custom Formatter module via <code>.use()</code>) is now always used. Migrate to the <a href="https://www.i18next.com/translation-function/formatting">new formatting approach</a> using <code>i18next.services.formatter.add()</code> or <code>.addCached()</code> for custom formatters.</li> <li><strong>Remove console support notice</strong> — the console support notice introduced in v25.8.0 has been removed, along with the <code>showSupportNotice</code> option and all related internal suppression logic (<code>globalThis.__i18next_supportNoticeShown</code>, <code>I18NEXT_NO_SUPPORT_NOTICE</code> env var). See our blog post for the <a href="https://www.locize.com/blog/i18next-support-notice">full story</a>.</li> <li><strong>Remove <code>simplifyPluralSuffix</code> option</strong> — this option was unused by the core PluralResolver (which relies entirely on <code>Intl.PluralRules</code>). It only had an effect in the old v1/v2/v3 compatibility layer. The v4 test compatibility layer now defaults to <code>true</code> internally.</li> <li><strong>Remove deprecated <code>@babel/polyfill</code></strong> from devDependencies.</li> </ul> <h3>Improvements</h3> <ul> <li><strong>Code modernization</strong> across all source files: <ul> <li>Replace <code>indexOf() &gt; -1</code> / <code>indexOf() &lt; 0</code> with <code>.includes()</code> (~40+ occurrences)</li> <li>Replace <code>indexOf() === 0</code> with <code>.startsWith()</code> where appropriate</li> <li>Replace <code>var</code> with <code>const</code>, <code>'' + object</code> with <code>String(object)</code>, <code>.substring()</code> with <code>.slice()</code></li> <li>Replace <code>.apply(observer, [event, ...args])</code> with direct call <code>observer(event, ...args)</code></li> <li>Remove unnecessary <code>.call(this, ...)</code> in BackendConnector retry logic</li> <li>Fix <code>array-callback-return</code> in LanguageUtils <code>getBestMatchFromCodes</code></li> <li>Clean up all stale <code>eslint-disable</code> comments from source files</li> </ul> </li> <li><strong>EventEmitter</strong>: add <code>once()</code> method for one-time event subscriptions</li> <li><strong>Memory leak fix</strong>: move module-level <code>checkedLoadedFor</code> cache to Translator instance, preventing cross-instance state leakage</li> <li><strong>TypeScript</strong>: fix <code>BackendModule</code> generic parameter naming inconsistency between CJS and ESM type definitions</li> <li><strong>TypeScript</strong>: add <code>once()</code> method to <code>i18n</code> and <code>ResourceStore</code> type interfaces</li> <li><strong>ESLint 9</strong>: migrate from ESLint 8 (airbnb-base) to ESLint 9 flat config with <a href="https://github.com/neostandard/neostandard">neostandard</a></li> <li><strong>Vitest 4</strong>: upgrade from vitest 3 to vitest 4, migrate workspace files to <code>test.projects</code> config</li> </ul> <h2>25.10.10</h2> <ul> <li>feat: suppress support notice automatically in production environments (<code>NODE_ENV=production</code>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/i18next/i18next/commit/3db098f72a40b108123c1200234707934d9e03ac"><code>3db098f</code></a> 26.0.2</li> <li><a href="https://github.com/i18next/i18next/commit/6ece798338e6e96d37a6148c20e4ca7279fa9897"><code>6ece798</code></a> fix(types): <code>t(&quot;key&quot;, {} as TOptions)</code> no longer produces a type error — the ...</li> <li><a href="https://github.com/i18next/i18next/commit/18b3dbb4734dc25dba1c21ea05df0315c73f6bc0"><code>18b3dbb</code></a> 26.0.1</li> <li><a href="https://github.com/i18next/i18next/commit/c829f91a2af9d227b35be3025d4ce8866f5c25c1"><code>c829f91</code></a> fix: Formater crashes etc.</li> <li><a href="https://github.com/i18next/i18next/commit/1593d1125ef7890ef294aa5fef39dd70e11ca537"><code>1593d11</code></a> remove node v18 from github actions</li> <li><a href="https://github.com/i18next/i18next/commit/d85c23da8615c0f0fdbeaae588a741a6c6149eb4"><code>d85c23d</code></a> 26.0.0</li> <li><a href="https://github.com/i18next/i18next/commit/fad19d59cf4d2acd512981d2cc41a0033d6cf672"><code>fad19d5</code></a> feat!: v26.0.0 — major version with breaking changes</li> <li><a href="https://github.com/i18next/i18next/commit/780aa9170f4ed5b645aa35bb9ef1832d38f7b5d8"><code>780aa91</code></a> jsr update</li> <li><a href="https://github.com/i18next/i18next/commit/e0fa8382de3b64100a594a2c27124ea9fa48814b"><code>e0fa838</code></a> 25.10.10</li> <li><a href="https://github.com/i18next/i18next/commit/796fdd96c99967fcecdca21ceabd61aee7b3cc21"><code>796fdd9</code></a> feat: suppress support notice automatically in production environments (`NODE...</li> <li>Additional commits viewable in <a href="https://github.com/i18next/i18next/compare/v25.10.9...v26.0.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=i18next&package-manager=npm_and_yarn&previous-version=25.10.9&new-version=26.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot 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`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) - `@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) - `@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) </details> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 12:16:34 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
BreizhHardware/portfolio#360
No description provided.