From 858b8e1d1fe80bec9a2de73c75d5dcc15a20b847 Mon Sep 17 00:00:00 2001 From: gnezim Date: Wed, 15 Apr 2026 00:34:16 +0300 Subject: [PATCH] Wire root layout provider stack and locale-scoped layout with i18n Root layout wraps children with LoggerProvider, ApiClientProvider, and ErrorBoundary. Locale layout validates lang param against 9 supported languages and provides a request-scoped I18nProvider. --- package.json | 1 + pnpm-lock.yaml | 566 ++++++++++++++++++++++++++++++++--- src/routes/[lang]/layout.tsx | 48 +++ src/routes/layout.tsx | 29 +- 4 files changed, 601 insertions(+), 43 deletions(-) create mode 100644 src/routes/[lang]/layout.tsx diff --git a/package.json b/package.json index ca09b367..71aa4d9f 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "@modern-js/app-tools": "2.70.8", + "@modern-js/runtime": "^3.1.3", "@module-federation/enhanced": "2.3.2", "@module-federation/modern-js": "2.3.2", "@opentelemetry/api": "^1.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2910195f..d92b996d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,13 +10,16 @@ importers: dependencies: '@modern-js/app-tools': specifier: 2.70.8 - version: 2.70.8(@rspack/core@1.7.11(@swc/helpers@0.5.21))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.1)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tsconfig-paths@4.2.0)(tslib@2.8.1)(typescript@5.9.3) + version: 2.70.8(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.1)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tsconfig-paths@4.2.0)(tslib@2.8.1)(typescript@5.9.3) + '@modern-js/runtime': + specifier: ^3.1.3 + version: 3.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0)(react-dom@18.3.1(react@18.3.1))(react-server-dom-rspack@0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@module-federation/enhanced': specifier: 2.3.2 - version: 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + version: 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) '@module-federation/modern-js': specifier: 2.3.2 - version: 2.3.2(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + version: 2.3.2(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router@7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) '@opentelemetry/api': specifier: ^1.9.1 version: 1.9.1 @@ -1310,6 +1313,19 @@ packages: peerDependencies: tslib: '2' + '@loadable/component@5.16.7': + resolution: {integrity: sha512-XvkFixLUOTEaj8lI7uwc4nf8Wmq3IulYG7SZHCWcPm/Li5gjJDFfIkgWOLPnD7jqPJVtAG9bEz4SCek+SpHYYg==} + engines: {node: '>=8'} + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@loadable/server@5.16.7': + resolution: {integrity: sha512-wdRmljftCjzyh75xeyc4+3UL2DGz25/YUrB7BT7VTgVRovHmDThl7feu/01w2C+vSxBqzpMkiuPjSftFPL/Fqw==} + engines: {node: '>=8'} + peerDependencies: + '@loadable/component': ^5.0.1 + react: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@mapbox/node-pre-gyp@2.0.3': resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} engines: {node: '>=18'} @@ -1352,6 +1368,12 @@ packages: peerDependencies: react: '>=17.0.0' + '@modern-js/plugin-data-loader@3.1.3': + resolution: {integrity: sha512-vIKqzme8z47iZJnQVa0R4W3pRj77YFN7QIZE6II1XAN5vJd5SH9P9tSNB1tT+xi/tEBw6kEp4HZP/lWQk7kxOA==} + engines: {node: '>=20'} + peerDependencies: + react: '>=17.0.2' + '@modern-js/plugin-i18n@2.70.8': resolution: {integrity: sha512-Gxi2PpxczvGiRxRpRnW0UtwbCNIyJkU6gpfWHIXwK6DuxQxdGOykRy/Cjg4831ex1RIpLREubzKZL4ktT6wlBA==} @@ -1361,10 +1383,20 @@ packages: '@modern-js/plugin@2.70.8': resolution: {integrity: sha512-zdztuhhMwchQIsMwVZmnnfLv/iyj4EMEcP8etVlePKe4geVpTUH+mKZ19ko4/e4nw/1g8DGeil3oEOyZUFeuwg==} + '@modern-js/plugin@3.1.3': + resolution: {integrity: sha512-I6HXp1+986jb2kXQL2dvbqTnw6s0M5c0uYaKS47UvgpmEQw4jIhuighcAk2vzMnBspWB2/5pFIEK1QfN33Xvow==} + '@modern-js/prod-server@2.70.8': resolution: {integrity: sha512-EgYyjIe4MRAIs7CNd8qCtQrpTC9WbrSrai9Fu9IiGniItshVQmp+d07joPiIoAob9Xd8UhGPt7KBW3pUcGLpEg==} engines: {node: '>=16.2.0'} + '@modern-js/render@3.1.3': + resolution: {integrity: sha512-lharvOF9TppRs2IarH+arciQr+k4x9et0pR7x1mjwdNf4VKS/SgnoE0ci5YuemM6Uhrdo9r/T7lj8zoiMLF3LQ==} + peerDependencies: + react: '>=17.0.2' + react-dom: '>=17.0.2' + react-server-dom-rspack: 0.0.1-beta.1 + '@modern-js/rsbuild-plugin-esbuild@2.70.8': resolution: {integrity: sha512-TXPssG8VqxNImFb84d6y+MwnaACdJ2wMa2ij4Z0RfKisiEwIzqLe8lNWe/ApZVqJ+iVnVd9295reG1MF9kaMFQ==} @@ -1379,6 +1411,24 @@ packages: react-dom: optional: true + '@modern-js/runtime-utils@3.1.3': + resolution: {integrity: sha512-iMTTo5kn5DJiUBglU6Sh6u+8Yze5+In30U8AXBSldEvx6gWyVLVFLAs2JmeTM2Oaho+W2UioWqiMiSmKaatnZA==} + peerDependencies: + react: '>=17.0.2' + react-dom: '>=17.0.2' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + + '@modern-js/runtime@3.1.3': + resolution: {integrity: sha512-pTitNwTHwNlsKx5OwIHPI8dA3A1i1H+ltIjWFc2xpFESOSUTqbwjT4qooKXpjIJs8w6GH9CfoMNriKhBPu9edQ==} + engines: {node: '>=20'} + peerDependencies: + react: '>=17.0.2' + react-dom: '>=17.0.2' + '@modern-js/server-core@2.70.8': resolution: {integrity: sha512-49g6oWSJoEa2XoxR5d07iNANq9M1/pQfNr++0HiamEG3x0JW5jxkuV5DrB3QlfVFvsu+sxgX5kJtH4DXuOQ9Lw==} engines: {node: '>=16.2.0'} @@ -1403,6 +1453,9 @@ packages: '@modern-js/types@2.70.8': resolution: {integrity: sha512-SFOWWwd2XYo2HNR/l1omLArL+vWz28DFFoFQHiF+aeigKzsukCAFZUxJyFMBk6v8MvXK7dyHt1/pKdy2v/2XhQ==} + '@modern-js/types@3.1.3': + resolution: {integrity: sha512-lBP6LJNBqZarxysaCTU2OFvw2k3lPgNeanAU1u7BQ0cfGi+FiWA3x/txxLOJZwQdZPHyn2yuj0OwFOAtcZ9J9w==} + '@modern-js/uni-builder@2.70.8': resolution: {integrity: sha512-HPKTVHZbUAuMQsOQqkKPJoMInQLk4FosdJvuZ7eIeenvfRXoRs5COvKIb4BT2hwQNWncgKdpQicQVQ11CkxrRQ==} @@ -1412,6 +1465,17 @@ packages: '@modern-js/utils@2.70.8': resolution: {integrity: sha512-4tr76n7H1nJvvkbdrOzSrjUwTbBjJT8AAaUAeawCBKW9pO86ZlIzvxbn+nIsiB+3p2c0eZlvPfp5sZdhZtZc1A==} + '@modern-js/utils@3.1.3': + resolution: {integrity: sha512-EZCG0iOpGWgb1fdqCALN4v9I1CGaCjgecKBVv+Qsrv7YHmT22+ei0eRRPJzi/EwYKNwpN1N6pEc0ajtwGk+msg==} + peerDependencies: + react: ^19.2.4 + react-dom: ^19.2.4 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + '@module-federation/bridge-react-webpack-plugin@2.3.2': resolution: {integrity: sha512-NMzJhTSGz6PpImjbXfpGX595i+N3EFW5RwRgQ2ftTuqT7FS3vqYnC4i/72HNgryYNTSIZZSwjTbfKLyeSTroeA==} @@ -1577,6 +1641,12 @@ packages: '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2045,6 +2115,16 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + '@rsbuild/core@2.0.0-rc.0': + resolution: {integrity: sha512-XutQgxd71RyH9jT0x+/F0DiGqk2Q5oofZuzNZFEkSayjO1UG+uVLhK90zB4hW43qRHqGEqcWlVaNPSQ8rHLk6A==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + core-js: '>= 3.0.0' + peerDependenciesMeta: + core-js: + optional: true + '@rsbuild/plugin-assets-retry@1.5.2': resolution: {integrity: sha512-d+nZeoaokk/nlP0UV2/ijbmrvLFlH1SXTUd3kDilw0IqvANrlBMnwTcaxkX6tf0Dr0b4gApp9xiZLP5zQsgb5w==} peerDependencies: @@ -2176,53 +2256,105 @@ packages: cpu: [arm64] os: [darwin] + '@rspack/binding-darwin-arm64@2.0.0-rc.0': + resolution: {integrity: sha512-F1phoByw5bMZ44TVJevn7Yw1mn1dWQ6Z3dxMQrkXoFsxwUPSNOHBX1TSkQ3rmhw2CZpFinbLL6aYjDWM6aHO5A==} + cpu: [arm64] + os: [darwin] + '@rspack/binding-darwin-x64@1.7.11': resolution: {integrity: sha512-a1+TtTE9ap6RalgFi7FGIgkJP6O4Vy6ctv+9WGJy53E4kuqHR0RygzaiVxCI/GMc/vBT9vY23hyrpWb3d1vtXA==} cpu: [x64] os: [darwin] + '@rspack/binding-darwin-x64@2.0.0-rc.0': + resolution: {integrity: sha512-oVzDuXwtn1uM9ovV12gTwkTHCwN1q0U0oxfclJjEjb1EhE/a/UGGABUsLl84wSbIW1fvcd9UwAr7vBqPWsjB4Q==} + cpu: [x64] + os: [darwin] + '@rspack/binding-linux-arm64-gnu@1.7.11': resolution: {integrity: sha512-P0QrGRPbTWu6RKWfN0bDtbnEps3rXH0MWIMreZABoUrVmNQKtXR6e73J3ub6a+di5s2+K0M2LJ9Bh2/H4UsDUA==} cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-gnu@2.0.0-rc.0': + resolution: {integrity: sha512-f0EQ0uBWXmknhZ7HR8ud+AhEtLSKbMK9IFHNkhMH3rN4J6wMI+uCPAs+ZlIrNk076bv8YB/z2Amx1ByDLjOBRA==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-arm64-musl@1.7.11': resolution: {integrity: sha512-6ky7R43VMjWwmx3Yx7Jl7faLBBMAgMDt+/bN35RgwjiPgsIByz65EwytUVuW9rikB43BGHvA/eqlnjLrUzNBqw==} cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-musl@2.0.0-rc.0': + resolution: {integrity: sha512-+OiO3x6biWU+z/H/rBzgCJuhvZj7YkGz4w7zQk2ZEHnL8nB5pzPqFiEZesbRp+WIseAONzitn7R0qk102hBi5g==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-x64-gnu@1.7.11': resolution: {integrity: sha512-cuOJMfCOvb2Wgsry5enXJ3iT1FGUjdPqtGUBVupQlEG4ntSYsQ2PtF4wIDVasR3wdxC5nQbipOrDiN/u6fYsdQ==} cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-gnu@2.0.0-rc.0': + resolution: {integrity: sha512-n1XXXjTcPyCUoV+t3BPfBoF16CgsBxXI7WQuajIgQ33ifm7AEkRi8OVC2ci6908/MnYJSBFHlZvuDE42EwEstQ==} + cpu: [x64] + os: [linux] + '@rspack/binding-linux-x64-musl@1.7.11': resolution: {integrity: sha512-CoK37hva4AmHGh3VCsQXmGr40L36m1/AdnN5LEjUX6kx5rEH7/1nEBN6Ii72pejqDVvk9anEROmPDiPw10tpFg==} cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-musl@2.0.0-rc.0': + resolution: {integrity: sha512-EQK7SGu7FWFf1HPPvcahsk2pNL326GQY+jIg3FxGdiAWl1DtSCPrTo/eBKT3nSnXItWta1N80pN5wWVlfs/Liw==} + cpu: [x64] + os: [linux] + '@rspack/binding-wasm32-wasi@1.7.11': resolution: {integrity: sha512-OtrmnPUVJMxjNa3eDMfHyPdtlLRmmp/aIm0fQHlAOATbZvlGm12q7rhPW5BXTu1yh+1rQ1/uqvz+SzKEZXuJaQ==} cpu: [wasm32] + '@rspack/binding-wasm32-wasi@2.0.0-rc.0': + resolution: {integrity: sha512-zu+iW0kEYJd2AEEqYMSU64f98RMOXVwevnQuPtMg3WhVL79FOfkfXOlf16ZYzB8di8hpMRss7m4traGEUEyjZA==} + cpu: [wasm32] + '@rspack/binding-win32-arm64-msvc@1.7.11': resolution: {integrity: sha512-lObFW6e5lCWNgTBNwT//yiEDbsxm9QG4BYUojqeXxothuzJ/L6ibXz6+gLMvbOvLGV3nKgkXmx8GvT9WDKR0mA==} cpu: [arm64] os: [win32] + '@rspack/binding-win32-arm64-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-QDOVpN0SdjrW4OicHmkuj8T7PWSqEbUs20FX2pTRBw4ReU7BABAp7wwGdtQzZIaPKDv3CTNz/1DygmInbiNgJg==} + cpu: [arm64] + os: [win32] + '@rspack/binding-win32-ia32-msvc@1.7.11': resolution: {integrity: sha512-0pYGnZd8PPqNR68zQ8skamqNAXEA1sUfXuAdYcknIIRq2wsbiwFzIc0Pov1cIfHYab37G7sSIPBiOUdOWF5Ivw==} cpu: [ia32] os: [win32] + '@rspack/binding-win32-ia32-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-89CNtgzs67FRHB+lBQoNZmjVqrrd3i+cNCqn0MzCH6Xe12XrO/2eC41gbl69mfYWIYWHpKuySkSTgOOGp0PqNQ==} + cpu: [ia32] + os: [win32] + '@rspack/binding-win32-x64-msvc@1.7.11': resolution: {integrity: sha512-EeQXayoQk/uBkI3pdoXfQBXNIUrADq56L3s/DFyM2pJeUDrWmhfIw2UFIGkYPTMSCo8F2JcdcGM32FGJrSnU0Q==} cpu: [x64] os: [win32] + '@rspack/binding-win32-x64-msvc@2.0.0-rc.0': + resolution: {integrity: sha512-OaxuI+WHzSNoCtv0FfIw41yjCFvwt/aCoEodBSObzm8PH5YbmiYL/FfTeAOVAJbDoEmkA8qYH+gws7vOzgQzSw==} + cpu: [x64] + os: [win32] + '@rspack/binding@1.7.11': resolution: {integrity: sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q==} + '@rspack/binding@2.0.0-rc.0': + resolution: {integrity: sha512-zWjMryvt8J8H/Z/sa0MHWfblUTHNCwXhw2x13Yz9Nw2P8JjZ/k/h3ni0xBBl/QubIVoA1IfN2OaiNCtFlVmDrQ==} + '@rspack/core@1.7.11': resolution: {integrity: sha512-rsD9b+Khmot5DwCMiB3cqTQo53ioPG3M/A7BySu8+0+RS7GCxKm+Z+mtsjtG/vsu4Tn2tcqCdZtA3pgLoJB+ew==} engines: {node: '>=18.12.0'} @@ -2232,6 +2364,18 @@ packages: '@swc/helpers': optional: true + '@rspack/core@2.0.0-rc.0': + resolution: {integrity: sha512-hFc2284m/075etKLLNsECAwOcyNQ8NHUaBhwJCQJQ3J9iqjDoZisefGC8I457u2iieoc1KNSANB9hxZ0ZOHuJg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@module-federation/runtime-tools': ^0.24.1 || ^2.0.0 + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@module-federation/runtime-tools': + optional: true + '@swc/helpers': + optional: true + '@rspack/lite-tapable@1.1.0': resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} @@ -2399,6 +2543,9 @@ packages: '@swc/helpers@0.5.21': resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + '@swc/plugin-loadable-components@11.8.0': + resolution: {integrity: sha512-UVq+otWuZuVpvmHviV0bp3zVV7QBs2a7k10p9zCNVP8O9ig0EBVpwYbHbTvlzdcVs20+8smcCyNpR+BCNpmwKQ==} + '@swc/plugin-styled-components@12.8.0': resolution: {integrity: sha512-JBJ9liiQeKy9uMEbMlrQqJm9YJskPpJ3VeIYL1/faU5Z5z6FMdbLyPcccPFBqBzet9FP5rn3Oogsiajwunx/PQ==} @@ -2450,6 +2597,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/loadable__component@5.13.10': + resolution: {integrity: sha512-2/LjmgG1JcGPj7T3NViq7BB5cvOA0s63gL3Gv+FPULj2L+3ExWfsNQcsFPUIOoGsVUJeZxgNPf320JZDyxjtCQ==} + '@types/node@24.12.2': resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} @@ -2464,6 +2614,9 @@ packages: peerDependencies: '@types/react': ^18.0.0 + '@types/react-helmet@6.1.11': + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} + '@types/react@18.3.28': resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} @@ -3094,6 +3247,14 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + copy-webpack-plugin@11.0.0: resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} @@ -3388,6 +3549,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -3798,6 +3963,9 @@ packages: hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -3892,6 +4060,9 @@ packages: resolution: {integrity: sha512-pYkiyXVL2Mf3pozdlDGV6NAObxQx13Ae8knZk1UJRJ6uRW/ZRmTGHlQYtrsSl7ubuE5F8CD1z+s1n4RHNuTtuA==} engines: {node: '>=18'} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -3909,6 +4080,9 @@ packages: intl-messageformat@10.7.18: resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -3980,6 +4154,10 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbot@3.8.0: + resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==} + engines: {node: '>=12'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4105,6 +4283,9 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -4892,6 +5073,9 @@ packages: promise@7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + protobufjs@7.5.4: resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} @@ -4973,6 +5157,14 @@ packages: peerDependencies: react: '>=16.13.1' + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-helmet@6.1.0: + resolution: {integrity: sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==} + peerDependencies: + react: '>=16.3.0' + react-i18next@15.7.4: resolution: {integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==} peerDependencies: @@ -4989,6 +5181,12 @@ packages: typescript: optional: true + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -5010,6 +5208,29 @@ packages: peerDependencies: react: '>=16.8' + react-router@7.13.1: + resolution: {integrity: sha512-td+xP4X2/6BJvZoX6xw++A2DdEi++YypA69bJUV5oVvqf6/9/9nNlD70YO1e9d3MyamJEBQFEzk6mbfDYbqrSA==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + + react-server-dom-rspack@0.0.1-beta.1: + resolution: {integrity: sha512-jC8Lvn6mRcfFOrlSa0Df9nH7diNooLVWOtO31VtxHFyQ9qoddx+k3RcqC1wdtAlCRxJMF+xii8VzerYpjABktQ==} + engines: {node: '>=0.10.0'} + peerDependencies: + '@rspack/core': ^2.0.0-0 + react: ^19.1.0 + react-dom: ^19.1.0 + + react-side-effect@2.1.2: + resolution: {integrity: sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==} + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -5300,6 +5521,9 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -7225,6 +7449,19 @@ snapshots: '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) tslib: 2.8.1 + '@loadable/component@5.16.7(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + react-is: 16.13.1 + + '@loadable/server@5.16.7(@loadable/component@5.16.7(react@18.3.1))(react@18.3.1)': + dependencies: + '@loadable/component': 5.16.7(react@18.3.1) + lodash: 4.18.1 + react: 18.3.1 + '@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)': dependencies: consola: 3.4.2 @@ -7238,7 +7475,7 @@ snapshots: - encoding - supports-color - '@modern-js/app-tools@2.70.8(@rspack/core@1.7.11(@swc/helpers@0.5.21))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.1)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tsconfig-paths@4.2.0)(tslib@2.8.1)(typescript@5.9.3)': + '@modern-js/app-tools@2.70.8(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.60.1)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tsconfig-paths@4.2.0)(tslib@2.8.1)(typescript@5.9.3)': dependencies: '@babel/parser': 7.29.2 '@babel/traverse': 7.29.0 @@ -7255,7 +7492,7 @@ snapshots: '@modern-js/server-core': 2.70.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@modern-js/server-utils': 2.70.8(@babel/traverse@7.29.0)(@rsbuild/core@1.7.3) '@modern-js/types': 2.70.8 - '@modern-js/uni-builder': 2.70.8(@rspack/core@1.7.11(@swc/helpers@0.5.21))(esbuild@0.25.5)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tslib@2.8.1)(typescript@5.9.3) + '@modern-js/uni-builder': 2.70.8(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(esbuild@0.25.5)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tslib@2.8.1)(typescript@5.9.3) '@modern-js/utils': 2.70.8 '@rsbuild/core': 1.7.3 '@rsbuild/plugin-node-polyfill': 1.4.4(@rsbuild/core@1.7.3) @@ -7363,6 +7600,16 @@ snapshots: - react-dom - supports-color + '@modern-js/plugin-data-loader@3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@modern-js/runtime-utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@swc/helpers': 0.5.21 + path-to-regexp: 6.3.0 + react: 18.3.1 + transitivePeerDependencies: + - react-dom + '@modern-js/plugin-i18n@2.70.8': dependencies: '@modern-js/utils': 2.70.8 @@ -7385,6 +7632,22 @@ snapshots: '@modern-js/utils': 2.70.8 '@swc/helpers': 0.5.21 + '@modern-js/plugin@3.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@modern-js/runtime-utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/types': 3.1.3 + '@modern-js/utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rsbuild/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0) + '@swc/helpers': 0.5.21 + jiti: 2.6.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@module-federation/runtime-tools' + - core-js + - react + - react-dom + '@modern-js/prod-server@2.70.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@modern-js/runtime-utils': 2.70.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -7395,6 +7658,15 @@ snapshots: - react - react-dom + '@modern-js/render@3.1.3(react-dom@18.3.1(react@18.3.1))(react-server-dom-rspack@0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@modern-js/types': 3.1.3 + '@modern-js/utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@swc/helpers': 0.5.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-server-dom-rspack: 0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/rsbuild-plugin-esbuild@2.70.8': dependencies: '@swc/helpers': 0.5.21 @@ -7418,6 +7690,49 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@modern-js/runtime-utils@3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@modern-js/types': 3.1.3 + '@modern-js/utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@swc/helpers': 0.5.21 + lru-cache: 10.4.3 + react-router: 7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + serialize-javascript: 6.0.2 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@modern-js/runtime@3.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0)(react-dom@18.3.1(react@18.3.1))(react-server-dom-rspack@0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@loadable/component': 5.16.7(react@18.3.1) + '@loadable/server': 5.16.7(@loadable/component@5.16.7(react@18.3.1))(react@18.3.1) + '@modern-js/plugin': 3.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/plugin-data-loader': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/render': 3.1.3(react-dom@18.3.1(react@18.3.1))(react-server-dom-rspack@0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@modern-js/runtime-utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@modern-js/types': 3.1.3 + '@modern-js/utils': 3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@swc/helpers': 0.5.21 + '@swc/plugin-loadable-components': 11.8.0 + '@types/loadable__component': 5.13.10 + '@types/react-helmet': 6.1.11 + cookie: 0.7.2 + entities: 7.0.1 + es-module-lexer: 1.7.0 + esbuild: 0.25.5 + invariant: 2.2.4 + isbot: 3.8.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet: 6.1.0(react@18.3.1) + react-is: 18.3.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@module-federation/runtime-tools' + - core-js + - react-server-dom-rspack + '@modern-js/server-core@2.70.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@modern-js/plugin': 2.70.8 @@ -7484,7 +7799,9 @@ snapshots: '@modern-js/types@2.70.8': {} - '@modern-js/uni-builder@2.70.8(@rspack/core@1.7.11(@swc/helpers@0.5.21))(esbuild@0.25.5)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tslib@2.8.1)(typescript@5.9.3)': + '@modern-js/types@3.1.3': {} + + '@modern-js/uni-builder@2.70.8(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(esbuild@0.25.5)(styled-components@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(tslib@2.8.1)(typescript@5.9.3)': dependencies: '@babel/core': 7.29.0 '@babel/preset-react': 7.28.5(@babel/core@7.29.0) @@ -7507,10 +7824,10 @@ snapshots: '@rsbuild/plugin-styled-components': 1.6.0(@rsbuild/core@1.7.3) '@rsbuild/plugin-svgr': 1.3.0(@rsbuild/core@1.7.3)(typescript@5.9.3) '@rsbuild/plugin-toml': 1.1.2(@rsbuild/core@1.7.3) - '@rsbuild/plugin-type-check': 1.3.4(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3) + '@rsbuild/plugin-type-check': 1.3.4(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3) '@rsbuild/plugin-typed-css-modules': 1.2.1(@rsbuild/core@1.7.3) '@rsbuild/plugin-yaml': 1.0.4(@rsbuild/core@1.7.3) - '@rsbuild/webpack': 1.6.1(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5) + '@rsbuild/webpack': 1.6.1(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5) '@swc/core': 1.15.8(@swc/helpers@0.5.21) '@swc/helpers': 0.5.21 autoprefixer: 10.4.23(postcss@8.5.9) @@ -7523,7 +7840,7 @@ snapshots: es-module-lexer: 1.7.0 glob: 9.3.5 html-minifier-terser: 7.2.0 - html-webpack-plugin: 5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + html-webpack-plugin: 5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) jiti: 1.21.7 lodash: 4.18.1 magic-string: 0.30.21 @@ -7537,12 +7854,12 @@ snapshots: postcss-nesting: 12.1.5(postcss@8.5.9) postcss-page-break: 3.0.4(postcss@8.5.9) react-refresh: 0.14.2 - rspack-manifest-plugin: 5.0.3(@rspack/core@1.7.11(@swc/helpers@0.5.21)) + rspack-manifest-plugin: 5.0.3(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21)) terser-webpack-plugin: 5.3.14(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) ts-deepmerge: 7.0.2 ts-loader: 9.4.4(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) webpack: 5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5) - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -7578,6 +7895,18 @@ snapshots: lodash: 4.18.1 rslog: 1.3.2 + '@modern-js/utils@3.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.21 + caniuse-lite: 1.0.30001788 + import-meta-resolve: 4.2.0 + lodash: 4.18.1 + lodash-es: 4.18.1 + rslog: 1.3.2 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@module-federation/bridge-react-webpack-plugin@2.3.2(node-fetch@2.7.0(encoding@0.1.13))': dependencies: '@module-federation/sdk': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) @@ -7594,13 +7923,14 @@ snapshots: transitivePeerDependencies: - node-fetch - '@module-federation/bridge-react@2.3.2(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@module-federation/bridge-react@2.3.2(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router@7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@module-federation/sdk': 2.3.2(node-fetch@3.3.0) lru-cache: 10.4.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: + react-router: 7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-router-dom: 6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - node-fetch @@ -7687,7 +8017,7 @@ snapshots: - node-fetch - utf-8-validate - '@module-federation/enhanced@2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': + '@module-federation/enhanced@2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': dependencies: '@module-federation/bridge-react-webpack-plugin': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/cli': 2.3.2(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) @@ -7697,7 +8027,7 @@ snapshots: '@module-federation/inject-external-runtime-core-plugin': 2.3.2(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0)) '@module-federation/managers': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/manifest': 2.3.2(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) - '@module-federation/rspack': 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) + '@module-federation/rspack': 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) '@module-federation/runtime-tools': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/sdk': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/webpack-bundler-runtime': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) @@ -7715,7 +8045,7 @@ snapshots: - react-dom - utf-8-validate - '@module-federation/enhanced@2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': + '@module-federation/enhanced@2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': dependencies: '@module-federation/bridge-react-webpack-plugin': 2.3.2(node-fetch@3.3.0) '@module-federation/cli': 2.3.2(node-fetch@3.3.0)(typescript@5.9.3) @@ -7725,7 +8055,7 @@ snapshots: '@module-federation/inject-external-runtime-core-plugin': 2.3.2(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0)) '@module-federation/managers': 2.3.2(node-fetch@3.3.0) '@module-federation/manifest': 2.3.2(node-fetch@3.3.0)(typescript@5.9.3) - '@module-federation/rspack': 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(typescript@5.9.3) + '@module-federation/rspack': 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(typescript@5.9.3) '@module-federation/runtime-tools': 2.3.2(node-fetch@3.3.0) '@module-federation/sdk': 2.3.2(node-fetch@3.3.0) '@module-federation/webpack-bundler-runtime': 2.3.2(node-fetch@3.3.0) @@ -7791,14 +8121,14 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/modern-js@2.3.2(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': + '@module-federation/modern-js@2.3.2(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router@7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': dependencies: '@modern-js/utils': 2.70.5 - '@module-federation/bridge-react': 2.3.2(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@module-federation/bridge-react': 2.3.2(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router@7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@module-federation/cli': 2.3.2(node-fetch@3.3.0)(typescript@5.9.3) - '@module-federation/enhanced': 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) - '@module-federation/node': 2.7.40(@rspack/core@1.7.11(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) - '@module-federation/rsbuild-plugin': 2.3.2(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/enhanced': 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/node': 2.7.40(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/rsbuild-plugin': 2.3.2(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) '@module-federation/runtime': 2.3.2(node-fetch@3.3.0) '@module-federation/sdk': 2.3.2(node-fetch@3.3.0) '@swc/helpers': 0.5.17 @@ -7809,6 +8139,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-error-boundary: 4.1.2(react@18.3.1) optionalDependencies: + react-router: 7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-router-dom: 6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) typescript: 5.9.3 transitivePeerDependencies: @@ -7819,9 +8150,9 @@ snapshots: - utf-8-validate - webpack - '@module-federation/node@2.7.40(@rspack/core@1.7.11(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': + '@module-federation/node@2.7.40(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': dependencies: - '@module-federation/enhanced': 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/enhanced': 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) '@module-federation/runtime': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/sdk': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) encoding: 0.1.13 @@ -7838,10 +8169,10 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/rsbuild-plugin@2.3.2(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': + '@module-federation/rsbuild-plugin@2.3.2(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5))': dependencies: - '@module-federation/enhanced': 2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) - '@module-federation/node': 2.7.40(@rspack/core@1.7.11(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/enhanced': 2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + '@module-federation/node': 2.7.40(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) '@module-federation/sdk': 2.3.2(node-fetch@3.3.0) optionalDependencies: '@rsbuild/core': 1.7.3 @@ -7856,7 +8187,7 @@ snapshots: - vue-tsc - webpack - '@module-federation/rspack@2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3)': + '@module-federation/rspack@2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3)': dependencies: '@module-federation/bridge-react-webpack-plugin': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/dts-plugin': 2.3.2(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) @@ -7865,7 +8196,7 @@ snapshots: '@module-federation/manifest': 2.3.2(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3) '@module-federation/runtime-tools': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/sdk': 2.3.2(node-fetch@2.7.0(encoding@0.1.13)) - '@rspack/core': 1.7.11(@swc/helpers@0.5.21) + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -7873,7 +8204,7 @@ snapshots: - node-fetch - utf-8-validate - '@module-federation/rspack@2.3.2(@rspack/core@1.7.11(@swc/helpers@0.5.21))(node-fetch@3.3.0)(typescript@5.9.3)': + '@module-federation/rspack@2.3.2(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(node-fetch@3.3.0)(typescript@5.9.3)': dependencies: '@module-federation/bridge-react-webpack-plugin': 2.3.2(node-fetch@3.3.0) '@module-federation/dts-plugin': 2.3.2(node-fetch@3.3.0)(typescript@5.9.3) @@ -7882,7 +8213,7 @@ snapshots: '@module-federation/manifest': 2.3.2(node-fetch@3.3.0)(typescript@5.9.3) '@module-federation/runtime-tools': 2.3.2(node-fetch@3.3.0) '@module-federation/sdk': 2.3.2(node-fetch@3.3.0) - '@rspack/core': 1.7.11(@swc/helpers@0.5.21) + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -7993,6 +8324,13 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8437,6 +8775,17 @@ snapshots: core-js: 3.47.0 jiti: 2.6.1 + '@rsbuild/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(core-js@3.47.0)': + dependencies: + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) + '@swc/helpers': 0.5.21 + optionalDependencies: + core-js: 3.47.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@module-federation/runtime-tools' + '@rsbuild/plugin-assets-retry@1.5.2(@rsbuild/core@1.7.3)': optionalDependencies: '@rsbuild/core': 1.7.3 @@ -8582,12 +8931,12 @@ snapshots: optionalDependencies: '@rsbuild/core': 1.7.3 - '@rsbuild/plugin-type-check@1.3.4(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3)': + '@rsbuild/plugin-type-check@1.3.4(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3)': dependencies: deepmerge: 4.3.1 json5: 2.2.3 reduce-configs: 1.1.2 - ts-checker-rspack-plugin: 1.3.0(@rspack/core@1.7.11(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3) + ts-checker-rspack-plugin: 1.3.0(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3) optionalDependencies: '@rsbuild/core': 1.7.3 transitivePeerDependencies: @@ -8603,11 +8952,11 @@ snapshots: optionalDependencies: '@rsbuild/core': 1.7.3 - '@rsbuild/webpack@1.6.1(@rsbuild/core@1.7.3)(@rspack/core@1.7.11(@swc/helpers@0.5.21))(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)': + '@rsbuild/webpack@1.6.1(@rsbuild/core@1.7.3)(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)': dependencies: '@rsbuild/core': 1.7.3 copy-webpack-plugin: 11.0.0(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) - html-webpack-plugin: 5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + html-webpack-plugin: 5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) mini-css-extract-plugin: 2.9.4(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) picocolors: 1.1.1 reduce-configs: 1.1.2 @@ -8623,35 +8972,70 @@ snapshots: '@rspack/binding-darwin-arm64@1.7.11': optional: true + '@rspack/binding-darwin-arm64@2.0.0-rc.0': + optional: true + '@rspack/binding-darwin-x64@1.7.11': optional: true + '@rspack/binding-darwin-x64@2.0.0-rc.0': + optional: true + '@rspack/binding-linux-arm64-gnu@1.7.11': optional: true + '@rspack/binding-linux-arm64-gnu@2.0.0-rc.0': + optional: true + '@rspack/binding-linux-arm64-musl@1.7.11': optional: true + '@rspack/binding-linux-arm64-musl@2.0.0-rc.0': + optional: true + '@rspack/binding-linux-x64-gnu@1.7.11': optional: true + '@rspack/binding-linux-x64-gnu@2.0.0-rc.0': + optional: true + '@rspack/binding-linux-x64-musl@1.7.11': optional: true + '@rspack/binding-linux-x64-musl@2.0.0-rc.0': + optional: true + '@rspack/binding-wasm32-wasi@1.7.11': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true + '@rspack/binding-wasm32-wasi@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + '@rspack/binding-win32-arm64-msvc@1.7.11': optional: true + '@rspack/binding-win32-arm64-msvc@2.0.0-rc.0': + optional: true + '@rspack/binding-win32-ia32-msvc@1.7.11': optional: true + '@rspack/binding-win32-ia32-msvc@2.0.0-rc.0': + optional: true + '@rspack/binding-win32-x64-msvc@1.7.11': optional: true + '@rspack/binding-win32-x64-msvc@2.0.0-rc.0': + optional: true + '@rspack/binding@1.7.11': optionalDependencies: '@rspack/binding-darwin-arm64': 1.7.11 @@ -8665,6 +9049,22 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 1.7.11 '@rspack/binding-win32-x64-msvc': 1.7.11 + '@rspack/binding@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + optionalDependencies: + '@rspack/binding-darwin-arm64': 2.0.0-rc.0 + '@rspack/binding-darwin-x64': 2.0.0-rc.0 + '@rspack/binding-linux-arm64-gnu': 2.0.0-rc.0 + '@rspack/binding-linux-arm64-musl': 2.0.0-rc.0 + '@rspack/binding-linux-x64-gnu': 2.0.0-rc.0 + '@rspack/binding-linux-x64-musl': 2.0.0-rc.0 + '@rspack/binding-wasm32-wasi': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@rspack/binding-win32-arm64-msvc': 2.0.0-rc.0 + '@rspack/binding-win32-ia32-msvc': 2.0.0-rc.0 + '@rspack/binding-win32-x64-msvc': 2.0.0-rc.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + '@rspack/core@1.7.11(@swc/helpers@0.5.21)': dependencies: '@module-federation/runtime-tools': 0.22.0 @@ -8673,6 +9073,16 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.21 + '@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21)': + dependencies: + '@rspack/binding': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optionalDependencies: + '@module-federation/runtime-tools': 2.3.2(node-fetch@3.3.0) + '@swc/helpers': 0.5.21 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + '@rspack/lite-tapable@1.1.0': {} '@rspack/plugin-react-refresh@1.6.2(react-refresh@0.18.0)': @@ -8818,6 +9228,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@swc/plugin-loadable-components@11.8.0': + dependencies: + '@swc/counter': 0.1.3 + '@swc/plugin-styled-components@12.8.0': dependencies: '@swc/counter': 0.1.3 @@ -8885,6 +9299,10 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/loadable__component@5.13.10': + dependencies: + '@types/react': 18.3.28 + '@types/node@24.12.2': dependencies: undici-types: 7.16.0 @@ -8897,6 +9315,10 @@ snapshots: dependencies: '@types/react': 18.3.28 + '@types/react-helmet@6.1.11': + dependencies: + '@types/react': 18.3.28 + '@types/react@18.3.28': dependencies: '@types/prop-types': 15.7.15 @@ -9653,6 +10075,10 @@ snapshots: convert-source-map@2.0.0: {} + cookie@0.7.2: {} + + cookie@1.1.1: {} + copy-webpack-plugin@11.0.0(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)): dependencies: fast-glob: 3.3.3 @@ -10015,6 +10441,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -10505,6 +10933,10 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 @@ -10537,7 +10969,7 @@ snapshots: dependencies: void-elements: 3.1.0 - html-webpack-plugin@5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)): + html-webpack-plugin@5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -10545,7 +10977,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.2 optionalDependencies: - '@rspack/core': 1.7.11(@swc/helpers@0.5.21) + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) webpack: 5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5) htmlparser2@10.0.0: @@ -10611,6 +11043,8 @@ snapshots: cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} inflight@1.0.6: @@ -10629,6 +11063,10 @@ snapshots: '@formatjs/icu-messageformat-parser': 2.11.4 tslib: 2.8.1 + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -10697,6 +11135,8 @@ snapshots: isarray@2.0.5: {} + isbot@3.8.0: {} + isexe@2.0.0: {} isobject@3.0.1: {} @@ -10812,6 +11252,8 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash-es@4.18.1: {} + lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -11557,6 +11999,12 @@ snapshots: dependencies: asap: 2.0.6 + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -11682,6 +12130,16 @@ snapshots: '@babel/runtime': 7.29.2 react: 18.3.1 + react-fast-compare@3.2.2: {} + + react-helmet@6.1.0(react@18.3.1): + dependencies: + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-fast-compare: 3.2.2 + react-side-effect: 2.1.2(react@18.3.1) + react-i18next@15.7.4(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3): dependencies: '@babel/runtime': 7.29.2 @@ -11692,6 +12150,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) typescript: 5.9.3 + react-is@16.13.1: {} + + react-is@18.3.1: {} + react-refresh@0.14.2: {} react-refresh@0.18.0: {} @@ -11708,6 +12170,24 @@ snapshots: '@remix-run/router': 1.23.2 react: 18.3.1 + react-router@7.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + cookie: 1.1.1 + react: 18.3.1 + set-cookie-parser: 2.7.2 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + + react-server-dom-rspack@0.0.1-beta.1(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-side-effect@2.1.2(react@18.3.1): + dependencies: + react: 18.3.1 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -11851,11 +12331,11 @@ snapshots: rslog@1.3.2: {} - rspack-manifest-plugin@5.0.3(@rspack/core@1.7.11(@swc/helpers@0.5.21)): + rspack-manifest-plugin@5.0.3(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21)): dependencies: '@rspack/lite-tapable': 1.1.0 optionalDependencies: - '@rspack/core': 1.7.11(@swc/helpers@0.5.21) + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) run-parallel@1.2.0: dependencies: @@ -12015,6 +12495,8 @@ snapshots: dependencies: randombytes: 2.1.0 + set-cookie-parser@2.7.2: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -12306,7 +12788,7 @@ snapshots: dependencies: typescript: 5.9.3 - ts-checker-rspack-plugin@1.3.0(@rspack/core@1.7.11(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3): + ts-checker-rspack-plugin@1.3.0(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3): dependencies: '@rspack/lite-tapable': 1.1.0 chokidar: 3.6.0 @@ -12314,7 +12796,7 @@ snapshots: picocolors: 1.1.1 typescript: 5.9.3 optionalDependencies: - '@rspack/core': 1.7.11(@swc/helpers@0.5.21) + '@rspack/core': 2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21) transitivePeerDependencies: - tslib @@ -12533,12 +13015,12 @@ snapshots: webpack-sources@3.3.4: {} - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)): dependencies: typed-assert: 1.0.9 webpack: 5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5) optionalDependencies: - html-webpack-plugin: 5.6.6(@rspack/core@1.7.11(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) + html-webpack-plugin: 5.6.6(@rspack/core@2.0.0-rc.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@module-federation/runtime-tools@2.3.2(node-fetch@3.3.0))(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5)) webpack@5.106.1(@swc/core@1.15.8(@swc/helpers@0.5.21))(esbuild@0.25.5): dependencies: diff --git a/src/routes/[lang]/layout.tsx b/src/routes/[lang]/layout.tsx new file mode 100644 index 00000000..69a41d1b --- /dev/null +++ b/src/routes/[lang]/layout.tsx @@ -0,0 +1,48 @@ +import { useState, useEffect, type ReactNode } from "react"; +import { useParams, useNavigate } from "@modern-js/runtime/router"; +import { isLanguage, type Language } from "@/i18n/resolver"; +import { createI18nInstance } from "@/i18n/config"; +import { I18nProvider } from "@/i18n/provider"; +import type i18next from "i18next"; + +/** + * Locale-scoped layout. Validates the `lang` URL segment against the + * 9 supported languages, creates a request-scoped i18n instance, and + * wraps children with ``. + * + * Invalid `lang` values redirect to `/ru/` (default locale). + */ +export default function LangLayout({ children }: { children: ReactNode }): JSX.Element | null { + const params = useParams<{ lang: string }>(); + const navigate = useNavigate(); + const lang = params.lang ?? ""; + + const [i18n, setI18n] = useState(null); + const [validLang, setValidLang] = useState(null); + + useEffect(() => { + if (!isLanguage(lang)) { + void navigate("/ru/", { replace: true }); + return; + } + + setValidLang(lang); + + let cancelled = false; + void createI18nInstance({ locale: lang }).then((instance) => { + if (!cancelled) { + setI18n(instance); + } + }); + + return () => { + cancelled = true; + }; + }, [lang, navigate]); + + if (!validLang || !i18n) { + return null; + } + + return {children}; +} diff --git a/src/routes/layout.tsx b/src/routes/layout.tsx index 2b0b7b6f..281c8e25 100644 --- a/src/routes/layout.tsx +++ b/src/routes/layout.tsx @@ -1,5 +1,32 @@ import type { ReactNode } from "react"; +import { ErrorBoundary } from "@/ui/errors/ErrorBoundary"; +import { LoggerProvider } from "@/observability/logger/provider"; +import { createRootLogger } from "@/observability/logger/root"; +import { ApiClientProvider } from "@/shared/api/provider"; +import { ApiClient } from "@/shared/api/client"; +const logger = createRootLogger(); + +const apiClient = new ApiClient({ + baseUrl: process.env["API_BASE_URL"] ?? "/api", + locale: "ru", + logger, +}); + +/** + * Root layout — wraps the entire app with global providers. + * Provider order (outermost to innermost): + * LoggerProvider > ApiClientProvider > ErrorBoundary > children + * + * The locale-specific I18nProvider lives in src/routes/[lang]/layout.tsx + * so that each language segment gets its own i18n instance. + */ export default function RootLayout({ children }: { children: ReactNode }): JSX.Element { - return <>{children}; + return ( + + + {children} + + + ); }