feat(portal-shell): integrate next-intl + merge messages from teacher-portal (P1-4)

- Add next-intl v4.13.2 with cookie-based locale (no i18n routing)
- Create src/i18n/request.ts reading NEXT_LOCALE cookie
- Merge zh-CN/en messages from teacher-portal + add shell.dev.templates namespace
- Wrap next.config.js with withNextIntl plugin (Turbopack resolveAlias)
- Refactor RootLayout to async + NextIntlClientProvider + getLocale/getMessages
- Replace ThemeI18nProvider with ThemeProvider (theme-only, i18n removed)
- Remove locale/setLocale from PluginStore
- Rework locale-switcher to useLocale/useTranslations + router.refresh
- Update dev/templates page to use getTranslations (Server Component)
- Fix WorkbenchPageShell test (loading prop + center instead of children)

Verified: locale switch via NEXT_LOCALE cookie changes <html lang> and messages
zh-CN: 保存/取消/切换侧栏 | en: Save/Cancel/Toggle sidebar
typecheck 0 errors | lint 0 errors 2 warnings (generated) | vitest 231 passed
This commit is contained in:
SpecialX
2026-07-22 13:40:44 +08:00
parent 994441c2dc
commit da05c9107a
17 changed files with 1040 additions and 158 deletions

479
pnpm-lock.yaml generated
View File

@@ -372,6 +372,9 @@ importers:
next:
specifier: ^16.0.10
version: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
next-intl:
specifier: ^4.13.2
version: 4.13.2(@swc/helpers@0.5.23)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.6.2)
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
@@ -402,7 +405,7 @@ importers:
devDependencies:
'@graphql-codegen/cli':
specifier: ^5.0.0
version: 5.0.0(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)
version: 5.0.0(@parcel/watcher@2.6.0)(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)
'@graphql-codegen/typescript':
specifier: ^4.0.0
version: 4.1.1(graphql@16.14.2)
@@ -526,7 +529,7 @@ importers:
version: 9.39.5
'@graphql-codegen/cli':
specifier: ^5.0.0
version: 5.0.0(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)
version: 5.0.0(@parcel/watcher@2.6.0)(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)
'@graphql-codegen/client-preset':
specifier: ^4.5.0
version: 4.5.0(graphql@16.14.2)
@@ -902,7 +905,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(esbuild@0.19.7)(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)
'@nestjs/schematics':
specifier: ^10.2.0
version: 10.2.0(chokidar@3.6.0)(typescript@5.6.2)
@@ -1020,7 +1023,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -1129,7 +1132,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -1226,7 +1229,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@nestjs/schematics':
specifier: ^10.2.0
version: 10.2.0(chokidar@3.6.0)(typescript@5.6.2)
@@ -1341,7 +1344,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/bcrypt':
specifier: ^5.0.0
version: 5.0.2
@@ -1456,7 +1459,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -1550,7 +1553,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -1650,7 +1653,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -1735,7 +1738,7 @@ importers:
devDependencies:
'@nestjs/cli':
specifier: ^10.4.0
version: 10.4.0(lightningcss@1.32.0)
version: 10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
'@types/express':
specifier: ^4.17.0
version: 4.17.25
@@ -2680,15 +2683,27 @@ packages:
'@formatjs/fast-memoize@2.2.0':
resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==}
'@formatjs/fast-memoize@3.1.7':
resolution: {integrity: sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==}
'@formatjs/icu-messageformat-parser@2.7.8':
resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==}
'@formatjs/icu-messageformat-parser@3.5.15':
resolution: {integrity: sha512-5o4grXKotAB3JqQuisLApHG43g17N+paoRTa92Jiz35Zvfemq0cVf4EDvuxyHAzmsJji7igaEowicLO/VmfJ8Q==}
'@formatjs/icu-skeleton-parser@1.8.2':
resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==}
'@formatjs/icu-skeleton-parser@2.1.11':
resolution: {integrity: sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA==}
'@formatjs/intl-localematcher@0.5.4':
resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==}
'@formatjs/intl-localematcher@0.8.13':
resolution: {integrity: sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==}
'@graphql-codegen/add@5.0.3':
resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==}
peerDependencies:
@@ -5158,6 +5173,88 @@ packages:
'@paralleldrive/cuid2@2.2.2':
resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==}
'@parcel/watcher-android-arm64@2.6.0':
resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [android]
'@parcel/watcher-darwin-arm64@2.6.0':
resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [darwin]
'@parcel/watcher-darwin-x64@2.6.0':
resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [darwin]
'@parcel/watcher-freebsd-x64@2.6.0':
resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [freebsd]
'@parcel/watcher-linux-arm-glibc@2.6.0':
resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm-musl@2.6.0':
resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-arm64-glibc@2.6.0':
resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm64-musl@2.6.0':
resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-x64-glibc@2.6.0':
resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-x64-musl@2.6.0':
resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@parcel/watcher-win32-arm64@2.6.0':
resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [win32]
'@parcel/watcher-win32-x64@2.6.0':
resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [win32]
'@parcel/watcher@2.6.0':
resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==}
engines: {node: '>= 10.0.0'}
'@peculiar/asn1-schema@2.8.0':
resolution: {integrity: sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==}
@@ -5861,6 +5958,9 @@ packages:
'@swc/helpers':
optional: true
'@schummar/icu-type-parser@1.21.5':
resolution: {integrity: sha512-bXHSaW5jRTmke9Vd0h5P7BtWZG9Znqb8gSDxZnxaGSJnGwPLDPfS+3g0BKzeWqzgZPsIVZkM7m2tbo18cm5HBw==}
'@sentry-internal/browser-utils@8.55.2':
resolution: {integrity: sha512-GnKod+gL/Y+1FUM/RGV8q6le1CoyiGbT40MitEK7eVwWe+bfTRq1gN7ioupyHFMUg1RlQkDQ4/sENmio/uow5A==}
engines: {node: '>=14.18'}
@@ -5983,6 +6083,93 @@ packages:
'@sqltools/formatter@1.2.5':
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
'@swc/core-darwin-arm64@1.15.46':
resolution: {integrity: sha512-IsISIT22EfktVJrlvIpnAxG2u/A9aob9l99HMlx80x72WlFmFPk1V3UhkEzx86eJP8hw049KTFv/RISho2cq2Q==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
'@swc/core-darwin-x64@1.15.46':
resolution: {integrity: sha512-4Tj4ppVIPCmUMpmGFiGtyEriwLyJ+yi/US4WfBrP/ok8COGddDZXLEzQETnKyK46mjvr1v0jevrS23zjoff7vA==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
'@swc/core-linux-arm-gnueabihf@1.15.46':
resolution: {integrity: sha512-i8tUGnNjyOgMmfmgFSg4aeJLQoFyfpIHK5FjpQAwpRyQIqEUB2w1e8zIDQzY1WhOxx8NoS1S5iUL813Un4Sf5A==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
'@swc/core-linux-arm64-gnu@1.15.46':
resolution: {integrity: sha512-c0OnhqzdhfOvv6qhNCcByepB+sNYOGZyhtr2Qa6ZCHvAWTYhSRw4j/u92Stue9PbZ/6q74b9nHzi76+kVzqQHQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@swc/core-linux-arm64-musl@1.15.46':
resolution: {integrity: sha512-imyRpNEcUzFQFV2LE4jL68ErvmKEuZCbvZru77iQREunJ+bR4i658cupTgtG1mLYM3F1Tzy3Sb9xYb02KghWTg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@swc/core-linux-ppc64-gnu@1.15.46':
resolution: {integrity: sha512-ctEfcl/HcUeomK33cbySiHZm98GEDIxTm1EkpBsYCiHxElYBzvTXVeuQT2YwbUXn9XCrjiw4ipyUNk33k26qRg==}
engines: {node: '>=10'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@swc/core-linux-s390x-gnu@1.15.46':
resolution: {integrity: sha512-DxlMdnt84TtRVTv7WL/thWyz9+QU8QZNNoAP9rrk0P68LziuhfePp8MjQ44zIprpTHTsEwyziIuGUUN5iSC1bQ==}
engines: {node: '>=10'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@swc/core-linux-x64-gnu@1.15.46':
resolution: {integrity: sha512-SKxI7J6t90XPl8hRUqtJi9NfGdunN/E/vZMc7Bc0figeRdOPDBT+Tm8g7cx9xM0T0mewh2l+8dewa3Am27/P+A==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@swc/core-linux-x64-musl@1.15.46':
resolution: {integrity: sha512-qj9T6B7bosI0VEsrWOVXZN1OXxS8Tp63ywyrLxNdOycnUtLdkgYcoBsN5y8ImnDDsnwrEWZOy1e+J4xSe7mA3Q==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@swc/core-win32-arm64-msvc@1.15.46':
resolution: {integrity: sha512-8p7l4c3LU+eA5g9Et1JPhNeMC1oQwXTGU+uah8DPIBX7YXzqswvaBtyKVmXefVGi/DJU1x3YJsc3mbAp9aWzSQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
'@swc/core-win32-ia32-msvc@1.15.46':
resolution: {integrity: sha512-tUEnfr3Bn9u6FOjUb3PN9p+09qZC2j+wNDLKHzXXZn22rqGcUqR/ohCRSS+nG9B9+X+U+3FewNEHJkTmdIvMjQ==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
'@swc/core-win32-x64-msvc@1.15.46':
resolution: {integrity: sha512-Vux7UDzBJYQggSuPfcl2w9iu+IJpgpRCxHzgCaVkELnAXAE4XZMOTX9HNcaNiwfeIDqdu2rkr69RuDm6wY8neA==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
'@swc/core@1.15.46':
resolution: {integrity: sha512-Ri3em2mBpq3h2zSPliCYl63otDGqek8PPEfv2nWgRQEbZ/VBCNyypVTVQ6cEbTCXBhy+WE2T3fQb08moIyuYaw==}
engines: {node: '>=10'}
peerDependencies:
'@swc/helpers': '>=0.5.17'
peerDependenciesMeta:
'@swc/helpers':
optional: true
'@swc/counter@0.1.3':
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
@@ -5995,6 +6182,9 @@ packages:
'@swc/helpers@0.5.5':
resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
'@swc/types@0.1.27':
resolution: {integrity: sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==}
'@tailwindcss/node@4.3.2':
resolution: {integrity: sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==}
@@ -8547,6 +8737,9 @@ packages:
resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==}
engines: {node: '>=0.10.0'}
icu-minify@4.13.2:
resolution: {integrity: sha512-XhYQTEnBXBCyF6ERiwItFweoOXDUciujaGjIWCA7RhOCEPDfhVSTtuwfRq6HdVk7tKnYJh+yaurP96zGnaKsPg==}
idb-keyval@6.3.0:
resolution: {integrity: sha512-um+2dgAWmYsu615EXpWVwSmapJhON0G43t3Ka/EVaohzPQXSMqKEqeDK/oIW3Ow+BXaF2PvSc+oBTFp793A5Ow==}
@@ -8653,6 +8846,9 @@ packages:
intl-messageformat@10.5.14:
resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==}
intl-messageformat@11.2.12:
resolution: {integrity: sha512-KW70Xxfcvy7vV3qODfvShWkFDPMqKDAa4N+hSyVBWGNtVhTUFYaqlD/l88DaYPKiVcPP4rPQ3qnH7i5K82Mg7g==}
invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
@@ -9552,6 +9748,10 @@ packages:
resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==}
engines: {node: '>= 0.6'}
negotiator@1.0.0:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: '>= 0.6'}
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
@@ -9564,12 +9764,25 @@ packages:
neo4j-driver@5.28.3:
resolution: {integrity: sha512-k7c0wEh3HoONv1v5AyLp9/BDAbYHJhz2TZvzWstSEU3g3suQcXmKEaYBfrK2UMzxcy3bCT0DrnfRbzsOW5G/Ag==}
next-intl-swc-plugin-extractor@4.13.2:
resolution: {integrity: sha512-O30N/Y4ifzRe5Sz80jD1Qkg4VY6Zfef4SbHNNE166QkHswBf3/Kygpdd1X52sUUwTCk6uvdisO8ybfAN/VYJHQ==}
next-intl@3.20.0:
resolution: {integrity: sha512-0bCZcc38HfAZk/T+PNNcnJZknC+caS5rBK+WYRd1HsOL5O6puEu2H3kya8oT9s8piHjrTf7P0UHeahOFleOnrw==}
peerDependencies:
next: ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
next-intl@4.13.2:
resolution: {integrity: sha512-iCYycEP7/PE+1ue4MWBuz1qns6ESA+SGzuXxNMNN1qiYUh2fLhJPiZvHW1zZC7zMTn44aJUglOVZxUb1+hUz6g==}
peerDependencies:
next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
next-themes@0.4.6:
resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==}
peerDependencies:
@@ -9628,6 +9841,9 @@ packages:
node-addon-api@5.0.0:
resolution: {integrity: sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==}
node-addon-api@7.1.1:
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
@@ -9969,6 +10185,9 @@ packages:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
po-parser@2.1.1:
resolution: {integrity: sha512-ECF4zHLbUItpUgE3OTtLKlPjeBN+fKEczj2zYjDfCGOzicNs0GK3Vg2IoAYwx7LH/XYw43fZQP6xnZ4TkNxSLQ==}
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
@@ -11463,6 +11682,11 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
use-intl@4.13.2:
resolution: {integrity: sha512-p6/gCromeBoec+wEuOIkPaytH77RBjW94KWv8MRsNrbI4UOx8QgwNhgl9lbPOKM/b0dpanLhCYztLEH5yQUjtg==}
peerDependencies:
react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
use-sidecar@1.1.3:
resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
engines: {node: '>=10'}
@@ -12775,28 +12999,40 @@ snapshots:
dependencies:
tslib: 2.8.1
'@formatjs/fast-memoize@3.1.7': {}
'@formatjs/icu-messageformat-parser@2.7.8':
dependencies:
'@formatjs/ecma402-abstract': 2.0.0
'@formatjs/icu-skeleton-parser': 1.8.2
tslib: 2.8.1
'@formatjs/icu-messageformat-parser@3.5.15':
dependencies:
'@formatjs/icu-skeleton-parser': 2.1.11
'@formatjs/icu-skeleton-parser@1.8.2':
dependencies:
'@formatjs/ecma402-abstract': 2.0.0
tslib: 2.8.1
'@formatjs/icu-skeleton-parser@2.1.11': {}
'@formatjs/intl-localematcher@0.5.4':
dependencies:
tslib: 2.8.1
'@formatjs/intl-localematcher@0.8.13':
dependencies:
'@formatjs/fast-memoize': 3.1.7
'@graphql-codegen/add@5.0.3(graphql@16.14.2)':
dependencies:
'@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.14.2)
graphql: 16.14.2
tslib: 2.6.3
'@graphql-codegen/cli@5.0.0(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)':
'@graphql-codegen/cli@5.0.0(@parcel/watcher@2.6.0)(@types/node@22.20.1)(encoding@0.1.13)(graphql@16.14.2)':
dependencies:
'@babel/generator': 7.29.7
'@babel/template': 7.29.7
@@ -12833,6 +13069,8 @@ snapshots:
tslib: 2.8.1
yaml: 2.9.0
yargs: 17.7.3
optionalDependencies:
'@parcel/watcher': 2.6.0
transitivePeerDependencies:
- '@fastify/websocket'
- '@types/node'
@@ -13924,7 +14162,7 @@ snapshots:
optionalDependencies:
'@apollo/subgraph': 2.14.2(graphql@16.14.2)
'@nestjs/cli@10.4.0(esbuild@0.19.7)(lightningcss@1.32.0)':
'@nestjs/cli@10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)':
dependencies:
'@angular-devkit/core': 17.3.8(chokidar@3.6.0)
'@angular-devkit/schematics': 17.3.8(chokidar@3.6.0)
@@ -13934,7 +14172,7 @@ snapshots:
chokidar: 3.6.0
cli-table3: 0.6.5
commander: 4.1.1
fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(esbuild@0.19.7)(lightningcss@1.32.0))
fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0))
glob: 10.4.2
inquirer: 8.2.6
node-emoji: 1.11.0
@@ -13944,8 +14182,10 @@ snapshots:
tsconfig-paths: 4.2.0
tsconfig-paths-webpack-plugin: 4.1.0
typescript: 5.3.3
webpack: 5.92.1(esbuild@0.19.7)(lightningcss@1.32.0)
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)
webpack-node-externals: 3.0.0
optionalDependencies:
'@swc/core': 1.15.46(@swc/helpers@0.5.23)
transitivePeerDependencies:
- '@minify-html/node'
- '@swc/css'
@@ -13960,7 +14200,7 @@ snapshots:
- uglify-js
- webpack-cli
'@nestjs/cli@10.4.0(lightningcss@1.32.0)':
'@nestjs/cli@10.4.0(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)':
dependencies:
'@angular-devkit/core': 17.3.8(chokidar@3.6.0)
'@angular-devkit/schematics': 17.3.8(chokidar@3.6.0)
@@ -13970,7 +14210,7 @@ snapshots:
chokidar: 3.6.0
cli-table3: 0.6.5
commander: 4.1.1
fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(lightningcss@1.32.0))
fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0))
glob: 10.4.2
inquirer: 8.2.6
node-emoji: 1.11.0
@@ -13980,8 +14220,10 @@ snapshots:
tsconfig-paths: 4.2.0
tsconfig-paths-webpack-plugin: 4.1.0
typescript: 5.3.3
webpack: 5.92.1(lightningcss@1.32.0)
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
webpack-node-externals: 3.0.0
optionalDependencies:
'@swc/core': 1.15.46(@swc/helpers@0.5.23)
transitivePeerDependencies:
- '@minify-html/node'
- '@swc/css'
@@ -16130,6 +16372,62 @@ snapshots:
dependencies:
'@noble/hashes': 1.1.5
'@parcel/watcher-android-arm64@2.6.0':
optional: true
'@parcel/watcher-darwin-arm64@2.6.0':
optional: true
'@parcel/watcher-darwin-x64@2.6.0':
optional: true
'@parcel/watcher-freebsd-x64@2.6.0':
optional: true
'@parcel/watcher-linux-arm-glibc@2.6.0':
optional: true
'@parcel/watcher-linux-arm-musl@2.6.0':
optional: true
'@parcel/watcher-linux-arm64-glibc@2.6.0':
optional: true
'@parcel/watcher-linux-arm64-musl@2.6.0':
optional: true
'@parcel/watcher-linux-x64-glibc@2.6.0':
optional: true
'@parcel/watcher-linux-x64-musl@2.6.0':
optional: true
'@parcel/watcher-win32-arm64@2.6.0':
optional: true
'@parcel/watcher-win32-x64@2.6.0':
optional: true
'@parcel/watcher@2.6.0':
dependencies:
detect-libc: 2.1.2
is-glob: 4.0.3
node-addon-api: 7.1.1
picomatch: 4.0.5
optionalDependencies:
'@parcel/watcher-android-arm64': 2.6.0
'@parcel/watcher-darwin-arm64': 2.6.0
'@parcel/watcher-darwin-x64': 2.6.0
'@parcel/watcher-freebsd-x64': 2.6.0
'@parcel/watcher-linux-arm-glibc': 2.6.0
'@parcel/watcher-linux-arm-musl': 2.6.0
'@parcel/watcher-linux-arm64-glibc': 2.6.0
'@parcel/watcher-linux-arm64-musl': 2.6.0
'@parcel/watcher-linux-x64-glibc': 2.6.0
'@parcel/watcher-linux-x64-musl': 2.6.0
'@parcel/watcher-win32-arm64': 2.6.0
'@parcel/watcher-win32-x64': 2.6.0
'@peculiar/asn1-schema@2.8.0':
dependencies:
'@peculiar/utils': 2.0.3
@@ -16743,6 +17041,8 @@ snapshots:
'@module-federation/runtime-tools': 2.7.0
'@swc/helpers': 0.5.23
'@schummar/icu-type-parser@1.21.5': {}
'@sentry-internal/browser-utils@8.55.2':
dependencies:
'@sentry/core': 8.55.2
@@ -16970,6 +17270,61 @@ snapshots:
'@sqltools/formatter@1.2.5': {}
'@swc/core-darwin-arm64@1.15.46':
optional: true
'@swc/core-darwin-x64@1.15.46':
optional: true
'@swc/core-linux-arm-gnueabihf@1.15.46':
optional: true
'@swc/core-linux-arm64-gnu@1.15.46':
optional: true
'@swc/core-linux-arm64-musl@1.15.46':
optional: true
'@swc/core-linux-ppc64-gnu@1.15.46':
optional: true
'@swc/core-linux-s390x-gnu@1.15.46':
optional: true
'@swc/core-linux-x64-gnu@1.15.46':
optional: true
'@swc/core-linux-x64-musl@1.15.46':
optional: true
'@swc/core-win32-arm64-msvc@1.15.46':
optional: true
'@swc/core-win32-ia32-msvc@1.15.46':
optional: true
'@swc/core-win32-x64-msvc@1.15.46':
optional: true
'@swc/core@1.15.46(@swc/helpers@0.5.23)':
dependencies:
'@swc/counter': 0.1.3
'@swc/types': 0.1.27
optionalDependencies:
'@swc/core-darwin-arm64': 1.15.46
'@swc/core-darwin-x64': 1.15.46
'@swc/core-linux-arm-gnueabihf': 1.15.46
'@swc/core-linux-arm64-gnu': 1.15.46
'@swc/core-linux-arm64-musl': 1.15.46
'@swc/core-linux-ppc64-gnu': 1.15.46
'@swc/core-linux-s390x-gnu': 1.15.46
'@swc/core-linux-x64-gnu': 1.15.46
'@swc/core-linux-x64-musl': 1.15.46
'@swc/core-win32-arm64-msvc': 1.15.46
'@swc/core-win32-ia32-msvc': 1.15.46
'@swc/core-win32-x64-msvc': 1.15.46
'@swc/helpers': 0.5.23
'@swc/counter@0.1.3': {}
'@swc/helpers@0.5.15':
@@ -16985,6 +17340,10 @@ snapshots:
'@swc/counter': 0.1.3
tslib: 2.8.1
'@swc/types@0.1.27':
dependencies:
'@swc/counter': 0.1.3
'@tailwindcss/node@4.3.2':
dependencies:
'@jridgewell/remapping': 2.3.5
@@ -19452,7 +19811,7 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(esbuild@0.19.7)(lightningcss@1.32.0)):
fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)):
dependencies:
'@babel/code-frame': 7.29.7
chalk: 4.1.2
@@ -19467,9 +19826,9 @@ snapshots:
semver: 7.8.5
tapable: 2.3.3
typescript: 5.3.3
webpack: 5.92.1(esbuild@0.19.7)(lightningcss@1.32.0)
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)
fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(lightningcss@1.32.0)):
fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)):
dependencies:
'@babel/code-frame': 7.29.7
chalk: 4.1.2
@@ -19484,7 +19843,7 @@ snapshots:
semver: 7.8.5
tapable: 2.3.3
typescript: 5.3.3
webpack: 5.92.1(lightningcss@1.32.0)
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
form-data@4.0.6:
dependencies:
@@ -19926,6 +20285,10 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
icu-minify@4.13.2:
dependencies:
'@formatjs/icu-messageformat-parser': 3.5.15
idb-keyval@6.3.0: {}
ieee754@1.2.1: {}
@@ -20071,6 +20434,11 @@ snapshots:
'@formatjs/icu-messageformat-parser': 2.7.8
tslib: 2.8.1
intl-messageformat@11.2.12:
dependencies:
'@formatjs/fast-memoize': 3.1.7
'@formatjs/icu-messageformat-parser': 3.5.15
invariant@2.2.4:
dependencies:
loose-envify: 1.4.0
@@ -20908,6 +21276,8 @@ snapshots:
negotiator@0.6.4: {}
negotiator@1.0.0: {}
neo-async@2.6.2: {}
neo4j-driver-bolt-connection@5.28.3:
@@ -20924,6 +21294,8 @@ snapshots:
neo4j-driver-core: 5.28.3
rxjs: 7.8.2
next-intl-swc-plugin-extractor@4.13.2: {}
next-intl@3.20.0(next@14.2.35(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@18.3.0(react@18.3.0))(react@18.3.0))(react@18.3.0):
dependencies:
'@formatjs/intl-localematcher': 0.5.4
@@ -20932,6 +21304,23 @@ snapshots:
react: 18.3.0
use-intl: 3.20.0(react@18.3.0)
next-intl@4.13.2(@swc/helpers@0.5.23)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.6.2):
dependencies:
'@formatjs/intl-localematcher': 0.8.13
'@parcel/watcher': 2.6.0
'@swc/core': 1.15.46(@swc/helpers@0.5.23)
icu-minify: 4.13.2
negotiator: 1.0.0
next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
next-intl-swc-plugin-extractor: 4.13.2
po-parser: 2.1.1
react: 19.2.7
use-intl: 4.13.2(react@19.2.7)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- '@swc/helpers'
next-themes@0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
react: 19.2.7
@@ -21003,6 +21392,8 @@ snapshots:
node-addon-api@5.0.0: {}
node-addon-api@7.1.1: {}
node-domexception@1.0.0: {}
node-emoji@1.11.0:
@@ -21357,6 +21748,8 @@ snapshots:
pluralize@8.0.0: {}
po-parser@2.1.1: {}
possible-typed-array-names@1.1.0: {}
postcss-import@15.1.0(postcss@8.5.18):
@@ -22568,17 +22961,29 @@ snapshots:
- bare-abort-controller
- react-native-b4a
terser-webpack-plugin@5.6.1(esbuild@0.19.7)(lightningcss@1.32.0)(webpack@5.92.1(esbuild@0.19.7)(lightningcss@1.32.0)):
terser-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.4.5
schema-utils: 4.3.3
terser: 5.49.0
webpack: 5.92.1(esbuild@0.19.7)(lightningcss@1.32.0)
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)
optionalDependencies:
'@swc/core': 1.15.46(@swc/helpers@0.5.23)
esbuild: 0.19.7
lightningcss: 1.32.0
terser-webpack-plugin@5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.4.5
schema-utils: 4.3.3
terser: 5.49.0
webpack: 5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)
optionalDependencies:
'@swc/core': 1.15.46(@swc/helpers@0.5.23)
lightningcss: 1.32.0
terser-webpack-plugin@5.6.1(lightningcss@1.32.0)(postcss@8.5.18)(webpack@5.92.1(lightningcss@1.32.0)(postcss@8.5.18)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
@@ -22590,16 +22995,6 @@ snapshots:
lightningcss: 1.32.0
postcss: 8.5.18
terser-webpack-plugin@5.6.1(lightningcss@1.32.0)(webpack@5.92.1(lightningcss@1.32.0)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.4.5
schema-utils: 4.3.3
terser: 5.49.0
webpack: 5.92.1(lightningcss@1.32.0)
optionalDependencies:
lightningcss: 1.32.0
terser@5.49.0:
dependencies:
'@jridgewell/source-map': 0.3.11
@@ -22993,6 +23388,14 @@ snapshots:
intl-messageformat: 10.5.14
react: 18.3.0
use-intl@4.13.2(react@19.2.7):
dependencies:
'@formatjs/fast-memoize': 3.1.7
'@schummar/icu-type-parser': 1.21.5
icu-minify: 4.13.2
intl-messageformat: 11.2.12
react: 19.2.7
use-sidecar@1.1.3(@types/react@19.2.17)(react@19.2.7):
dependencies:
detect-node-es: 1.1.0
@@ -23166,7 +23569,7 @@ snapshots:
webpack-virtual-modules@0.5.0: {}
webpack@5.92.1(esbuild@0.19.7)(lightningcss@1.32.0):
webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0):
dependencies:
'@types/eslint-scope': 3.7.3
'@types/estree': 1.0.9
@@ -23189,7 +23592,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.3.3
terser-webpack-plugin: 5.6.1(esbuild@0.19.7)(lightningcss@1.32.0)(webpack@5.92.1(esbuild@0.19.7)(lightningcss@1.32.0))
terser-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(esbuild@0.19.7)(lightningcss@1.32.0))
watchpack: 2.5.2
webpack-sources: 3.5.1
transitivePeerDependencies:
@@ -23206,7 +23609,7 @@ snapshots:
- postcss
- uglify-js
webpack@5.92.1(lightningcss@1.32.0):
webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0):
dependencies:
'@types/eslint-scope': 3.7.3
'@types/estree': 1.0.9
@@ -23229,7 +23632,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.3.3
terser-webpack-plugin: 5.6.1(lightningcss@1.32.0)(webpack@5.92.1(lightningcss@1.32.0))
terser-webpack-plugin: 5.6.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0)(webpack@5.92.1(@swc/core@1.15.46(@swc/helpers@0.5.23))(lightningcss@1.32.0))
watchpack: 2.5.2
webpack-sources: 3.5.1
transitivePeerDependencies: