From 89d583715f4cf33eaf3ab1cb11170e1b9310f3f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 20:38:05 +0000 Subject: [PATCH 1/3] chore(deps): Bump the react group across 1 directory with 7 updates (#1976) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the react group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.4` | `19.2.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.17` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.4` | `19.2.7` | | [react-i18next](https://github.com/i18next/react-i18next) | `17.0.7` | `17.0.8` | | [react-icons](https://github.com/react-icons/react-icons) | `5.6.0` | `5.7.0` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `5.1.4` | `6.0.3` | | [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.5.2` | `0.5.3` | Updates `react` from 19.2.4 to 19.2.7
Release notes

Sourced from react's releases.

19.2.7 (June 1st, 2026)

React Server Components

19.2.6 (May 6th, 2026)

React Server Components

19.2.5 (April 8th, 2026)

React Server Components

Changelog

Sourced from react's changelog.

19.2.7 (June 1, 2026)

React Server Components

19.2.6 (May 6, 2026)

React Server Components

19.2.5 (March 18, 2026)

React Server Components

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for react since your current version.


Updates `@types/react` from 19.2.14 to 19.2.17
Commits

Updates `react-dom` from 19.2.4 to 19.2.7
Release notes

Sourced from react-dom's releases.

19.2.7 (June 1st, 2026)

React Server Components

19.2.6 (May 6th, 2026)

React Server Components

19.2.5 (April 8th, 2026)

React Server Components

Changelog

Sourced from react-dom's changelog.

19.2.7 (June 1, 2026)

React Server Components

19.2.6 (May 6, 2026)

React Server Components

19.2.5 (March 18, 2026)

React Server Components

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for react-dom since your current version.


Updates `react-i18next` from 17.0.7 to 17.0.8
Changelog

Sourced from react-i18next's changelog.

17.0.8

Commits

Updates `react-icons` from 5.6.0 to 5.7.0
Release notes

Sourced from react-icons's releases.

v5.7.0

What's Changed

Full Changelog: https://github.com/react-icons/react-icons/compare/v5.6.0...v5.7.0

Icon Library License Version Count
Circum Icons MPL-2.0 license 1.0.0 288
Font Awesome 5 CC BY 4.0 License 5.15.4-3-gafecf2a 1612
Font Awesome 6 CC BY 4.0 License 6.7.2-1-g840c215 2060
Ionicons 4 MIT 4.6.3 696
Ionicons 5 MIT 5.5.4 1332
Material Design icons Apache License Version 2.0 4.0.0-161-gf3fb4442b2 4341
Typicons CC BY-SA 3.0 2.1.2 336
Github Octicons icons MIT 18.3.0 264
Feather MIT 4.29.2 287
Lucide ISC 0.462.0 1541
Game Icons CC BY 3.0 12920d6565588f0512542a3cb0cdfd36a497f910 4040
Weather Icons SIL OFL 1.1 2.0.12 219
Devicons MIT 1.8.0 192
Ant Design Icons MIT 4.4.2 831
Bootstrap Icons MIT 1.13.1 2754
Remix Icon Apache License Version 2.0 4.9.1 3229
Flat Color Icons MIT 1.0.2 329
Grommet-Icons Apache License Version 2.0 4.14.0 637
Heroicons MIT 1.0.6 460
Heroicons 2 MIT 2.2.0 972
Simple Icons CC0 1.0 Universal 16.24.0 3446
Simple Line Icons MIT 2.5.5 189
IcoMoon Free CC BY 4.0 License d006795ede82361e1bac1ee76f215cf1dc51e4ca 491
BoxIcons MIT 2.1.4 1634
css.gg MIT 2.1.4 704
VS Code Icons CC BY 4.0 0.0.0 612
Tabler Icons MIT 3.44.0 6146
Themify Icons MIT v0.1.2-2-g9600186 352
Radix Icons MIT @​radix-ui/react-icons@​1.3.2-35-g112af91 332
Phosphor Icons MIT 2.1.1 9072
Icons8 Line Awesome MIT 1.3.1 1544
Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for react-icons since your current version.


Updates `@types/react` from 19.2.14 to 19.2.17
Commits

Updates `@vitejs/plugin-react` from 5.1.4 to 6.0.3
Release notes

Sourced from @​vitejs/plugin-react's releases.

plugin-react@6.0.3

No release notes provided.

plugin-react@6.0.2

Allow all options in reactCompilerPreset (#1189)

This is a type only change. Only compilationMode and target options were available for reactCompilerPreset.

plugin-react@6.0.1

Expand @rolldown/plugin-babel peer dep range (#1146)

Expanded @rolldown/plugin-babel peer dep range to include ^0.2.0.

plugin-react@6.0.0

Remove Babel Related Features (#1123)

Vite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.

If you are using Babel, you can use @rolldown/plugin-babel together with this plugin:

 import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'

export default defineConfig({ plugins: [

  • react({
    
  •   babel: {
    
  •     plugins: ['@babel/plugin-proposal-throw-expressions'],
    
  •   },
    
  • }),
    
  • react(),
    
  • babel({
    
  •   plugins: ['@babel/plugin-proposal-throw-expressions'],
    
  • }),
    
    ] })

For React compiler users, you can use reactCompilerPreset for easier setup with preconfigured filter to improve build performance:

 import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
+import react, { reactCompilerPreset } from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'

export default defineConfig({ plugins: [ </tr></table>

... (truncated)

Changelog

Sourced from @​vitejs/plugin-react's changelog.

6.0.3 (2026-06-23)

6.0.2 (2026-05-14)

Allow all options in reactCompilerPreset (#1189)

This is a type only change. Only compilationMode and target options were available for reactCompilerPreset.

6.0.1 (2026-03-13)

Expand @rolldown/plugin-babel peer dep range (#1146)

Expanded @rolldown/plugin-babel peer dep range to include ^0.2.0.

6.0.0 (2026-03-12)

6.0.0-beta.0 (2026-03-03)

Remove Babel Related Features (#1123)

Vite 8+ can handle React Refresh Transform by Oxc and doesn't need Babel for it. With that, there are no transform applied that requires Babel. To reduce the installation size of this plugin, babel is no longer a dependency of this plugin and the related features are removed.

If you are using Babel, you can use @rolldown/plugin-babel together with this plugin:

 import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'

export default defineConfig({ plugins: [

  • react({
    
  •   babel: {
    
  •     plugins: ['@babel/plugin-proposal-throw-expressions'],
    
  •   },
    
  • }),
    
  • react(),
    
  • babel({
    
  •   plugins: ['@babel/plugin-proposal-throw-expressions'],
    
  • }),
    
    ] })

For React compiler users, you can use reactCompilerPreset for easier setup with preconfigured filter to improve build performance:

 import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
+import react, { reactCompilerPreset } from '@vitejs/plugin-react'
</tr></table>

... (truncated)

Commits

Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
Release notes

Sourced from eslint-plugin-react-refresh's releases.

v0.5.3

Changelog

Sourced from eslint-plugin-react-refresh's changelog.

0.5.3

Commits

--------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HarelM --- package-lock.json | 84 +++++++++++++++++++++++------------------------ package.json | 14 ++++---- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50f1d9c9..9fb7ef53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,15 +48,15 @@ "ol-mapbox-style": "^13.4.1", "pmtiles": "^4.4.1", "prop-types": "^15.8.1", - "react": "^19.2.4", + "react": "^19.2.7", "react-accessible-accordion": "^5.0.1", "react-aria-menubutton": "^8.0.0", "react-aria-modal": "^5.0.2", "react-collapse": "^5.1.1", "react-color": "^2.19.3", - "react-dom": "^19.2.4", - "react-i18next": "^17.0.7", - "react-icons": "^5.6.0", + "react-dom": "^19.2.7", + "react-i18next": "^17.0.8", + "react-icons": "^5.7.0", "react-markdown": "^10.1.0", "reconnecting-websocket": "^4.4.0", "slugify": "^1.6.9", @@ -82,7 +82,7 @@ "@types/lodash.isequal": "^4.5.8", "@types/lodash.throttle": "^4.1.9", "@types/randomcolor": "^0.5.9", - "@types/react": "^19.2.14", + "@types/react": "^19.2.17", "@types/react-aria-menubutton": "^6.2.14", "@types/react-aria-modal": "^5.0.0", "@types/react-collapse": "^5.0.4", @@ -90,7 +90,7 @@ "@types/react-dom": "^19.2.3", "@types/string-hash": "^1.1.3", "@types/wicg-file-system-access": "^2023.10.7", - "@vitejs/plugin-react": "^5.1.4", + "@vitejs/plugin-react": "5.2", "@vitest/coverage-v8": "^4.1.9", "cors": "^2.8.6", "cypress": "^15.18.0", @@ -98,7 +98,7 @@ "eslint": "^10.6.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.5.2", + "eslint-plugin-react-refresh": "^0.5.3", "i18next-cli": "^1.53.2", "istanbul": "^0.4.5", "istanbul-lib-coverage": "^3.2.2", @@ -325,9 +325,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -395,13 +395,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -411,13 +411,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -3530,9 +3530,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", "dev": true, "license": "MIT", "dependencies": { @@ -3983,9 +3983,9 @@ "license": "ISC" }, "node_modules/@vitejs/plugin-react": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz", - "integrity": "sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", + "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", "dev": true, "license": "MIT", "dependencies": { @@ -4000,7 +4000,7 @@ "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/@vitest/coverage-v8": { @@ -6495,9 +6495,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz", - "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.3.tgz", + "integrity": "sha512-5EMmLCV98Pi4o/f/3DP/v/tNqLHMIc9I8LKClNDWhZ9JTho89/kQcitCXQBMG7sAfVRK0Ie3T2EDOzp1YXYiVA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -12350,9 +12350,9 @@ } }, "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -12426,15 +12426,15 @@ } }, "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.4" + "react": "^19.2.7" } }, "node_modules/react-hot-loader": { @@ -12478,9 +12478,9 @@ } }, "node_modules/react-i18next": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-17.0.7.tgz", - "integrity": "sha512-rwtPXsb/zwzDafN+gytcjF5YnqGQQIRmCQ6DctBC1VSipRB8GD/MWEVrFP42vjMyuYydxWxM8CZRt+yiNuuoHg==", + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-17.0.8.tgz", + "integrity": "sha512-0ooKbGLU8JXhe1zwpQUWIeXSgLPOfwJmgheWRIUpcoA0CpyabpGhayjdG+/eA5esC1AQ8h2jWpXjJfzQzeDOCw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.29.2", @@ -12488,7 +12488,7 @@ "use-sync-external-store": "^1.6.0" }, "peerDependencies": { - "i18next": ">= 26.0.10", + "i18next": ">= 26.2.0", "react": ">= 16.8.0", "typescript": "^5 || ^6" }, @@ -12505,9 +12505,9 @@ } }, "node_modules/react-icons": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz", - "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.7.0.tgz", + "integrity": "sha512-LBLy340Rzqy6+/yVhZKT3B/QpP1BZaesGqasf09HPOBzRarcDIFH0WwXlXQfE7q7ipxK4MSiC5DIBWURCny6fw==", "license": "MIT", "peerDependencies": { "react": "*" diff --git a/package.json b/package.json index 5f02c3ea..79536d91 100644 --- a/package.json +++ b/package.json @@ -65,15 +65,15 @@ "ol-mapbox-style": "^13.4.1", "pmtiles": "^4.4.1", "prop-types": "^15.8.1", - "react": "^19.2.4", + "react": "^19.2.7", "react-accessible-accordion": "^5.0.1", "react-aria-menubutton": "^8.0.0", "react-aria-modal": "^5.0.2", "react-collapse": "^5.1.1", "react-color": "^2.19.3", - "react-dom": "^19.2.4", - "react-i18next": "^17.0.7", - "react-icons": "^5.6.0", + "react-dom": "^19.2.7", + "react-i18next": "^17.0.8", + "react-icons": "^5.7.0", "react-markdown": "^10.1.0", "reconnecting-websocket": "^4.4.0", "slugify": "^1.6.9", @@ -116,7 +116,7 @@ "@types/lodash.isequal": "^4.5.8", "@types/lodash.throttle": "^4.1.9", "@types/randomcolor": "^0.5.9", - "@types/react": "^19.2.14", + "@types/react": "^19.2.17", "@types/react-aria-menubutton": "^6.2.14", "@types/react-aria-modal": "^5.0.0", "@types/react-collapse": "^5.0.4", @@ -124,7 +124,7 @@ "@types/react-dom": "^19.2.3", "@types/string-hash": "^1.1.3", "@types/wicg-file-system-access": "^2023.10.7", - "@vitejs/plugin-react": "^5.1.4", + "@vitejs/plugin-react": "5.2", "@vitest/coverage-v8": "^4.1.9", "cors": "^2.8.6", "cypress": "^15.18.0", @@ -132,7 +132,7 @@ "eslint": "^10.6.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.5.2", + "eslint-plugin-react-refresh": "^0.5.3", "i18next-cli": "^1.53.2", "istanbul": "^0.4.5", "istanbul-lib-coverage": "^3.2.2", From a87a4d8df8da98ebbe227621f84d362a682f1bdb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 20:46:33 +0000 Subject: [PATCH 2/3] chore(deps-dev): Bump i18next-cli from 1.53.2 to 1.65.0 (#1979) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.53.2 to 1.65.0.
Changelog

Sourced from i18next-cli's changelog.

1.65.0

  • fix(extract): respect fallbackNS — keys already translated in a fallback namespace are no longer duplicated into the requesting namespace's file (#272).
    • Such keys are now attributed to the fallback namespace instead, so removeUnusedKeys no longer prunes them from the fallback file (previously a key like cancel living only in the fallback namespace was deleted there and re-created in every namespace that used it).
    • A key that already has a non-empty value in the requesting namespace's own file is treated as an intentional per-namespace override and keeps being extracted there, mirroring the i18next runtime lookup order (requested namespace first, then the fallback chain). Empty-string placeholders left behind by previous extract runs are cleaned up.
    • Keys not found in any fallback namespace are still added to the requesting namespace, like the i18next saveMissing behavior.
  • feat(extract): fallbackNS now also accepts an array of namespaces (looked up in order, like the i18next runtime option) — supported by extract, status, and the TypeScript types generator.

1.64.2

  • fix(status): scope the pass/fail result to the requested locale (#271).
    • status <locale> now exits based on that locale only, instead of always evaluating every secondary language. Previously, running e.g. status en-AU on a fully-translated primary could print "🎉 All keys present" and still exit 1 because an unrelated secondary (e.g. an empty de-DE) was incomplete — a summary that contradicted the exit code.
    • When the requested locale is the primary, the check still fails only on absent keys (empty placeholders are tolerated); for a secondary it fails on any untranslated/absent key. The global view (status with no locale) is unchanged.
    • The failure message now names the locale when scoped (Error: Incomplete translations detected for "de-DE".) so the reason is no longer hidden.

1.64.1

  • fix(status): align plural reporting with the i18next runtime (#270).
    • Plural categories that Intl.PluralRules only selects for out-of-range values (e.g. French _many, which fires only for counts ≥ 1,000,000) are now treated as optional: a missing or empty variant is shown as a soft "optional plural form" note instead of a hard "missing key" error, so it no longer fails the check. Categories reachable by typical counts (including decimals, e.g. Polish/Russian other) remain required.
    • With disablePlurals: true, a key used with count is now considered satisfied when either its plural variants (_one/_other) or the bare key exist — mirroring the runtime's key + suffix → key resolution chain —

... (truncated)

Commits
  • 9497126 1.65.0
  • cebfb66 fix(extract): respect fallbackNS and stop duplicating keys into namespace fil...
  • 4af3b5b 1.64.2
  • 59e5c15 fix(status): scope pass/fail to the requested locale #271
  • 58e96ac 1.64.1
  • 90fb64d fix(status): align plural reporting with the i18next runtime #270
  • 4f32c05 1.64.0
  • 9ab66af feat(extract): support trailing wildcards in functions (e.g. 'tProps.*')
  • 3f40d0b 1.63.1
  • eac231d fix(init): pin @​inlang/plugin-i18next@​6.2.1 (restores Sherlock annotations)
  • Additional commits viewable in compare view

Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 446 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 228 insertions(+), 220 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9fb7ef53..297bac81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", - "i18next-cli": "^1.53.2", + "i18next-cli": "^1.65.0", "istanbul": "^0.4.5", "istanbul-lib-coverage": "^3.2.2", "postcss": "^8.5.16", @@ -1205,29 +1205,29 @@ } }, "node_modules/@inquirer/ansi": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.4.tgz", - "integrity": "sha512-DpcZrQObd7S0R/U3bFdkcT5ebRwbTTC4D3tCc1vsJizmgPLxNJBo+AAFmrZwe8zk30P2QzgzGWZ3Q9uJwWuhIg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.7.tgz", + "integrity": "sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" } }, "node_modules/@inquirer/checkbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.2.tgz", - "integrity": "sha512-PubpMPO2nJgMufkoB3P2wwxNXEMUXnBIKi/ACzDUYfaoPuM7gSTmuxJeMscoLVEsR4qqrCMf5p0SiYGWnVJ8kw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.2.1.tgz", + "integrity": "sha512-b6xmA/VlTe0ZgDQHDui+Nav470u7u49nRd8/iuhOcQPO9Ch7lGuogydhi2VOmNlZ+zXcM8IcPuNSwQcdJaF/kw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.7", + "@inquirer/core": "^11.2.1", + "@inquirer/figures": "^2.0.7", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1239,17 +1239,17 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.10.tgz", - "integrity": "sha512-tiNyA73pgpQ0FQ7axqtoLUe4GDYjNCDcVsbgcA5anvwg2z6i+suEngLKKJrWKJolT//GFPZHwN30binDIHgSgQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.1.1.tgz", + "integrity": "sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1261,22 +1261,22 @@ } }, "node_modules/@inquirer/core": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.7.tgz", - "integrity": "sha512-1BiBNDk9btIwYIzNZpkikIHXWeNzNncJePPqwDyVMhXhD1ebqbpn1mKGctpoqAbzywZfdG0O4tvmsGIcOevAPQ==", + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.2.1.tgz", + "integrity": "sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4", + "@inquirer/ansi": "^2.0.7", + "@inquirer/figures": "^2.0.7", + "@inquirer/type": "^4.0.7", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", "signal-exit": "^4.1.0" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1301,18 +1301,18 @@ } }, "node_modules/@inquirer/editor": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.10.tgz", - "integrity": "sha512-VJx4XyaKea7t8hEApTw5dxeIyMtWXre2OiyJcICCRZI4hkoHsMoCnl/KbUnJJExLbH9csLLHMVR144ZhFE1CwA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.2.2.tgz", + "integrity": "sha512-ZRVd/oD+sYsUd5zVm0NflqEzlqfYCyHNsqkHl2oWXEUHs12tCbcSFi+wVFEvD8+LGRaMUsVrE7qeo6lSG/S1Vg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/external-editor": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/external-editor": "^3.0.3", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1324,17 +1324,17 @@ } }, "node_modules/@inquirer/expand": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.10.tgz", - "integrity": "sha512-fC0UHJPXsTRvY2fObiwuQYaAnHrp3aDqfwKUJSdfpgv18QUG054ezGbaRNStk/BKD5IPijeMKWej8VV8O5Q/eQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.1.1.tgz", + "integrity": "sha512-YmQpenjbFSHAK3sOd44puHh3V1KXXr+JiNpUztoSQ4drLh2rTVzTap/YtlAVu/5xavifIlBfNEzJ/neZJ1a/1g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1346,9 +1346,9 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.4.tgz", - "integrity": "sha512-Prenuv9C1PHj2Itx0BcAOVBTonz02Hc2Nd2DbU67PdGUaqn0nPCnV34oDyyoaZHnmfRxkpuhh/u51ThkrO+RdA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-6thf5I8q7lZwzGLAxPaaGEREEkZ3nyePPDQ1oyobblxmEE8mqTLguScP7pDjUTAibiyb4hfXl+qjUEJ+di/aNA==", "dev": true, "license": "MIT", "dependencies": { @@ -1356,7 +1356,7 @@ "iconv-lite": "^0.7.2" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1368,27 +1368,27 @@ } }, "node_modules/@inquirer/figures": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.4.tgz", - "integrity": "sha512-eLBsjlS7rPS3WEhmOmh1znQ5IsQrxWzxWDxO51e4urv+iVrSnIHbq4zqJIOiyNdYLa+BVjwOtdetcQx1lWPpiQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.7.tgz", + "integrity": "sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw==", "dev": true, "license": "MIT", "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" } }, "node_modules/@inquirer/input": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.10.tgz", - "integrity": "sha512-nvZ6qEVeX/zVtZ1dY2hTGDQpVGD3R7MYPLODPgKO8Y+RAqxkrP3i/3NwF3fZpLdaMiNuK0z2NaYIx9tPwiSegQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.1.2.tgz", + "integrity": "sha512-9K/DDBSQpOyZSkt6sOVP9Vo0TR7atX2kuILsUu0x3wVcVbe97lJwIJKMLdMw25tDYuXl/qp6erT0Xs1rfmcfZg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1400,17 +1400,17 @@ } }, "node_modules/@inquirer/number": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.10.tgz", - "integrity": "sha512-Ht8OQstxiS3APMGjHV0aYAjRAysidWdwurWEo2i8yI5xbhOBWqizT0+MU1S2GCcuhIBg+3SgWVjEoXgfhY+XaA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.1.1.tgz", + "integrity": "sha512-XF4IXAbPnGPgw0wsbC/i2tPcyfdZgDpUlhsqU0SfT4IRIGWha6Xm9VRgN5yYxJq+jnyXlfXI/nQ3ulfk0iEICA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1422,18 +1422,18 @@ } }, "node_modules/@inquirer/password": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.10.tgz", - "integrity": "sha512-QbNyvIE8q2GTqKLYSsA8ATG+eETo+m31DSR0+AU7x3d2FhaTWzqQek80dj3JGTo743kQc6mhBR0erMjYw5jQ0A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.1.1.tgz", + "integrity": "sha512-3XBfF7DAsp5qeDsvN5Rd1HmbNokVvEQoUM0QLrRcybC9nX96w3Pbmu7qUsb3IT3J3jBvs2+mTXaKHOUsgHMLzg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.7", + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1445,25 +1445,25 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.3.2.tgz", - "integrity": "sha512-yFroiSj2iiBFlm59amdTvAcQFvWS6ph5oKESls/uqPBect7rTU2GbjyZO2DqxMGuIwVA8z0P4K6ViPcd/cp+0w==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.5.2.tgz", + "integrity": "sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.2", - "@inquirer/confirm": "^6.0.10", - "@inquirer/editor": "^5.0.10", - "@inquirer/expand": "^5.0.10", - "@inquirer/input": "^5.0.10", - "@inquirer/number": "^4.0.10", - "@inquirer/password": "^5.0.10", - "@inquirer/rawlist": "^5.2.6", - "@inquirer/search": "^4.1.6", - "@inquirer/select": "^5.1.2" + "@inquirer/checkbox": "^5.2.1", + "@inquirer/confirm": "^6.1.1", + "@inquirer/editor": "^5.2.2", + "@inquirer/expand": "^5.1.1", + "@inquirer/input": "^5.1.2", + "@inquirer/number": "^4.1.1", + "@inquirer/password": "^5.1.1", + "@inquirer/rawlist": "^5.3.1", + "@inquirer/search": "^4.2.1", + "@inquirer/select": "^5.2.1" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1475,17 +1475,17 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.6.tgz", - "integrity": "sha512-jfw0MLJ5TilNsa9zlJ6nmRM0ZFVZhhTICt4/6CU2Dv1ndY7l3sqqo1gIYZyMMDw0LvE1u1nzJNisfHEhJIxq5w==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.3.1.tgz", + "integrity": "sha512-QqdTqQddL3qPX/PPrjobpsO25NZ4dWXgTLenrR445L2ptLEYE6Z+PD5c5CNDJNx4ugRgELAIpSIJxZaO2jJ2Og==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1497,18 +1497,18 @@ } }, "node_modules/@inquirer/search": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.6.tgz", - "integrity": "sha512-3/6kTRae98hhDevENScy7cdFEuURnSpM3JbBNg8yfXLw88HgTOl+neUuy/l9W0No5NzGsLVydhBzTIxZP7yChQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.2.1.tgz", + "integrity": "sha512-xJj8QWKRSrfKoBIITLZK61dD3zwo0Rz11fgDImku30/Oe81zMdIdGgrLY2h6RkJ+KZ/GhNYIRMKnH/62qBTA5g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/core": "^11.2.1", + "@inquirer/figures": "^2.0.7", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1520,19 +1520,19 @@ } }, "node_modules/@inquirer/select": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.2.tgz", - "integrity": "sha512-kTK8YIkHV+f02y7bWCh7E0u2/11lul5WepVTclr3UMBtBr05PgcZNWfMa7FY57ihpQFQH/spLMHTcr0rXy50tA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.2.1.tgz", + "integrity": "sha512-FlDndEUww8m7BfukO2nJa25vhD+H5jxxCv4oGioKqzyWz3nPHhhw4LKdYRSlXuAx7DsdWia7iyaBPKKS95Evfw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/figures": "^2.0.4", - "@inquirer/type": "^4.0.4" + "@inquirer/ansi": "^2.0.7", + "@inquirer/core": "^11.2.1", + "@inquirer/figures": "^2.0.7", + "@inquirer/type": "^4.0.7" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1544,13 +1544,13 @@ } }, "node_modules/@inquirer/type": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.4.tgz", - "integrity": "sha512-PamArxO3cFJZoOzspzo6cxVlLeIftyBsZw/S9bKY5DzxqJVZgjoj1oP8d0rskKtp7sZxBycsoer1g6UeJV1BBA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.7.tgz", + "integrity": "sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g==", "dev": true, "license": "MIT", "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -2916,15 +2916,15 @@ } }, "node_modules/@swc/core": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.21.tgz", - "integrity": "sha512-fkk7NJcBscrR3/F8jiqlMptRHP650NxqDnspBMrRe5d8xOoCy9MLL5kOBLFXjFLfMo3KQQHhk+/jUULOMlR1uQ==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.43.tgz", + "integrity": "sha512-1CuKjFkPxIgGdeHVuNbkxmBxkcbdc08u0aiI43pFq6yY1tTVKmXT9hFEooyyKs/sJ3xf1GPHyEwTtk9Xl8dvQw==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.25" + "@swc/types": "^0.1.27" }, "engines": { "node": ">=10" @@ -2934,18 +2934,18 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.21", - "@swc/core-darwin-x64": "1.15.21", - "@swc/core-linux-arm-gnueabihf": "1.15.21", - "@swc/core-linux-arm64-gnu": "1.15.21", - "@swc/core-linux-arm64-musl": "1.15.21", - "@swc/core-linux-ppc64-gnu": "1.15.21", - "@swc/core-linux-s390x-gnu": "1.15.21", - "@swc/core-linux-x64-gnu": "1.15.21", - "@swc/core-linux-x64-musl": "1.15.21", - "@swc/core-win32-arm64-msvc": "1.15.21", - "@swc/core-win32-ia32-msvc": "1.15.21", - "@swc/core-win32-x64-msvc": "1.15.21" + "@swc/core-darwin-arm64": "1.15.43", + "@swc/core-darwin-x64": "1.15.43", + "@swc/core-linux-arm-gnueabihf": "1.15.43", + "@swc/core-linux-arm64-gnu": "1.15.43", + "@swc/core-linux-arm64-musl": "1.15.43", + "@swc/core-linux-ppc64-gnu": "1.15.43", + "@swc/core-linux-s390x-gnu": "1.15.43", + "@swc/core-linux-x64-gnu": "1.15.43", + "@swc/core-linux-x64-musl": "1.15.43", + "@swc/core-win32-arm64-msvc": "1.15.43", + "@swc/core-win32-ia32-msvc": "1.15.43", + "@swc/core-win32-x64-msvc": "1.15.43" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -2957,9 +2957,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.21.tgz", - "integrity": "sha512-SA8SFg9dp0qKRH8goWsax6bptFE2EdmPf2YRAQW9WoHGf3XKM1bX0nd5UdwxmC5hXsBUZAYf7xSciCler6/oyA==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.43.tgz", + "integrity": "sha512-v1aVuvXdo/BHxJzco9V2xpHrvwWmhfS8t6gziY5wJxd+Z2h8AeJRnAwPD8itCDaGXVBwJ/CaKfxEzTkG0Va0OA==", "cpu": [ "arm64" ], @@ -2974,9 +2974,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.21.tgz", - "integrity": "sha512-//fOVntgowz9+V90lVsNCtyyrtbHp3jWH6Rch7MXHXbcvbLmbCTmssl5DeedUWLLGiAAW1wksBdqdGYOTjaNLw==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz", + "integrity": "sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ==", "cpu": [ "x64" ], @@ -2991,9 +2991,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.21.tgz", - "integrity": "sha512-meNI4Sh6h9h8DvIfEc0l5URabYMSuNvyisLmG6vnoYAS43s8ON3NJR8sDHvdP7NJTrLe0q/x2XCn6yL/BeHcZg==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz", + "integrity": "sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA==", "cpu": [ "arm" ], @@ -3008,13 +3008,16 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.21.tgz", - "integrity": "sha512-QrXlNQnHeXqU2EzLlnsPoWEh8/GtNJLvfMiPsDhk+ht6Xv8+vhvZ5YZ/BokNWSIZiWPKLAqR0M7T92YF5tmD3g==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz", + "integrity": "sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3025,13 +3028,16 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.21.tgz", - "integrity": "sha512-8/yGCMO333ultDaMQivE5CjO6oXDPeeg1IV4sphojPkb0Pv0i6zvcRIkgp60xDB+UxLr6VgHgt+BBgqS959E9g==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz", + "integrity": "sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3042,13 +3048,16 @@ } }, "node_modules/@swc/core-linux-ppc64-gnu": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.21.tgz", - "integrity": "sha512-ucW0HzPx0s1dgRvcvuLSPSA/2Kk/VYTv9st8qe1Kc22Gu0Q0rH9+6TcBTmMuNIp0Xs4BPr1uBttmbO1wEGI49Q==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz", + "integrity": "sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3059,13 +3068,16 @@ } }, "node_modules/@swc/core-linux-s390x-gnu": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.21.tgz", - "integrity": "sha512-ulTnOGc5I7YRObE/9NreAhQg94QkiR5qNhhcUZ1iFAYjzg/JGAi1ch+s/Ixe61pMIr8bfVrF0NOaB0f8wjaAfA==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz", + "integrity": "sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3076,13 +3088,16 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.21.tgz", - "integrity": "sha512-D0RokxtM+cPvSqJIKR6uja4hbD+scI9ezo95mBhfSyLUs9wnPPl26sLp1ZPR/EXRdYm3F3S6RUtVi+8QXhT24Q==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz", + "integrity": "sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3093,13 +3108,16 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.21.tgz", - "integrity": "sha512-nER8u7VeRfmU6fMDzl1NQAbbB/G7O2avmvCOwIul1uGkZ2/acbPH+DCL9h5+0yd/coNcxMBTL6NGepIew+7C2w==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz", + "integrity": "sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -3110,9 +3128,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.21.tgz", - "integrity": "sha512-+/AgNBnjYugUA8C0Do4YzymgvnGbztv7j8HKSQLvR/DQgZPoXQ2B3PqB2mTtGh/X5DhlJWiqnunN35JUgWcAeQ==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz", + "integrity": "sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw==", "cpu": [ "arm64" ], @@ -3127,9 +3145,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.21.tgz", - "integrity": "sha512-IkSZj8PX/N4HcaFhMQtzmkV8YSnuNoJ0E6OvMwFiOfejPhiKXvl7CdDsn1f4/emYEIDO3fpgZW9DTaCRMDxaDA==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz", + "integrity": "sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g==", "cpu": [ "ia32" ], @@ -3144,9 +3162,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.21", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.21.tgz", - "integrity": "sha512-zUyWso7OOENB6e1N1hNuNn8vbvLsTdKQ5WKLgt/JcBNfJhKy/6jmBmqI3GXk/MyvQKd5SLvP7A0F36p7TeDqvw==", + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz", + "integrity": "sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg==", "cpu": [ "x64" ], @@ -3168,9 +3186,9 @@ "license": "Apache-2.0" }, "node_modules/@swc/types": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", - "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.27.tgz", + "integrity": "sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5052,9 +5070,9 @@ } }, "node_modules/chardet": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", - "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", "dev": true, "license": "MIT" }, @@ -6894,9 +6912,9 @@ "license": "BSD-3-Clause" }, "node_modules/fast-wrap-ansi": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz", - "integrity": "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7989,28 +8007,29 @@ } }, "node_modules/i18next-cli": { - "version": "1.53.2", - "resolved": "https://registry.npmjs.org/i18next-cli/-/i18next-cli-1.53.2.tgz", - "integrity": "sha512-7Y4kxP5hMhisqdy6fIxCkKxtJ0rpy0Qern7kxzoZVtID/pFxJdSBHHu6a96iG5Puv725C+/s53XU+j0+4I17FQ==", + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/i18next-cli/-/i18next-cli-1.65.0.tgz", + "integrity": "sha512-sak+2Ry4P7wtl7xMAZg2sWG2vup1lRHFBKA7h5IeEqFUog51QEgeYUhHxd2x85+MvS4BhVOZZs833clnd1WgYA==", "dev": true, "license": "MIT", "dependencies": { "@croct/json5-parser": "^0.2.2", - "@swc/core": "^1.15.21", + "@swc/core": "^1.15.41", "chokidar": "^5.0.0", "commander": "^14.0.3", "execa": "^9.6.1", "glob": "^13.0.6", - "i18next-resources-for-ts": "^2.0.2", - "inquirer": "^13.3.2", - "jiti": "^2.6.1", + "i18next": "^26.3.1", + "i18next-resources-for-ts": "^2.1.0", + "inquirer": "^14.0.2", + "jiti": "^2.7.0", "jsonc-parser": "^3.3.1", "magic-string": "^0.30.21", "minimatch": "^10.2.5", - "ora": "^9.3.0", - "react": "^19.2.4", - "react-i18next": "^17.0.2", - "yaml": "^2.8.3" + "ora": "^9.4.0", + "react": "^19.2.7", + "react-i18next": "^17.0.8", + "yaml": "^2.9.0" }, "bin": { "i18next-cli": "dist/esm/cli.js" @@ -8252,9 +8271,9 @@ } }, "node_modules/i18next-resources-for-ts": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/i18next-resources-for-ts/-/i18next-resources-for-ts-2.0.2.tgz", - "integrity": "sha512-BGPebhvjrvU+pgKNsIzb3cxl6/8LJw1pxNkIlUpnxCC4SXjbIwXeHuNxFnOkTAryRfMqYf81lPjYD2gngDyOfQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/i18next-resources-for-ts/-/i18next-resources-for-ts-2.1.0.tgz", + "integrity": "sha512-n5UexwEVt0OoIAhG2MWpSnAVJW1U8mQrQTmXyxc5DMAx+NLhcLZhSMJo/FnUsA5JQ3obTYqTgB7YIuZKWpDgow==", "dev": true, "license": "MIT", "dependencies": { @@ -8277,9 +8296,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8414,22 +8433,21 @@ "license": "MIT" }, "node_modules/inquirer": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-13.3.2.tgz", - "integrity": "sha512-bh/OjBGxNR9qvfQj1n5bxtIF58mbOTp2InN5dKuwUK03dXcDGFsjlDinQRuXMZ4EGiJaFieUWHCAaxH2p7iUBw==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-14.0.2.tgz", + "integrity": "sha512-VsSx1JneSNp3ld1veMTLe+UDcUD8Tw2/jjOthhkX3/IX2q+xHhVELifeb/hsb1fBw31pabEPNUf/xUOyb+KZjA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.4", - "@inquirer/core": "^11.1.7", - "@inquirer/prompts": "^8.3.2", - "@inquirer/type": "^4.0.4", + "@inquirer/ansi": "^2.0.7", + "@inquirer/core": "^11.2.1", + "@inquirer/prompts": "^8.5.2", + "@inquirer/type": "^4.0.7", "mute-stream": "^3.0.0", - "run-async": "^4.0.6", - "rxjs": "^7.8.2" + "run-async": "^4.0.6" }, "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" }, "peerDependencies": { "@types/node": ">=18" @@ -9426,9 +9444,9 @@ } }, "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, "license": "MIT", "bin": { @@ -11447,9 +11465,9 @@ } }, "node_modules/ora": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", - "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", "dev": true, "license": "MIT", "dependencies": { @@ -11459,7 +11477,7 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.1", + "stdin-discarder": "^0.3.2", "string-width": "^8.1.0" }, "engines": { @@ -11526,9 +11544,9 @@ } }, "node_modules/ora/node_modules/string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "dev": true, "license": "MIT", "dependencies": { @@ -13016,16 +13034,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -13549,9 +13557,9 @@ "license": "MIT" }, "node_modules/stdin-discarder": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.1.tgz", - "integrity": "sha512-reExS1kSGoElkextOcPkel4NE99S0BWxjUHQeDFnR8S993JxpPX7KU4MNmO19NXhlJp+8dmdCbKQVNgLJh2teA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", "dev": true, "license": "MIT", "engines": { @@ -15947,9 +15955,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 79536d91..ef3c66af 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", - "i18next-cli": "^1.53.2", + "i18next-cli": "^1.65.0", "istanbul": "^0.4.5", "istanbul-lib-coverage": "^3.2.2", "postcss": "^8.5.16", From 8344a30f5d3b7355285a97c455230e162384944f Mon Sep 17 00:00:00 2001 From: HarelM Date: Wed, 8 Jul 2026 15:05:35 +0300 Subject: [PATCH 3/3] Move things back to where this will still work. --- playwright.config.ts => cypress.config.ts | 1 + .../fixtures/example-layer-style.json | 0 .../fixtures/example-style-with-fonts.json | 0 ...le-style-with-zoom-5-and-center-50-50.json | 0 ...ple-style-with-zoom-7-and-center-0-51.json | 0 {e2e => cypress}/fixtures/example-style.json | 0 .../fixtures/geojson-raster-style.json | 0 {e2e => cypress}/fixtures/geojson-style.json | 0 {e2e => cypress}/fixtures/raster-style.json | 0 .../fixtures/rectangles-style.json | 0 e2e/accessibility.spec.ts | 6 ++- e2e/code-editor.spec.ts | 4 +- e2e/history.spec.ts | 4 +- e2e/i18n.spec.ts | 8 ++-- e2e/keyboard.spec.ts | 5 ++- e2e/layer-editor.spec.ts | 30 +++++++------- e2e/layers-list.spec.ts | 40 +++++++++---------- e2e/map.spec.ts | 10 +++-- .../e2e => e2e}/maputnik-cypress-helper.ts | 0 e2e/modals.spec.ts | 35 ++++++++-------- tsconfig.json | 2 +- 21 files changed, 80 insertions(+), 65 deletions(-) rename playwright.config.ts => cypress.config.ts (96%) rename {e2e => cypress}/fixtures/example-layer-style.json (100%) rename {e2e => cypress}/fixtures/example-style-with-fonts.json (100%) rename {e2e => cypress}/fixtures/example-style-with-zoom-5-and-center-50-50.json (100%) rename {e2e => cypress}/fixtures/example-style-with-zoom-7-and-center-0-51.json (100%) rename {e2e => cypress}/fixtures/example-style.json (100%) rename {e2e => cypress}/fixtures/geojson-raster-style.json (100%) rename {e2e => cypress}/fixtures/geojson-style.json (100%) rename {e2e => cypress}/fixtures/raster-style.json (100%) rename {e2e => cypress}/fixtures/rectangles-style.json (100%) rename {cypress/e2e => e2e}/maputnik-cypress-helper.ts (100%) diff --git a/playwright.config.ts b/cypress.config.ts similarity index 96% rename from playwright.config.ts rename to cypress.config.ts index b51c0a71..4b2eed90 100644 --- a/playwright.config.ts +++ b/cypress.config.ts @@ -10,6 +10,7 @@ export default defineConfig({ }, e2e: { + specPattern: 'e2e/**/*.spec.ts', setupNodeEvents(on, config) { // implement node event listeners here require("@cypress/code-coverage/task")(on, config); diff --git a/e2e/fixtures/example-layer-style.json b/cypress/fixtures/example-layer-style.json similarity index 100% rename from e2e/fixtures/example-layer-style.json rename to cypress/fixtures/example-layer-style.json diff --git a/e2e/fixtures/example-style-with-fonts.json b/cypress/fixtures/example-style-with-fonts.json similarity index 100% rename from e2e/fixtures/example-style-with-fonts.json rename to cypress/fixtures/example-style-with-fonts.json diff --git a/e2e/fixtures/example-style-with-zoom-5-and-center-50-50.json b/cypress/fixtures/example-style-with-zoom-5-and-center-50-50.json similarity index 100% rename from e2e/fixtures/example-style-with-zoom-5-and-center-50-50.json rename to cypress/fixtures/example-style-with-zoom-5-and-center-50-50.json diff --git a/e2e/fixtures/example-style-with-zoom-7-and-center-0-51.json b/cypress/fixtures/example-style-with-zoom-7-and-center-0-51.json similarity index 100% rename from e2e/fixtures/example-style-with-zoom-7-and-center-0-51.json rename to cypress/fixtures/example-style-with-zoom-7-and-center-0-51.json diff --git a/e2e/fixtures/example-style.json b/cypress/fixtures/example-style.json similarity index 100% rename from e2e/fixtures/example-style.json rename to cypress/fixtures/example-style.json diff --git a/e2e/fixtures/geojson-raster-style.json b/cypress/fixtures/geojson-raster-style.json similarity index 100% rename from e2e/fixtures/geojson-raster-style.json rename to cypress/fixtures/geojson-raster-style.json diff --git a/e2e/fixtures/geojson-style.json b/cypress/fixtures/geojson-style.json similarity index 100% rename from e2e/fixtures/geojson-style.json rename to cypress/fixtures/geojson-style.json diff --git a/e2e/fixtures/raster-style.json b/cypress/fixtures/raster-style.json similarity index 100% rename from e2e/fixtures/raster-style.json rename to cypress/fixtures/raster-style.json diff --git a/e2e/fixtures/rectangles-style.json b/cypress/fixtures/rectangles-style.json similarity index 100% rename from e2e/fixtures/rectangles-style.json rename to cypress/fixtures/rectangles-style.json diff --git a/e2e/accessibility.spec.ts b/e2e/accessibility.spec.ts index 8e2e7e61..edbd3a10 100644 --- a/e2e/accessibility.spec.ts +++ b/e2e/accessibility.spec.ts @@ -1,10 +1,12 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("accessibility", () => { +const test = it; + +describe("accessibility", () => { const { beforeAndAfter, get, when, then } = new MaputnikDriver(); beforeAndAfter(); - test.describe("skip links", () => { + describe("skip links", () => { beforeEach(() => { when.setStyle("layer"); }); diff --git a/e2e/code-editor.spec.ts b/e2e/code-editor.spec.ts index abfb63c1..70a6b685 100644 --- a/e2e/code-editor.spec.ts +++ b/e2e/code-editor.spec.ts @@ -1,6 +1,8 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("code editor", () => { +const test = it; + +describe("code editor", () => { const { beforeAndAfter, when, get, then } = new MaputnikDriver(); beforeAndAfter(); diff --git a/e2e/history.spec.ts b/e2e/history.spec.ts index 5cefef01..811fc3f9 100644 --- a/e2e/history.spec.ts +++ b/e2e/history.spec.ts @@ -1,6 +1,8 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("history", () => { +const test = it; + +describe("history", () => { const { beforeAndAfter, when, get, then } = new MaputnikDriver(); beforeAndAfter(); diff --git a/e2e/i18n.spec.ts b/e2e/i18n.spec.ts index db296ce7..33d8f3c6 100644 --- a/e2e/i18n.spec.ts +++ b/e2e/i18n.spec.ts @@ -1,10 +1,12 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("i18n", () => { +const test = it; + +describe("i18n", () => { const { beforeAndAfter, get, when, then } = new MaputnikDriver(); beforeAndAfter(); - test.describe("language detector", () => { + describe("language detector", () => { test("English", () => { const url = "?lng=en"; when.visit(url); @@ -18,7 +20,7 @@ test.describe("i18n", () => { }); }); - test.describe("language switcher", () => { + describe("language switcher", () => { beforeEach(() => { when.setStyle("layer"); }); diff --git a/e2e/keyboard.spec.ts b/e2e/keyboard.spec.ts index 7292f30b..baf9595d 100644 --- a/e2e/keyboard.spec.ts +++ b/e2e/keyboard.spec.ts @@ -1,9 +1,10 @@ import { MaputnikDriver } from "./maputnik-driver"; +const test = it; -test.describe("keyboard", () => { +describe("keyboard", () => { const { beforeAndAfter, given, when, get, then } = new MaputnikDriver(); beforeAndAfter(); - test.describe("shortcuts", () => { + describe("shortcuts", () => { beforeEach(() => { given.setupMockBackedResponses(); when.setStyle(""); diff --git a/e2e/layer-editor.spec.ts b/e2e/layer-editor.spec.ts index c75588de..1b3b074d 100644 --- a/e2e/layer-editor.spec.ts +++ b/e2e/layer-editor.spec.ts @@ -1,7 +1,9 @@ import { MaputnikDriver } from "./maputnik-driver"; import { v1 as uuid } from "uuid"; -test.describe("layer editor", () => { +const test = it; + +describe("layer editor", () => { const { beforeAndAfter, get, when, then } = new MaputnikDriver(); beforeAndAfter(); beforeEach(() => { @@ -48,7 +50,7 @@ test.describe("layer editor", () => { }); }); - test.describe("source", () => { + describe("source", () => { test("should show error when the source is invalid", () => { when.modal.fillLayers({ type: "circle", @@ -58,7 +60,7 @@ test.describe("layer editor", () => { }); }); - test.describe("min-zoom", () => { + describe("min-zoom", () => { let bgId: string; beforeEach(() => { @@ -80,7 +82,7 @@ test.describe("layer editor", () => { }); }); - test("when clicking next layer should update style on local storage", () => { + it("when clicking next layer should update style on local storage", () => { when.type("min-zoom.input-text", "{backspace}"); when.click("max-zoom.input-text"); then(get.styleFromLocalStorage()).shouldDeepNestedInclude({ @@ -95,7 +97,7 @@ test.describe("layer editor", () => { }); }); - test.describe("max-zoom", () => { + describe("max-zoom", () => { let bgId: string; beforeEach(() => { @@ -118,7 +120,7 @@ test.describe("layer editor", () => { }); }); - test.describe("comments", () => { + describe("comments", () => { let bgId: string; const comment = "42"; @@ -143,7 +145,7 @@ test.describe("layer editor", () => { }); }); - test.describe("when unsetting", () => { + describe("when unsetting", () => { beforeEach(() => { when.clear("layer-comment.input"); when.click("min-zoom.input-text"); @@ -162,7 +164,7 @@ test.describe("layer editor", () => { }); }); - test.describe("color", () => { + describe("color", () => { let bgId: string; beforeEach(() => { bgId = createBackground(); @@ -182,7 +184,7 @@ test.describe("layer editor", () => { }); }); - test.describe("opacity", () => { + describe("opacity", () => { let bgId: string; beforeEach(() => { bgId = createBackground(); @@ -202,12 +204,12 @@ test.describe("layer editor", () => { - test.describe("filter", () => { + describe("filter", () => { test("expand/collapse"); test("compound filter"); }); - test.describe("layout", () => { + describe("layout", () => { test("text-font", () => { when.setStyle("font"); when.collapseGroupInLayerEditor(); @@ -221,14 +223,14 @@ test.describe("layer editor", () => { }); }); - test.describe("paint", () => { + describe("paint", () => { test("expand/collapse"); test("color"); test("pattern"); test("opacity"); }); - test.describe("json-editor", () => { + describe("json-editor", () => { test("add", () => { const id = when.modal.fillLayers({ type: "circle", @@ -272,7 +274,7 @@ test.describe("layer editor", () => { }); }); - test.describe("sticky header", () => { + describe("sticky header", () => { test("should keep layer header visible when scrolling properties", () => { // Setup: Create a layer with many properties (e.g., symbol layer) when.modal.fillLayers({ diff --git a/e2e/layers-list.spec.ts b/e2e/layers-list.spec.ts index 0a1a845d..19cf64dc 100644 --- a/e2e/layers-list.spec.ts +++ b/e2e/layers-list.spec.ts @@ -1,6 +1,6 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("layers list", () => { +describe("layers list", () => { const { beforeAndAfter, get, when, then } = new MaputnikDriver(); beforeAndAfter(); beforeEach(() => { @@ -8,7 +8,7 @@ test.describe("layers list", () => { when.modal.open(); }); - test.describe("ops", () => { + describe("ops", () => { let id: string; beforeEach(() => { id = when.modal.fillLayers({ @@ -27,7 +27,7 @@ test.describe("layers list", () => { }); }); - test.describe("when clicking delete", () => { + describe("when clicking delete", () => { beforeEach(() => { when.click("layer-list-item:" + id + ":delete"); }); @@ -38,7 +38,7 @@ test.describe("layers list", () => { }); }); - test.describe("when clicking duplicate", () => { + describe("when clicking duplicate", () => { beforeEach(() => { when.click("layer-list-item:" + id + ":copy"); }); @@ -58,7 +58,7 @@ test.describe("layers list", () => { }); }); - test.describe("when clicking hide", () => { + describe("when clicking hide", () => { beforeEach(() => { when.click("layer-list-item:" + id + ":toggle-visibility"); }); @@ -77,7 +77,7 @@ test.describe("layers list", () => { }); }); - test.describe("when clicking show", () => { + describe("when clicking show", () => { beforeEach(() => { when.click("layer-list-item:" + id + ":toggle-visibility"); }); @@ -97,7 +97,7 @@ test.describe("layers list", () => { }); }); - test.describe("when selecting a layer", () => { + describe("when selecting a layer", () => { let secondId: string; beforeEach(() => { when.modal.open(); @@ -116,7 +116,7 @@ test.describe("layers list", () => { }); }); - test.describe("background", () => { + describe("background", () => { test("add", () => { const id = when.modal.fillLayers({ type: "background", @@ -131,10 +131,10 @@ test.describe("layers list", () => { }); }); - test.describe("modify", () => {}); + describe("modify", () => {}); }); - test.describe("fill", () => { + describe("fill", () => { test("add", () => { const id = when.modal.fillLayers({ type: "fill", @@ -156,7 +156,7 @@ test.describe("layers list", () => { test("change source"); }); - test.describe("line", () => { + describe("line", () => { test("add", () => { const id = when.modal.fillLayers({ type: "line", @@ -229,7 +229,7 @@ test.describe("layers list", () => { }); }); - test.describe("symbol", () => { + describe("symbol", () => { test("add", () => { const id = when.modal.fillLayers({ type: "symbol", @@ -286,7 +286,7 @@ test.describe("layers list", () => { }); }); - test.describe("raster", () => { + describe("raster", () => { test("add", () => { const id = when.modal.fillLayers({ type: "raster", @@ -305,7 +305,7 @@ test.describe("layers list", () => { }); }); - test.describe("circle", () => { + describe("circle", () => { test("add", () => { const id = when.modal.fillLayers({ type: "circle", @@ -324,7 +324,7 @@ test.describe("layers list", () => { }); }); - test.describe("fill extrusion", () => { + describe("fill extrusion", () => { test("add", () => { const id = when.modal.fillLayers({ type: "fill-extrusion", @@ -343,7 +343,7 @@ test.describe("layers list", () => { }); }); - test.describe("hillshade", () => { + describe("hillshade", () => { test("add", () => { const id = when.modal.fillLayers({ type: "hillshade", @@ -412,7 +412,7 @@ test.describe("layers list", () => { }); }); - test.describe("color-relief", () => { + describe("color-relief", () => { test("add", () => { const id = when.modal.fillLayers({ type: "color-relief", @@ -441,7 +441,7 @@ test.describe("layers list", () => { }); }); - test.describe("groups", () => { + describe("groups", () => { test("simple", () => { when.setStyle("geojson"); @@ -477,7 +477,7 @@ test.describe("layers list", () => { }); }); - test.describe("drag and drop", () => { + describe("drag and drop", () => { test("move layer should update local storage", () => { when.modal.open(); const firstId = when.modal.fillLayers({ @@ -516,7 +516,7 @@ test.describe("layers list", () => { }); }); - test.describe("sticky header", () => { + describe("sticky header", () => { test("should keep header visible when scrolling layer list", () => { // Setup: Create multiple layers to enable scrolling for (let i = 0; i < 20; i++) { diff --git a/e2e/map.spec.ts b/e2e/map.spec.ts index 4ed7acf7..046620f7 100644 --- a/e2e/map.spec.ts +++ b/e2e/map.spec.ts @@ -1,9 +1,11 @@ import { MaputnikDriver } from "./maputnik-driver"; -test.describe("map", () => { +const test = it; + +describe("map", () => { const { beforeAndAfter, get, when, then } = new MaputnikDriver(); beforeAndAfter(); - test.describe("zoom level", () => { + describe("zoom level", () => { test("via url", () => { const zoomLevel = 12.37; when.setStyle("geojson", zoomLevel); @@ -39,13 +41,13 @@ test.describe("map", () => { }); }); - test.describe("search", () => { + describe("search", () => { test("should exist", () => { then(get.searchControl()).shouldBeVisible(); }); }); - test.describe("popup", () => { + describe("popup", () => { beforeEach(() => { when.setStyle("rectangles"); then(get.locationHash().should("exist")); diff --git a/cypress/e2e/maputnik-cypress-helper.ts b/e2e/maputnik-cypress-helper.ts similarity index 100% rename from cypress/e2e/maputnik-cypress-helper.ts rename to e2e/maputnik-cypress-helper.ts diff --git a/e2e/modals.spec.ts b/e2e/modals.spec.ts index e442f945..f2c13fe5 100644 --- a/e2e/modals.spec.ts +++ b/e2e/modals.spec.ts @@ -1,14 +1,15 @@ import { MaputnikDriver } from "./maputnik-driver"; -import tokens from "../../src/config/tokens.json" with {type: "json"}; +import tokens from "../src/config/tokens.json" with {type: "json"}; +const test = it; -test.describe("modals", () => { +describe("modals", () => { const { beforeAndAfter, when, get, given, then } = new MaputnikDriver(); beforeAndAfter(); beforeEach(() => { when.setStyle(""); }); - test.describe("open", () => { + describe("open", () => { beforeEach(() => { when.click("nav:open"); }); @@ -28,7 +29,7 @@ test.describe("modals", () => { then(get.fixture("example-style.json")).shouldEqualToStoredStyle(); }); - test.describe("when click open url", () => { + describe("when click open url", () => { beforeEach(() => { const styleFileUrl = get.exampleFileUrl(); @@ -42,7 +43,7 @@ test.describe("modals", () => { }); }); - test.describe("shortcuts", () => { + describe("shortcuts", () => { test("open/close", () => { when.setStyle(""); when.typeKeys("?"); @@ -51,7 +52,7 @@ test.describe("modals", () => { }); }); - test.describe("export", () => { + describe("export", () => { beforeEach(() => { when.click("nav:export"); }); @@ -65,7 +66,7 @@ test.describe("modals", () => { test("download"); }); - test.describe("sources", () => { + describe("sources", () => { beforeEach(() => { when.setStyle("layer"); when.click("nav:sources"); @@ -122,7 +123,7 @@ test.describe("modals", () => { }); }); - test.describe("inspect", () => { + describe("inspect", () => { test("toggle", () => { // There is no assertion in this test when.setStyle("geojson"); @@ -130,12 +131,12 @@ test.describe("modals", () => { }); }); - test.describe("style settings", () => { + describe("style settings", () => { beforeEach(() => { when.click("nav:settings"); }); - test.describe("when click name filed spec information", () => { + describe("when click name filed spec information", () => { beforeEach(() => { when.click("field-doc-button-Name"); }); @@ -147,7 +148,7 @@ test.describe("modals", () => { }); }); - test.describe("when set name and click owner", () => { + describe("when set name and click owner", () => { beforeEach(() => { when.setValue("modal:settings.name", "foobar"); when.click("modal:settings.owner"); @@ -161,7 +162,7 @@ test.describe("modals", () => { }); }); - test.describe("when set owner and click name", () => { + describe("when set owner and click name", () => { beforeEach(() => { when.setValue("modal:settings.owner", "foobar"); when.click("modal:settings.name"); @@ -321,7 +322,7 @@ test.describe("modals", () => { }); - test.describe("add layer", () => { + describe("add layer", () => { beforeEach(() => { when.setStyle("layer"); when.modal.open(); @@ -337,11 +338,11 @@ test.describe("modals", () => { }); }); - test.describe("sources", () => { + describe("sources", () => { test("toggle"); }); - test.describe("global state", () => { + describe("global state", () => { beforeEach(() => { when.click("nav:global-state"); }); @@ -399,7 +400,7 @@ test.describe("modals", () => { }); }); - test.describe("error panel", () => { + describe("error panel", () => { test("not visible when no errors", () => { then(get.element("maputnik-message-panel-error")).shouldNotExist(); }); @@ -414,7 +415,7 @@ test.describe("modals", () => { }); }); - test.describe("Handle localStorage QuotaExceededError", () => { + describe("Handle localStorage QuotaExceededError", () => { test("handles quota exceeded error when opening style from URL", () => { // Clear localStorage to start fresh cy.clearLocalStorage(); diff --git a/tsconfig.json b/tsconfig.json index ef75df38..7b974a42 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,7 @@ "noUnusedParameters": true, "noFallthroughCasesInSwitch": true }, - "include": ["src", "cypress/e2e"], + "include": ["src", "cypress/e2e", "e2e/maputnik-cypress-helper.ts"], "exclude": ["dist"], "references": [{ "path": "./tsconfig.node.json" }], // TODO: Remove when issue is resolved https://github.com/cypress-io/cypress/issues/27448