From d4ea4f0134998576b82e25933c1eebb93851194e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Oct 2026 20:34:11 +0000 Subject: [PATCH 1/2] chore(deps): update javascript dependencies --- .github/workflows/ci.yml | 14 +- .github/workflows/release-sdk-typescript.yml | 2 +- apps/contracts/package.json | 2 +- apps/package.json | 4 +- apps/pnpm-lock.yaml | 563 ++++++------------- apps/web/package.json | 8 +- sdk/typescript/package.json | 4 +- sdk/typescript/pnpm-lock.yaml | 96 ++-- website/package-lock.json | 34 +- website/package.json | 8 +- 10 files changed, 262 insertions(+), 473 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c218caf265..b31da6c011 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -207,7 +207,7 @@ jobs: # present or enabled on the runner. - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 @@ -316,7 +316,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 @@ -392,7 +392,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 @@ -455,7 +455,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 @@ -509,7 +509,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false # setup-node and setup-go include runner OS and architecture in their cache @@ -574,7 +574,7 @@ jobs: # present or enabled on the runner. - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 @@ -1805,7 +1805,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 diff --git a/.github/workflows/release-sdk-typescript.yml b/.github/workflows/release-sdk-typescript.yml index f8c0e75e04..17239b0ca7 100644 --- a/.github/workflows/release-sdk-typescript.yml +++ b/.github/workflows/release-sdk-typescript.yml @@ -38,7 +38,7 @@ jobs: - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 with: - version: 11.25.0 + version: 11.28.7 run_install: false - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 diff --git a/apps/contracts/package.json b/apps/contracts/package.json index a3f381ac3b..72a1a0eb4b 100644 --- a/apps/contracts/package.json +++ b/apps/contracts/package.json @@ -17,7 +17,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@tanstack/react-query": "5.104.4", + "@tanstack/react-query": "5.104.5", "zod": "4.6.7" }, "devDependencies": { diff --git a/apps/package.json b/apps/package.json index 9ac7846690..edffd7e5d5 100644 --- a/apps/package.json +++ b/apps/package.json @@ -7,7 +7,7 @@ "engines": { "node": ">=26 <27" }, - "packageManager": "pnpm@12.4.2", + "packageManager": "pnpm@12.15.0", "scripts": { "build": "pnpm generate && pnpm -r --if-present run build", "check": "biome check . && pnpm typecheck && pnpm test && pnpm generated:check", @@ -20,7 +20,7 @@ "typecheck": "pnpm -r --if-present run typecheck" }, "devDependencies": { - "@biomejs/biome": "2.5.15", + "@biomejs/biome": "2.6.2", "@playwright/test": "1.64.1", "@types/node": "26.6.5", "typescript": "6.0.3" diff --git a/apps/pnpm-lock.yaml b/apps/pnpm-lock.yaml index 1fbc6c6005..61eae625f7 100644 --- a/apps/pnpm-lock.yaml +++ b/apps/pnpm-lock.yaml @@ -7,153 +7,153 @@ importers: configDependencies: {} packageManagerDependencies: pnpm: - specifier: 12.4.2 - version: 12.4.2 + specifier: 12.15.0 + version: 12.15.0 packages: - '@pnpm/exe.android-arm64@12.4.2': - resolution: {integrity: sha512-E255MbcQ0V1577M2BV0ajWuP7KmTPYA0jqZnk3rK6Lq3kTvZWulMMb7iqRmnLsQbyWTkMEB2CfyM70loVDA8xg==} + '@pnpm/exe.android-arm64@12.15.0': + resolution: {integrity: sha512-eVCqmscY70LGvgRzu3mi8IBWBFGix+a6mNZoWmXxESsBdeiKEF9xQSuaeel10yn+zI7TXy2jlI63vFLzETk+aQ==} cpu: [arm64] os: [android] - '@pnpm/exe.android-x64@12.4.2': - resolution: {integrity: sha512-J1pSeCUwuKxMG70ZzpWn8JzElxiEa8NN/3N0SlZRtU2xbztChaJCKF3HaBNIj9yPfeofWzJo/lwNvDDjraQuZw==} + '@pnpm/exe.android-x64@12.15.0': + resolution: {integrity: sha512-Gx/WbkFcdUFUg8g8AShezcS9EiQxfYvdAm2hfKLO8sfJmJvKOCt5fzlgHWDzmGhoclibgW+tUGZ/KF4F4wOTCA==} cpu: [x64] os: [android] - '@pnpm/exe.darwin-arm64@12.4.2': - resolution: {integrity: sha512-A0WDo8iErfZBXgrLseQxw8i8Y9ctUpOEl/Uu+cubnTzpD8tT9ykIB548L8YTM2WD4OS+ZOHSxy8aGZcvKq8PaQ==} + '@pnpm/exe.darwin-arm64@12.15.0': + resolution: {integrity: sha512-N0ZykiDWCvqSBJvt71j7cSoBR993FqvYZFtmpCtqvW3pguiI+NAgraLPA5OTwu5mV+/d8hYpVcPktJA3xFDLtA==} cpu: [arm64] os: [darwin] - '@pnpm/exe.darwin-x64@12.4.2': - resolution: {integrity: sha512-MSgJdovBWHcb5DEOvfPH9yNi/T5O1Xa4ess+E1ESGo/5yuty7S4JoiIjami+fsNXfnoQMlwsMUqYU4zAvBcNCw==} + '@pnpm/exe.darwin-x64@12.15.0': + resolution: {integrity: sha512-7Ntr2HlBUxzwWOg7NwDxCbRW/3vXuqKO+hcXm+w3SBi9rrHY53li1wLqWVT7Gjxd+lVEHM1QJZo6WJEGFU8C6A==} cpu: [x64] os: [darwin] - '@pnpm/exe.freebsd-x64@12.4.2': - resolution: {integrity: sha512-h2YumlQSNvgbRPv+RXwABohX65f9bOBZn+jMIt7bFDISZPCzQ+Nvpt6Awbp4ip5PwQgYxbu5iREJ1fHE39Fm8A==} + '@pnpm/exe.freebsd-x64@12.15.0': + resolution: {integrity: sha512-btOiyL7fL7W4uQGH0aqFai2TNC3IoKcZ7gNHBVbEFZt2dWrnrD0SufL3iGs3fLlmb4OtuU35uf4Zpr9V9Jh9mA==} cpu: [x64] os: [freebsd] - '@pnpm/exe.linux-arm64-musl@12.4.2': - resolution: {integrity: sha512-LwSEtSEDTv6S51YLs3YvSkPyun/QmfMic1UGICUkPWFu6ByP43RdMlkKvmVkfGhAYCpnxO057vrmyJqtfZrPCA==} + '@pnpm/exe.linux-arm64-musl@12.15.0': + resolution: {integrity: sha512-pNC38k+O+90FOjbPNSnw0E7apq1PKTmz3fFe1amn+lys/U5kL++uzir8bRiho8ONcyA3d9EU7wdqcY0DKkj+JA==} cpu: [arm64] os: [linux] libc: [musl] - '@pnpm/exe.linux-arm64@12.4.2': - resolution: {integrity: sha512-2dSiDXyhx+RTHsewxex8f/jVjqQXWJ2oow4kCVHEWdZKeBpgMxvZ6fHkTAUBJXgqhbKIDHvuNlZBP7gJfUWL5A==} + '@pnpm/exe.linux-arm64@12.15.0': + resolution: {integrity: sha512-qML/8aCXslh8td/w4U+HJNqUcZ2+m6EfTbWScIzZRmyPsRFN+xB4LP1U/hymxc1iSJiKtG56HJx2fvUErWFIGw==} cpu: [arm64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-ppc64@12.4.2': - resolution: {integrity: sha512-8Itc+jQk+MTz04LS9D1RcH+VctAWmzM4l1cJQ+Sx7pAJNo7EKHdRMbC0Tok1jyQ7eEHNJZD5EleYneZqWfZM+g==} + '@pnpm/exe.linux-ppc64@12.15.0': + resolution: {integrity: sha512-tjRDUUl7RCJ6T/6eoNPxOqkwU4Mzi5RtTXmSAxujyz37OTwwsMU7Ps087Zk4gHcUvRSeyF40ZFsew3vtE+nmUA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-riscv64@12.4.2': - resolution: {integrity: sha512-hleOeqhTVpH+z9RVMGnxvU4ZnrkBUClWjCbHD9u6kwyqhGSpevoU1wTGish+CBRhmIgMAy9pAfFpqhbAKOKNfw==} + '@pnpm/exe.linux-riscv64@12.15.0': + resolution: {integrity: sha512-bF1uBWEfbwaeryz6lIiaJ8AWD082otZfvzGX5l+6LZRpRwUEpJHUsJrORaYP5/cNMv5ZR2p6TvvcJcQzwtDzmw==} cpu: [riscv64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-s390x@12.4.2': - resolution: {integrity: sha512-LAsQRRdP9aToENR6dtcIJ9l+e1zMYOX0tQcLGpRyLPVBQcYRLlvAPcmDshsiIHQjp05SDa9FI0czX1ZQ1a7a/A==} + '@pnpm/exe.linux-s390x@12.15.0': + resolution: {integrity: sha512-zKMhIzsexYMToeLmqV5jPsvV/f9vwsJb2kUH2NFYzalbxImeBrlA4kL7GwF8gD4pagV6jYYcJb8RjbZIdjHptg==} cpu: [s390x] os: [linux] libc: [glibc] - '@pnpm/exe.linux-x64-musl@12.4.2': - resolution: {integrity: sha512-kzfzH2/0BWdTABK14Yj5a1xsdkTEQUp2eXEPNakaD9jKL025lq3hyaKHIz/gIZaPDMe/1bFFK/En4ztFlbBJxw==} + '@pnpm/exe.linux-x64-musl@12.15.0': + resolution: {integrity: sha512-A9J0Jg0Rdx+qQU4qXtwyST5tto9IOu1zi4fDk35nbc6DWahggbcKtFvZPKFwL2qgUXGXOX//hXv6z/sp6emO8A==} cpu: [x64] os: [linux] libc: [musl] - '@pnpm/exe.linux-x64@12.4.2': - resolution: {integrity: sha512-/pbt0UVTa8NMDhzOWLQRfZ6G9ROKXlJPZtx845BqyWfc7hCrWXhTLBd70yO2y8+E+IWN3oHM1s/JsIQNGk1yvg==} + '@pnpm/exe.linux-x64@12.15.0': + resolution: {integrity: sha512-yc+QlZR+9+nr29J4fRzhMoapgxTBDndq/+peyoq1XUufnQFnfbXUMFudDIKzHi545linGqmOmXfn0NoufNgcOg==} cpu: [x64] os: [linux] libc: [glibc] - '@pnpm/exe.win32-arm64@12.4.2': - resolution: {integrity: sha512-PsW19e4dAUNpZ0cS9flaxFuAmpt2dKlH/Vvi8TZ4qyJjjQzue/CEsWm+6wKVP4CJ7IT8RdL4qh+soOPWIgF2Zw==} + '@pnpm/exe.win32-arm64@12.15.0': + resolution: {integrity: sha512-fPXZxuY1VclkOga9bc53qNCXcegfeoBR8+Ue+AospDwKzuGGSHll0oDxkLfkmpjyRqpe7bH5DyQPYp/xSMaIVA==} cpu: [arm64] os: [win32] - '@pnpm/exe.win32-x64@12.4.2': - resolution: {integrity: sha512-+xGoeE0g55ztWvl8i5QqdmNfW3nIrTVcoQrNshEOwxthm9Ag48oXton3uxOA3/SANyz5AXexEjj2KO20NnOrEw==} + '@pnpm/exe.win32-x64@12.15.0': + resolution: {integrity: sha512-nrd+Tp1We1DGj4DGG5Bea9lZNh9y1PjlLBdEwdInS4D0h0UIDtM7JaGGGDJhNzIwcHASyihWI7HLV+dtG+fhYg==} cpu: [x64] os: [win32] - pnpm@12.4.2: - resolution: {integrity: sha512-CK3GYTGAJ1x8ntraOdzwjJxhrU5+rzMKTzRh8QKw+QdCNFTRF/mOctR/7wYWBwZE17/8lzpqV/UJCm18NosHyQ==} - engines: {node: '>=18.*'} + pnpm@12.15.0: + resolution: {integrity: sha512-s5UdbW/0qfE9x89WzSjSuOs328ycaOUuHhGRhz6p+CoBcoerULqtxczElPA2xnwOR+sTYIwvo29HcRth6hKOYQ==} + engines: {node: '>=18'} hasBin: true snapshots: - '@pnpm/exe.android-arm64@12.4.2': + '@pnpm/exe.android-arm64@12.15.0': optional: true - '@pnpm/exe.android-x64@12.4.2': + '@pnpm/exe.android-x64@12.15.0': optional: true - '@pnpm/exe.darwin-arm64@12.4.2': + '@pnpm/exe.darwin-arm64@12.15.0': optional: true - '@pnpm/exe.darwin-x64@12.4.2': + '@pnpm/exe.darwin-x64@12.15.0': optional: true - '@pnpm/exe.freebsd-x64@12.4.2': + '@pnpm/exe.freebsd-x64@12.15.0': optional: true - '@pnpm/exe.linux-arm64-musl@12.4.2': + '@pnpm/exe.linux-arm64-musl@12.15.0': optional: true - '@pnpm/exe.linux-arm64@12.4.2': + '@pnpm/exe.linux-arm64@12.15.0': optional: true - '@pnpm/exe.linux-ppc64@12.4.2': + '@pnpm/exe.linux-ppc64@12.15.0': optional: true - '@pnpm/exe.linux-riscv64@12.4.2': + '@pnpm/exe.linux-riscv64@12.15.0': optional: true - '@pnpm/exe.linux-s390x@12.4.2': + '@pnpm/exe.linux-s390x@12.15.0': optional: true - '@pnpm/exe.linux-x64-musl@12.4.2': + '@pnpm/exe.linux-x64-musl@12.15.0': optional: true - '@pnpm/exe.linux-x64@12.4.2': + '@pnpm/exe.linux-x64@12.15.0': optional: true - '@pnpm/exe.win32-arm64@12.4.2': + '@pnpm/exe.win32-arm64@12.15.0': optional: true - '@pnpm/exe.win32-x64@12.4.2': + '@pnpm/exe.win32-x64@12.15.0': optional: true - pnpm@12.4.2: + pnpm@12.15.0: optionalDependencies: - '@pnpm/exe.android-arm64': 12.4.2 - '@pnpm/exe.android-x64': 12.4.2 - '@pnpm/exe.darwin-arm64': 12.4.2 - '@pnpm/exe.darwin-x64': 12.4.2 - '@pnpm/exe.freebsd-x64': 12.4.2 - '@pnpm/exe.linux-arm64': 12.4.2 - '@pnpm/exe.linux-arm64-musl': 12.4.2 - '@pnpm/exe.linux-ppc64': 12.4.2 - '@pnpm/exe.linux-riscv64': 12.4.2 - '@pnpm/exe.linux-s390x': 12.4.2 - '@pnpm/exe.linux-x64': 12.4.2 - '@pnpm/exe.linux-x64-musl': 12.4.2 - '@pnpm/exe.win32-arm64': 12.4.2 - '@pnpm/exe.win32-x64': 12.4.2 + '@pnpm/exe.android-arm64': 12.15.0 + '@pnpm/exe.android-x64': 12.15.0 + '@pnpm/exe.darwin-arm64': 12.15.0 + '@pnpm/exe.darwin-x64': 12.15.0 + '@pnpm/exe.freebsd-x64': 12.15.0 + '@pnpm/exe.linux-arm64': 12.15.0 + '@pnpm/exe.linux-arm64-musl': 12.15.0 + '@pnpm/exe.linux-ppc64': 12.15.0 + '@pnpm/exe.linux-riscv64': 12.15.0 + '@pnpm/exe.linux-s390x': 12.15.0 + '@pnpm/exe.linux-x64': 12.15.0 + '@pnpm/exe.linux-x64-musl': 12.15.0 + '@pnpm/exe.win32-arm64': 12.15.0 + '@pnpm/exe.win32-x64': 12.15.0 --- lockfileVersion: '9.0' @@ -167,8 +167,8 @@ importers: .: devDependencies: '@biomejs/biome': - specifier: 2.5.15 - version: 2.5.15 + specifier: 2.6.2 + version: 2.6.2 '@playwright/test': specifier: 1.64.1 version: 1.64.1 @@ -182,8 +182,8 @@ importers: contracts: dependencies: '@tanstack/react-query': - specifier: 5.104.4 - version: 5.104.4(@types/react@19.3.0)(react@19.3.1) + specifier: 5.104.5 + version: 5.104.5(@types/react@19.3.0)(react@19.3.1) zod: specifier: 4.6.7 version: 4.6.7 @@ -233,7 +233,7 @@ importers: version: 6.0.3 vitest: specifier: 5.0.5 - version: 5.0.5(@types/node@26.6.5)(happy-dom@20.14.5)(jsdom@30.1.1)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) + version: 5.0.5(@types/node@26.6.5)(happy-dom@20.14.6)(jsdom@30.1.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) web: dependencies: @@ -304,8 +304,8 @@ importers: specifier: 1.4.1 version: 1.4.1(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@tanstack/react-query': - specifier: 5.104.4 - version: 5.104.4(@types/react@19.3.0)(react@19.3.1) + specifier: 5.104.5 + version: 5.104.5(@types/react@19.3.0)(react@19.3.1) '@tanstack/react-router': specifier: 1.170.45 version: 1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1) @@ -319,11 +319,11 @@ importers: specifier: 1.1.1 version: 1.1.1(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) cronstrue: - specifier: 3.33.0 - version: 3.33.0 + specifier: 3.38.0 + version: 3.38.0 lucide-react: - specifier: 1.59.0 - version: 1.59.0(@types/react@19.3.0)(react@19.3.1) + specifier: 1.61.0 + version: 1.61.0(@types/react@19.3.0)(react@19.3.1) react: specifier: 19.3.1 version: 19.3.1 @@ -348,13 +348,13 @@ importers: devDependencies: '@tailwindcss/vite': specifier: 4.3.3 - version: 4.3.3(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + version: 4.3.3(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) '@tanstack/router-cli': specifier: 1.167.45 version: 1.167.45 '@tanstack/router-plugin': specifier: 1.168.47 - version: 1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.63.4)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + version: 1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rolldown@1.2.14)(rollup@4.63.4)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) '@testing-library/react': specifier: 16.3.3 version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) @@ -369,7 +369,7 @@ importers: version: 19.3.0(@types/react@19.3.0) '@vitejs/plugin-react': specifier: 6.1.2 - version: 6.1.2(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + version: 6.1.2(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) happy-dom: specifier: 20.14.6 version: 20.14.6 @@ -380,11 +380,11 @@ importers: specifier: 6.0.3 version: 6.0.3 vite: - specifier: 8.3.4 - version: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + specifier: 8.3.5 + version: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) vitest: specifier: 5.0.5 - version: 5.0.5(@types/node@26.6.5)(happy-dom@20.14.6)(jsdom@30.1.1)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + version: 5.0.5(@types/node@26.6.5)(happy-dom@20.14.6)(jsdom@30.1.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) packages: @@ -472,59 +472,71 @@ packages: resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.5.15': - resolution: {integrity: sha512-WZTW4slm/pdkh92K6t/3aEN++44JD1PQ7squ7RCMLI1flHGl43DVOIGXvCjHiZgBMO1V4uYxoFNtqrIA4qGuIQ==} + '@biomejs/biome@2.6.2': + resolution: {integrity: sha512-JLTFAFF9vfJcWwLhwuL4ZHflLg+XfTEC4IUnAlJRX1cMRt57++Xd1Ysb9Fdmlh9YUrvyCXfPEHjjEIqKJGdPKw==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.5.15': - resolution: {integrity: sha512-BZVzFhJ/mUvTLMYbc9x6el0o2Uv5zP7bACYyhFb6fSc1giroXm7PL0a5KqMJ9F+/BnkYRjagD/ROSDVOZ6eapg==} + '@biomejs/cli-android-arm64@2.6.2': + resolution: {integrity: sha512-dMpdpH7zFEL5FxuIA9LJW+RoNyC3oeDB7PJyjqVVwtMNoKB5uo8OZYmrVSBikn71txzYwy/3xga7UME6bJQZ6A==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [android] + + '@biomejs/cli-android-x64@2.6.2': + resolution: {integrity: sha512-XCwEhPBGYzuRA502dRkCcQ+5cefQwuxQR7f9wa4do92dvIcuBL6VMLMFB/fL9hlpZ4dGSfHdpGFSIDlp52mg0A==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [android] + + '@biomejs/cli-darwin-arm64@2.6.2': + resolution: {integrity: sha512-rpXtabRgyZNz3aCjd/cRoSZGYi92R9eAXdUUe1sigIsRDyfMwgThaa98Yxt1fiZ7mxquqkAyIHIo08N/e1ToBA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.5.15': - resolution: {integrity: sha512-V5Kw63V+fVGNFhFrizDxMbGXAzZCh8kYzJpy3GI6gTapWDg7bZK9oYC9CbVgQSEdTnupz0U5Efz8Ev+5vdBBXw==} + '@biomejs/cli-darwin-x64@2.6.2': + resolution: {integrity: sha512-7GGzlm1GxUKoQ9CNV8tQZ+XXad4sz+v+uzNsWlhaGjsnZqUOVBw1OmAMpG3uNV/Mr0UrCpRJvSK0qvfuqSQOjg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.5.15': - resolution: {integrity: sha512-tGzZUTcJCV7tj5Adh/Gn6nR4MycqA3iohq2LEcrarAgRBkU0h0OKd2UzCRkOsOYOuUGaUJb4YmqRqyy2feGGSw==} + '@biomejs/cli-linux-arm64-musl@2.6.2': + resolution: {integrity: sha512-I+FYCLVSmR3cYfKcQ+KNeLOZ5w0wRd9fQFlw3JbSvy7bkegvTqdHaBRRcJzHQB/1ldldTLIcG21ka6X2cTWmJw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [musl] - '@biomejs/cli-linux-arm64@2.5.15': - resolution: {integrity: sha512-XaG7P7eeSLYETD3K9grfB0mQmpLQZjygdbsxekWBJAg4am79fGAtRpfRyNnTvXB2fZFNnJZG3nXm7HBat0+VUw==} + '@biomejs/cli-linux-arm64@2.6.2': + resolution: {integrity: sha512-Qs4CofCE8MdkjZFfEjswh2NAcbyQ7IVYtGSzQBvLqFlla/CSXroGbktUFndWG/kVSTywadauzAspYWtSfqAc2g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [glibc] - '@biomejs/cli-linux-x64-musl@2.5.15': - resolution: {integrity: sha512-IlxUcyxilVGPsE008x13pWdkTbU3nQpP2i9b5UrbOYj6goBkKsRX1XB7yJLcV+O1H9LBchIIm4adOaVLZBX0ZQ==} + '@biomejs/cli-linux-x64-musl@2.6.2': + resolution: {integrity: sha512-wnjEXAK2pDd2j8r9gKI3L+44sIxjkYzS5aHmD1+K57RNJ3sFyT4n22NH6QFPqqeVdRBxN54H3kckUUCrFKCcJw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [musl] - '@biomejs/cli-linux-x64@2.5.15': - resolution: {integrity: sha512-xE4iEW/3LqlYj9GFgGrFsFSH51dEEpUbYWBfeOv0q87WkUDxK2o/HhreSb7qMJqck70RVM6Lg96hgedcAYcOkA==} + '@biomejs/cli-linux-x64@2.6.2': + resolution: {integrity: sha512-FJKsb95418139xDdbv9XnNJsIIwvsgR21Of0aE9B9U+nQlOtRq5gJl2ps0jZUmYBxTaOlP9BKo8N+Ff8+Rui1g==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [glibc] - '@biomejs/cli-win32-arm64@2.5.15': - resolution: {integrity: sha512-2kPKzhNlm8C+Ru3GcO0Me2ODkCBLrVOUNuyi84RJyWDVKAA4+Kjj3jMjL938lF6BRfvltC4vB2nPY9SvN51Ovg==} + '@biomejs/cli-win32-arm64@2.6.2': + resolution: {integrity: sha512-/PEOo6evlgrQOfKhMNtC/4Gk8ai3hySXXEtjUzCqZe/4iAbMdqelpp7qvZEDyLxlZS+BjOMQFpq2gXI/BPaAqw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.5.15': - resolution: {integrity: sha512-yAzh4UqEImV6Hcy0zjUqNfJAsUhoD64FBQCdTG8Md/Z2wQeVP/ZmJ3XRYAs1g8J9fjTFyl2fCtc5FB5til47+g==} + '@biomejs/cli-win32-x64@2.6.2': + resolution: {integrity: sha512-FVlWD+mDDz8nN5LWKRWUhhb7wKIK0VE3oXQvQBX7Fwwj00CvqMVhMyiz1iz8O5aZGmnkhFlKSwJPrUvMh5prQw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -844,9 +856,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-project/types@0.150.0': - resolution: {integrity: sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==} - '@oxc-project/types@0.154.0': resolution: {integrity: sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA==} @@ -1386,72 +1395,36 @@ packages: cpu: [arm] os: [android] - '@rolldown/binding-android-arm-eabi@1.2.9': - resolution: {integrity: sha512-tNISae1QEf/vkb3xkRcjV5SEdzPE97We5IVaa2Z8jSszQPZ8U60B/YCYpw4QI7VidYsBtKavczXf+DyDs9WGxw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [android] - '@rolldown/binding-android-arm64@1.2.14': resolution: {integrity: sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.2.9': - resolution: {integrity: sha512-YC8YsI30o606GTZi0VyzYlsDKFP8W61i/QzayHDkLbNEz/IShqAmTa+hsJRj13xTHA0H+6fk4b2UmGn+Q/cMlg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-darwin-arm64@1.2.14': resolution: {integrity: sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.2.9': - resolution: {integrity: sha512-IwhlH3qK5urrY8hZiEgGkHKEFN901p/p2bjxCxJlr4GyNnF7wYpUvK+Y43uaRYuC4hpfjzbR3SJC3arX1jGvmw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.2.14': resolution: {integrity: sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.9': - resolution: {integrity: sha512-XxpJfVzFh+jilRxIXUqcfYAYcunIc/XEzIizsOL1fcJee5Sf7H3mH8WlLmfHfluz5amqR88QQo9izKtmMlavAw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.14': resolution: {integrity: sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.2.9': - resolution: {integrity: sha512-kSfvhmgeWyfkbT3p/1s5vSgboogoah2zkm9fX2zjg2hHxSV7T4KhMWRUUaRk4OXNqoD3QAUeRqLcs1aZOK4U1g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.14': resolution: {integrity: sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.9': - resolution: {integrity: sha512-1RVzG17pxqbTfYLC352JlLt6kKLG+6Hr30n8DlIJqsnV5luUDd2Qdx9Ayw1Cabfyb1K9k0jXEZ7evxkRoT+uiw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.14': resolution: {integrity: sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1459,13 +1432,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.2.9': - resolution: {integrity: sha512-BXqPvZ2drqVD+/Z8UpKwcs4Mp7grM+eGFku4CAEKrEtcbAsUpzREphK1sogCRZGreVPiMkiiBtw0n3TPteuqvw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.14': resolution: {integrity: sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1473,13 +1439,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.2.9': - resolution: {integrity: sha512-11vWvo8YDwLzukt27J3aYDWU+gg2P7J+ZOmiJ0hkF5BXZDW7pVya7r40MXDy6ya0i9KamoENSVKIugvJNgFXIA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.14': resolution: {integrity: sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1487,13 +1446,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.2.9': - resolution: {integrity: sha512-a1tijMkdwsIARtc0F39ApURROkf3NwqinI6TOiSSWCTR7dT96dffNvMUtDHnq64wKNTIZOIlzKrFvvFUznJiyw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.14': resolution: {integrity: sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1501,13 +1453,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.9': - resolution: {integrity: sha512-x6SQNdAvv4c3hWqTMaWuawzMX9myaCs/yEmlGsxJzkdClnHW7FbrjQuSiRDhuSYzEYoEMhsaJy9qHG/XNemJPQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.14': resolution: {integrity: sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1515,13 +1460,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.9': - resolution: {integrity: sha512-9s0AZ8BFK5/n7B/TBoa2yJE3gI3KURrbXcPBlsAsvjU4VeJKgE90y1YtNxyEUIcHPQkg6/yfF3qihUrcM/Kf0Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.14': resolution: {integrity: sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1529,49 +1467,24 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.2.9': - resolution: {integrity: sha512-P7VWAmV+WdJluH7ovnRGoiv2i8To7GAZ+kGzfGup635cyL7SyYl3lSUaA3Gp5THf0n/Co5EyEqb2zbqq+nMOHQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.14': resolution: {integrity: sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.2.9': - resolution: {integrity: sha512-1qixtsE4BK8h+yS3BfmZ09UhA7O/N4IACva6YBr7EBvCJraByTuRcgOTaiA62Tm0vey3UcKXLOaoGHtYmNGEVg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.14': resolution: {integrity: sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.9': - resolution: {integrity: sha512-ok8IQjcEPs1AKZfuEUznVBrJw+gK4soq+bx8b1X2XoMqVClarc1q5JDmVtWXY1xfr6ZuHTAsPXHTgTrqKTZeww==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.14': resolution: {integrity: sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.9': - resolution: {integrity: sha512-Ip2mXoU0hM0boq3Rf+ekuT653OROSo6aSYcPT1VHE4q52KvyxgFkQgrgb/IEsxOuvQ2fZZbs8khJAyCEPM24/g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} @@ -1846,11 +1759,11 @@ packages: resolution: {integrity: sha512-w1+YvwmTkwt5n8yUqEH3IWZ9DsmorCZW/EQ3KYHnqEgIkOZpH54NvW6/Epq3Dzb8H0ifIeYX8PExvrNLIH5FIA==} engines: {node: '>=20.19'} - '@tanstack/query-core@5.104.4': - resolution: {integrity: sha512-nU4Yrb8Sjn0DeVb7PKG9uiepNavys3yoxy1FX0hViY4/P6Ng/mBje2SMl7i9812rtyHKtHyqiaC/td6GkI8StA==} + '@tanstack/query-core@5.104.5': + resolution: {integrity: sha512-Q94gI8Opd+CbdVNOdj8ZCyV8WqLYitrDq1t96Xc8WZT6lY0r5iRnJLXYDxMex7EEf2v+mXvn4FcjaBKSxXZQ9A==} - '@tanstack/react-query@5.104.4': - resolution: {integrity: sha512-YD5QkvUNy8Ey3LbOy2vwL97JjoYycwDv++cWAibTe+9BLYvl3c09XpYp5dZ2VcxcguwoDhGF+utYJYb79RB36w==} + '@tanstack/react-query@5.104.5': + resolution: {integrity: sha512-RORgFe052U+93weaNuqg7qHq7vNVNzXN/VrXqD4bbAuQCWUqOl2lV5Ui9flWk5CVvMyL/Bh27QWhzwH0aaOx9g==} peerDependencies: '@types/react': ^18 || ^19 react: ^18 || ^19 @@ -2167,8 +2080,8 @@ packages: cookie-es@3.1.1: resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} - cronstrue@3.33.0: - resolution: {integrity: sha512-vyatYcfUXxPZxv8/zwC+j9LZNfSdn1k5t3sCLFZrLw+HvU6H4pNhUulPKgtji9tLTTAUCJs45z2+rJrPsbPxlw==} + cronstrue@3.38.0: + resolution: {integrity: sha512-i10xR7fS4AH9LKwmt3gYdt/5lSsB2qFGSNfC8aeyYybxo48DCMz+nUrSVI4kUj8yo+SgTbMJqp/BWEem9avlcA==} hasBin: true cross-spawn@7.0.6: @@ -2329,10 +2242,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - happy-dom@20.14.5: - resolution: {integrity: sha512-x/RzkpWO40bTjIoT30iQtt64FLLmH/iRcUCN2X//bLx7H3ifkdfPXyqsro/OYtqzIAhiLMMA7mmiOR9C3NOKjQ==} - engines: {node: '>=20.0.0'} - happy-dom@20.14.6: resolution: {integrity: sha512-5DDsf4QmEIlRL6NkCv/fxSjYHHkZceL/IaYQdJc2h3G7DRTEai++VTjbfL0LB9geW2VrA3+vrjF3Efx+OTtX0Q==} engines: {node: '>=20.0.0'} @@ -2601,8 +2510,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@1.59.0: - resolution: {integrity: sha512-5qgMyyCPU6OvnKpLS2t693+ZtiqA8oaSweWoUows0BLFKFf6V75m4+CptpmohZHpD5IuOVIBXHBBiv2vpLJmtw==} + lucide-react@1.61.0: + resolution: {integrity: sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==} peerDependencies: '@types/react': '*' react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2941,11 +2850,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.2.9: - resolution: {integrity: sha512-hx/Pv0N1haXRb11qkfnK5MXB/iqr7i0yjWQqmO9uHqZpBgQSqzc8UsSnEpalsh+j1I8qQ2CkXAkJC8Br3dKSlg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rollup@4.63.4: resolution: {integrity: sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3068,11 +2972,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.13: - resolution: {integrity: sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==} - engines: {node: '>=18.0.0'} - hasBin: true - tsx@4.23.15: resolution: {integrity: sha512-Yiex1Ovn8z2xPpOWckIiysV1SSyRMY9BkLF++q0yKiDxCqRhosKfMg3janKkiLBwZ5c/YryloKwGZcrEmtwxKw==} engines: {node: '>=18.0.0'} @@ -3184,13 +3083,13 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@8.3.4: - resolution: {integrity: sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==} + vite@8.3.5: + resolution: {integrity: sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.7.1 + '@vitejs/devtools': ^0.7.1 || ^0.8.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -3468,39 +3367,47 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@biomejs/biome@2.5.15': + '@biomejs/biome@2.6.2': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.5.15 - '@biomejs/cli-darwin-x64': 2.5.15 - '@biomejs/cli-linux-arm64': 2.5.15 - '@biomejs/cli-linux-arm64-musl': 2.5.15 - '@biomejs/cli-linux-x64': 2.5.15 - '@biomejs/cli-linux-x64-musl': 2.5.15 - '@biomejs/cli-win32-arm64': 2.5.15 - '@biomejs/cli-win32-x64': 2.5.15 + '@biomejs/cli-android-arm64': 2.6.2 + '@biomejs/cli-android-x64': 2.6.2 + '@biomejs/cli-darwin-arm64': 2.6.2 + '@biomejs/cli-darwin-x64': 2.6.2 + '@biomejs/cli-linux-arm64': 2.6.2 + '@biomejs/cli-linux-arm64-musl': 2.6.2 + '@biomejs/cli-linux-x64': 2.6.2 + '@biomejs/cli-linux-x64-musl': 2.6.2 + '@biomejs/cli-win32-arm64': 2.6.2 + '@biomejs/cli-win32-x64': 2.6.2 - '@biomejs/cli-darwin-arm64@2.5.15': + '@biomejs/cli-android-arm64@2.6.2': optional: true - '@biomejs/cli-darwin-x64@2.5.15': + '@biomejs/cli-android-x64@2.6.2': optional: true - '@biomejs/cli-linux-arm64-musl@2.5.15': + '@biomejs/cli-darwin-arm64@2.6.2': optional: true - '@biomejs/cli-linux-arm64@2.5.15': + '@biomejs/cli-darwin-x64@2.6.2': optional: true - '@biomejs/cli-linux-x64-musl@2.5.15': + '@biomejs/cli-linux-arm64-musl@2.6.2': optional: true - '@biomejs/cli-linux-x64@2.5.15': + '@biomejs/cli-linux-arm64@2.6.2': optional: true - '@biomejs/cli-win32-arm64@2.5.15': + '@biomejs/cli-linux-x64-musl@2.6.2': optional: true - '@biomejs/cli-win32-x64@2.5.15': + '@biomejs/cli-linux-x64@2.6.2': + optional: true + + '@biomejs/cli-win32-arm64@2.6.2': + optional: true + + '@biomejs/cli-win32-x64@2.6.2': optional: true '@bramus/specificity@2.4.2': @@ -3744,9 +3651,6 @@ snapshots: '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true - '@oxc-project/types@0.150.0': - optional: true - '@oxc-project/types@0.154.0': {} '@playwright/test@1.64.1': @@ -4308,93 +4212,48 @@ snapshots: '@rolldown/binding-android-arm-eabi@1.2.14': optional: true - '@rolldown/binding-android-arm-eabi@1.2.9': - optional: true - '@rolldown/binding-android-arm64@1.2.14': optional: true - '@rolldown/binding-android-arm64@1.2.9': - optional: true - '@rolldown/binding-darwin-arm64@1.2.14': optional: true - '@rolldown/binding-darwin-arm64@1.2.9': - optional: true - '@rolldown/binding-darwin-x64@1.2.14': optional: true - '@rolldown/binding-darwin-x64@1.2.9': - optional: true - '@rolldown/binding-freebsd-x64@1.2.14': optional: true - '@rolldown/binding-freebsd-x64@1.2.9': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.14': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.9': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.9': - optional: true - '@rolldown/binding-linux-arm64-musl@1.2.14': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.9': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.9': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.14': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.9': - optional: true - '@rolldown/binding-linux-x64-gnu@1.2.14': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.9': - optional: true - '@rolldown/binding-linux-x64-musl@1.2.14': optional: true - '@rolldown/binding-linux-x64-musl@1.2.9': - optional: true - '@rolldown/binding-openharmony-arm64@1.2.14': optional: true - '@rolldown/binding-openharmony-arm64@1.2.9': - optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.14': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.9': - optional: true - '@rolldown/binding-win32-x64-msvc@1.2.14': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.9': - optional: true - '@rolldown/pluginutils@1.0.1': {} '@rollup/rollup-android-arm-eabi@4.63.4': @@ -4581,20 +4440,20 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1))': + '@tailwindcss/vite@4.3.3(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) '@tanstack/history@1.162.5': {} - '@tanstack/query-core@5.104.4': {} + '@tanstack/query-core@5.104.5': {} - '@tanstack/react-query@5.104.4(@types/react@19.3.0)(react@19.3.1)': + '@tanstack/react-query@5.104.5(@types/react@19.3.0)(react@19.3.1)': dependencies: - '@tanstack/query-core': 5.104.4 + '@tanstack/query-core': 5.104.5 react: 19.3.1 optionalDependencies: '@types/react': 19.3.0 @@ -4643,7 +4502,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.63.4)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1))': + '@tanstack/router-plugin@1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rolldown@1.2.14)(rollup@4.63.4)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 @@ -4652,11 +4511,11 @@ snapshots: '@tanstack/router-generator': 1.167.45 '@tanstack/router-utils': 1.162.4 chokidar: 5.0.0 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.63.4)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.14)(rollup@4.63.4)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) zod: 4.6.7 optionalDependencies: '@tanstack/react-router': 1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -4772,28 +4631,19 @@ snapshots: '@ungap/structured-clone@1.4.0': {} - '@vitejs/plugin-react@6.1.2(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1))': + '@vitejs/plugin-react@6.1.2(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) - - '@vitest/mocker@5.0.5(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1))': - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@vitest/spy': 5.0.5 - estree-walker: 3.0.3 - magic-string: 1.4.3 - optionalDependencies: - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) - '@vitest/mocker@5.0.5(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))': + '@vitest/mocker@5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1))': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.5 estree-walker: 3.0.3 magic-string: 1.4.3 optionalDependencies: - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) '@vitest/spy@5.0.5': {} @@ -4925,7 +4775,7 @@ snapshots: cookie-es@3.1.1: {} - cronstrue@3.33.0: {} + cronstrue@3.38.0: {} cross-spawn@7.0.6: dependencies: @@ -5071,20 +4921,6 @@ snapshots: graceful-fs@4.2.11: {} - happy-dom@20.14.5: - dependencies: - '@types/node': 26.6.5 - '@types/whatwg-mimetype': 3.0.2 - '@types/ws': 8.18.1 - buffer-image-size: 0.6.4 - entities: 7.0.1 - whatwg-mimetype: 3.0.0 - ws: 8.21.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - optional: true - happy-dom@20.14.6: dependencies: '@types/node': 26.6.4 @@ -5332,7 +5168,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@1.59.0(@types/react@19.3.0)(react@19.3.1): + lucide-react@1.61.0(@types/react@19.3.0)(react@19.3.1): dependencies: react: 19.3.1 optionalDependencies: @@ -5923,28 +5759,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.2.14 '@rolldown/binding-win32-x64-msvc': 1.2.14 - rolldown@1.2.9: - dependencies: - '@oxc-project/types': 0.150.0 - '@rolldown/pluginutils': 1.0.1 - optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.9 - '@rolldown/binding-android-arm64': 1.2.9 - '@rolldown/binding-darwin-arm64': 1.2.9 - '@rolldown/binding-darwin-x64': 1.2.9 - '@rolldown/binding-freebsd-x64': 1.2.9 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.9 - '@rolldown/binding-linux-arm64-gnu': 1.2.9 - '@rolldown/binding-linux-arm64-musl': 1.2.9 - '@rolldown/binding-linux-ppc64-gnu': 1.2.9 - '@rolldown/binding-linux-s390x-gnu': 1.2.9 - '@rolldown/binding-linux-x64-gnu': 1.2.9 - '@rolldown/binding-linux-x64-musl': 1.2.9 - '@rolldown/binding-openharmony-arm64': 1.2.9 - '@rolldown/binding-win32-arm64-msvc': 1.2.9 - '@rolldown/binding-win32-x64-msvc': 1.2.9 - optional: true - rollup@4.63.4: dependencies: '@types/estree': 1.0.9 @@ -6079,13 +5893,6 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.13: - dependencies: - esbuild: 0.28.2 - optionalDependencies: - fsevents: 2.3.3 - optional: true - tsx@4.23.15: dependencies: esbuild: 0.28.2 @@ -6134,16 +5941,16 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.63.4)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)): + unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.14)(rollup@4.63.4)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 optionalDependencies: esbuild: 0.28.2 - rolldown: 1.2.9 + rolldown: 1.2.14 rollup: 4.63.4 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) update-browserslist-db@1.3.3(browserslist@4.29.0): dependencies: @@ -6180,22 +5987,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1): - dependencies: - lightningcss: 1.33.0 - picomatch: 4.0.7 - postcss: 8.5.31 - rolldown: 1.2.14 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 26.6.5 - esbuild: 0.28.2 - fsevents: 2.3.3 - jiti: 2.7.0 - tsx: 4.23.13 - yaml: 2.9.1 - - vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1): + vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -6210,33 +6002,10 @@ snapshots: tsx: 4.23.15 yaml: 2.9.1 - vitest@5.0.5(@types/node@26.6.5)(happy-dom@20.14.5)(jsdom@30.1.1)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)): - dependencies: - '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.5(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) - chai: 6.3.0 - es-module-lexer: 2.3.2 - expect-type: 1.4.0 - magic-string: 1.4.3 - obug: 3.0.0 - picomatch: 4.0.7 - std-env: 4.3.0 - tinybench: 6.2.2 - tinyexec: 1.3.1 - tinyglobby: 0.2.17 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) - why-is-node-running: 3.2.1 - optionalDependencies: - '@types/node': 26.6.5 - happy-dom: 20.14.5 - jsdom: 30.1.1 - transitivePeerDependencies: - - msw - - vitest@5.0.5(@types/node@26.6.5)(happy-dom@20.14.6)(jsdom@30.1.1)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)): + vitest@5.0.5(@types/node@26.6.5)(happy-dom@20.14.6)(jsdom@30.1.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.5(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1)) + '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1)) chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -6247,7 +6016,7 @@ snapshots: tinybench: 6.2.2 tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.1) why-is-node-running: 3.2.1 optionalDependencies: '@types/node': 26.6.5 diff --git a/apps/web/package.json b/apps/web/package.json index 480bf7c7dd..6f7441af32 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -34,13 +34,13 @@ "@radix-ui/react-toggle": "1.2.1", "@radix-ui/react-toggle-group": "1.2.1", "@radix-ui/react-tooltip": "1.4.1", - "@tanstack/react-query": "5.104.4", + "@tanstack/react-query": "5.104.5", "@tanstack/react-router": "1.170.45", "class-variance-authority": "0.7.1", "clsx": "2.1.1", "cmdk": "1.1.1", - "cronstrue": "3.33.0", - "lucide-react": "1.59.0", + "cronstrue": "3.38.0", + "lucide-react": "1.61.0", "react": "19.3.1", "react-dom": "19.3.1", "react-markdown": "10.1.0", @@ -61,7 +61,7 @@ "happy-dom": "20.14.6", "tailwindcss": "4.3.3", "typescript": "6.0.3", - "vite": "8.3.4", + "vite": "8.3.5", "vitest": "5.0.5" } } diff --git a/sdk/typescript/package.json b/sdk/typescript/package.json index 86eccf9501..cdf8ea4bd5 100644 --- a/sdk/typescript/package.json +++ b/sdk/typescript/package.json @@ -22,7 +22,7 @@ "deno": ">=2.9.3 <3", "node": ">=22" }, - "packageManager": "pnpm@11.25.0", + "packageManager": "pnpm@11.28.7", "files": [ "dist", "LICENSE" @@ -62,7 +62,7 @@ "prepack": "pnpm run build" }, "devDependencies": { - "@biomejs/biome": "2.5.15", + "@biomejs/biome": "2.6.2", "@microsoft/api-extractor": "7.59.4", "@playwright/test": "1.64.1", "typescript": "6.0.3", diff --git a/sdk/typescript/pnpm-lock.yaml b/sdk/typescript/pnpm-lock.yaml index c4f3f74bc9..ddd8015f07 100644 --- a/sdk/typescript/pnpm-lock.yaml +++ b/sdk/typescript/pnpm-lock.yaml @@ -29,8 +29,8 @@ importers: version: 8.20.0 devDependencies: '@biomejs/biome': - specifier: 2.5.15 - version: 2.5.15 + specifier: 2.6.2 + version: 2.6.2 '@microsoft/api-extractor': specifier: 7.59.4 version: 7.59.4(@types/node@24.19.2) @@ -49,59 +49,71 @@ importers: packages: - '@biomejs/biome@2.5.15': - resolution: {integrity: sha512-WZTW4slm/pdkh92K6t/3aEN++44JD1PQ7squ7RCMLI1flHGl43DVOIGXvCjHiZgBMO1V4uYxoFNtqrIA4qGuIQ==} + '@biomejs/biome@2.6.2': + resolution: {integrity: sha512-JLTFAFF9vfJcWwLhwuL4ZHflLg+XfTEC4IUnAlJRX1cMRt57++Xd1Ysb9Fdmlh9YUrvyCXfPEHjjEIqKJGdPKw==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.5.15': - resolution: {integrity: sha512-BZVzFhJ/mUvTLMYbc9x6el0o2Uv5zP7bACYyhFb6fSc1giroXm7PL0a5KqMJ9F+/BnkYRjagD/ROSDVOZ6eapg==} + '@biomejs/cli-android-arm64@2.6.2': + resolution: {integrity: sha512-dMpdpH7zFEL5FxuIA9LJW+RoNyC3oeDB7PJyjqVVwtMNoKB5uo8OZYmrVSBikn71txzYwy/3xga7UME6bJQZ6A==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [android] + + '@biomejs/cli-android-x64@2.6.2': + resolution: {integrity: sha512-XCwEhPBGYzuRA502dRkCcQ+5cefQwuxQR7f9wa4do92dvIcuBL6VMLMFB/fL9hlpZ4dGSfHdpGFSIDlp52mg0A==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [android] + + '@biomejs/cli-darwin-arm64@2.6.2': + resolution: {integrity: sha512-rpXtabRgyZNz3aCjd/cRoSZGYi92R9eAXdUUe1sigIsRDyfMwgThaa98Yxt1fiZ7mxquqkAyIHIo08N/e1ToBA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.5.15': - resolution: {integrity: sha512-V5Kw63V+fVGNFhFrizDxMbGXAzZCh8kYzJpy3GI6gTapWDg7bZK9oYC9CbVgQSEdTnupz0U5Efz8Ev+5vdBBXw==} + '@biomejs/cli-darwin-x64@2.6.2': + resolution: {integrity: sha512-7GGzlm1GxUKoQ9CNV8tQZ+XXad4sz+v+uzNsWlhaGjsnZqUOVBw1OmAMpG3uNV/Mr0UrCpRJvSK0qvfuqSQOjg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.5.15': - resolution: {integrity: sha512-tGzZUTcJCV7tj5Adh/Gn6nR4MycqA3iohq2LEcrarAgRBkU0h0OKd2UzCRkOsOYOuUGaUJb4YmqRqyy2feGGSw==} + '@biomejs/cli-linux-arm64-musl@2.6.2': + resolution: {integrity: sha512-I+FYCLVSmR3cYfKcQ+KNeLOZ5w0wRd9fQFlw3JbSvy7bkegvTqdHaBRRcJzHQB/1ldldTLIcG21ka6X2cTWmJw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [musl] - '@biomejs/cli-linux-arm64@2.5.15': - resolution: {integrity: sha512-XaG7P7eeSLYETD3K9grfB0mQmpLQZjygdbsxekWBJAg4am79fGAtRpfRyNnTvXB2fZFNnJZG3nXm7HBat0+VUw==} + '@biomejs/cli-linux-arm64@2.6.2': + resolution: {integrity: sha512-Qs4CofCE8MdkjZFfEjswh2NAcbyQ7IVYtGSzQBvLqFlla/CSXroGbktUFndWG/kVSTywadauzAspYWtSfqAc2g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [glibc] - '@biomejs/cli-linux-x64-musl@2.5.15': - resolution: {integrity: sha512-IlxUcyxilVGPsE008x13pWdkTbU3nQpP2i9b5UrbOYj6goBkKsRX1XB7yJLcV+O1H9LBchIIm4adOaVLZBX0ZQ==} + '@biomejs/cli-linux-x64-musl@2.6.2': + resolution: {integrity: sha512-wnjEXAK2pDd2j8r9gKI3L+44sIxjkYzS5aHmD1+K57RNJ3sFyT4n22NH6QFPqqeVdRBxN54H3kckUUCrFKCcJw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [musl] - '@biomejs/cli-linux-x64@2.5.15': - resolution: {integrity: sha512-xE4iEW/3LqlYj9GFgGrFsFSH51dEEpUbYWBfeOv0q87WkUDxK2o/HhreSb7qMJqck70RVM6Lg96hgedcAYcOkA==} + '@biomejs/cli-linux-x64@2.6.2': + resolution: {integrity: sha512-FJKsb95418139xDdbv9XnNJsIIwvsgR21Of0aE9B9U+nQlOtRq5gJl2ps0jZUmYBxTaOlP9BKo8N+Ff8+Rui1g==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [glibc] - '@biomejs/cli-win32-arm64@2.5.15': - resolution: {integrity: sha512-2kPKzhNlm8C+Ru3GcO0Me2ODkCBLrVOUNuyi84RJyWDVKAA4+Kjj3jMjL938lF6BRfvltC4vB2nPY9SvN51Ovg==} + '@biomejs/cli-win32-arm64@2.6.2': + resolution: {integrity: sha512-/PEOo6evlgrQOfKhMNtC/4Gk8ai3hySXXEtjUzCqZe/4iAbMdqelpp7qvZEDyLxlZS+BjOMQFpq2gXI/BPaAqw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.5.15': - resolution: {integrity: sha512-yAzh4UqEImV6Hcy0zjUqNfJAsUhoD64FBQCdTG8Md/Z2wQeVP/ZmJ3XRYAs1g8J9fjTFyl2fCtc5FB5til47+g==} + '@biomejs/cli-win32-x64@2.6.2': + resolution: {integrity: sha512-FVlWD+mDDz8nN5LWKRWUhhb7wKIK0VE3oXQvQBX7Fwwj00CvqMVhMyiz1iz8O5aZGmnkhFlKSwJPrUvMh5prQw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -718,39 +730,47 @@ packages: snapshots: - '@biomejs/biome@2.5.15': + '@biomejs/biome@2.6.2': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.5.15 - '@biomejs/cli-darwin-x64': 2.5.15 - '@biomejs/cli-linux-arm64': 2.5.15 - '@biomejs/cli-linux-arm64-musl': 2.5.15 - '@biomejs/cli-linux-x64': 2.5.15 - '@biomejs/cli-linux-x64-musl': 2.5.15 - '@biomejs/cli-win32-arm64': 2.5.15 - '@biomejs/cli-win32-x64': 2.5.15 - - '@biomejs/cli-darwin-arm64@2.5.15': + '@biomejs/cli-android-arm64': 2.6.2 + '@biomejs/cli-android-x64': 2.6.2 + '@biomejs/cli-darwin-arm64': 2.6.2 + '@biomejs/cli-darwin-x64': 2.6.2 + '@biomejs/cli-linux-arm64': 2.6.2 + '@biomejs/cli-linux-arm64-musl': 2.6.2 + '@biomejs/cli-linux-x64': 2.6.2 + '@biomejs/cli-linux-x64-musl': 2.6.2 + '@biomejs/cli-win32-arm64': 2.6.2 + '@biomejs/cli-win32-x64': 2.6.2 + + '@biomejs/cli-android-arm64@2.6.2': + optional: true + + '@biomejs/cli-android-x64@2.6.2': + optional: true + + '@biomejs/cli-darwin-arm64@2.6.2': optional: true - '@biomejs/cli-darwin-x64@2.5.15': + '@biomejs/cli-darwin-x64@2.6.2': optional: true - '@biomejs/cli-linux-arm64-musl@2.5.15': + '@biomejs/cli-linux-arm64-musl@2.6.2': optional: true - '@biomejs/cli-linux-arm64@2.5.15': + '@biomejs/cli-linux-arm64@2.6.2': optional: true - '@biomejs/cli-linux-x64-musl@2.5.15': + '@biomejs/cli-linux-x64-musl@2.6.2': optional: true - '@biomejs/cli-linux-x64@2.5.15': + '@biomejs/cli-linux-x64@2.6.2': optional: true - '@biomejs/cli-win32-arm64@2.5.15': + '@biomejs/cli-win32-arm64@2.6.2': optional: true - '@biomejs/cli-win32-x64@2.5.15': + '@biomejs/cli-win32-x64@2.6.2': optional: true '@bufbuild/protobuf@2.16.0': {} diff --git a/website/package-lock.json b/website/package-lock.json index 2aaf6b86fa..be5321b879 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -17,17 +17,17 @@ "@mdx-js/react": "^3.1.1", "@signalwire/docusaurus-plugin-llms-txt": "1.2.2", "clsx": "^2.1.1", - "lucide-react": "^1.52.0", + "lucide-react": "^1.61.0", "prism-react-renderer": "^2.4.1", - "react": "^19.3.0", - "react-dom": "^19.3.0" + "react": "^19.3.1", + "react-dom": "^19.3.1" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.10.2", "@docusaurus/tsconfig": "3.10.2", "@docusaurus/types": "3.10.2", "@types/react": "^19.3.0", - "prettier": "^3.9.9", + "prettier": "^3.9.10", "prettier-plugin-compact-markdown-table": "^0.1.0", "typescript": "~6.0.3" }, @@ -13458,9 +13458,9 @@ } }, "node_modules/lucide-react": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.52.0.tgz", - "integrity": "sha512-TUgPtl5ZI9WgxOcbu4ckaC5B3l1qxPQrCMgb6OfUB9owx/OvSJfcf93SMgUWAxRw5/1XDfh9uI5F5iNGXCcGDQ==", + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.61.0.tgz", + "integrity": "sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==", "license": "ISC", "peerDependencies": { "@types/react": "*", @@ -18221,9 +18221,9 @@ } }, "node_modules/prettier": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", - "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", "dev": true, "license": "MIT", "bin": { @@ -18530,24 +18530,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-fast-compare": { diff --git a/website/package.json b/website/package.json index 393afd6a8b..38aa97f2bf 100644 --- a/website/package.json +++ b/website/package.json @@ -26,17 +26,17 @@ "@mdx-js/react": "^3.1.1", "@signalwire/docusaurus-plugin-llms-txt": "1.2.2", "clsx": "^2.1.1", - "lucide-react": "^1.52.0", + "lucide-react": "^1.61.0", "prism-react-renderer": "^2.4.1", - "react": "^19.3.0", - "react-dom": "^19.3.0" + "react": "^19.3.1", + "react-dom": "^19.3.1" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.10.2", "@docusaurus/tsconfig": "3.10.2", "@docusaurus/types": "3.10.2", "@types/react": "^19.3.0", - "prettier": "^3.9.9", + "prettier": "^3.9.10", "prettier-plugin-compact-markdown-table": "^0.1.0", "typescript": "~6.0.3" }, From f9ed561f80313e8dac8bbeb95ff6539d18fa7d5c Mon Sep 17 00:00:00 2001 From: Radoslav Dimitrov Date: Sat, 24 Oct 2026 23:26:16 +0300 Subject: [PATCH 2/2] fix(deps): adapt Studio, SDK, and Slack bot to Biome 2.6 and pnpm 11.28.7 Biome 2.6 adds the noComponentHookFactories rule and formats Markdown and YAML by default, and the grouped bump moved pnpm to 11.28.7 in the SDK packageManager field and CI without touching the pins Renovate does not manage. - Migrate both Biome configs to the 2.6.2 schema and exclude the pnpm-owned lockfiles from Biome, since pnpm rewrites them on install. - Accept the new Markdown and YAML formatting in the Studio and SDK READMEs and Taskfiles. Reflow the Studio README so "+ PKCE" no longer starts a line, where CommonMark parsed it as a list item. - Move test components out of test bodies and helpers to module scope, passing captured values as props. - Keep the cached palette swatch factory with an inline suppression: its module-level cache returns one stable component per color, and option icons must be component types. - Bump the Slack bot Dockerfile corepack pins, the example's packageManager, and the SDK package test to pnpm 11.28.7. Under corepack, pnpm 11.28.7 refuses to run a project pinned to a different version, which broke the image build. - Update stale pnpm 12 version mentions in the Studio README and Dockerfile comment. Co-Authored-By: Claude Opus 5.5 --- apps/Dockerfile | 2 +- apps/README.md | 39 +++--- apps/Taskfile.yml | 4 +- apps/biome.json | 3 +- .../error-page/error-routes.test.tsx | 7 +- apps/web/src/components/palette-swatch.tsx | 1 + .../src/components/ui/collapsible.test.tsx | 53 +++---- .../src/components/ui/error-boundary.test.tsx | 7 +- .../chat/chat-composer.alignment.test.tsx | 12 +- .../chat/chat-composer.configuration.test.tsx | 43 +++--- .../chat/delegation-panel.pinning.test.tsx | 48 ++++--- .../features/chat/delegation-panel.test.tsx | 129 +++++++++--------- .../chat/delegation-workspace.test.tsx | 36 ++--- .../features/chat/side-panel-shell.test.tsx | 32 +++-- .../chat/side-panels.alignment.test.tsx | 12 +- .../schedules/schedules-workspace.test.tsx | 11 +- sdk/typescript/README.md | 1 - sdk/typescript/Taskfile.yml | 2 +- sdk/typescript/biome.json | 4 +- sdk/typescript/examples/README.md | 42 +++--- .../examples/slack-bot/docker/bot.Dockerfile | 12 +- .../examples/slack-bot/package.json | 2 +- sdk/typescript/test/package.test.ts | 2 +- 23 files changed, 263 insertions(+), 241 deletions(-) diff --git a/apps/Dockerfile b/apps/Dockerfile index ac9474ab87..ef39148d29 100644 --- a/apps/Dockerfile +++ b/apps/Dockerfile @@ -12,7 +12,7 @@ # one commit, and a change spanning all three needs no intermediate SDK release. # # Shape (multi-stage): -# 1. build — node:26-slim (Debian + shell + toolchain): pnpm 12.4.2 via +# 1. build — node:26-slim (Debian + shell + toolchain): pnpm 12.15.0 via # corepack (the `packageManager` pin in package.json; Node 25+ # no longer bundles corepack, so it is installed first), a frozen # lockfile installs for SDK and Studio, `pnpm build` (contracts diff --git a/apps/README.md b/apps/README.md index 390c2390cb..625873cef1 100644 --- a/apps/README.md +++ b/apps/README.md @@ -13,13 +13,13 @@ product features, starting with chat. The published image is `ghcr.io/stacklok/mecatl/studio`. Mecatl Studio is a browser UI for a mecatl deployment, split in three packages that form -one self-contained pnpm workspace (pnpm 12.4.2, Node 26, see `package.json`): +one self-contained pnpm workspace (pnpm 12.15.0, Node 26, see `package.json`): -| Package | What it is | -| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `server/` (`@mecatl-studio/server`) | A Hono **backend for frontend (BFF)**. Holds the user's mecatl credential, talks to the daemon through the checked-out `@stacklok-oss/mecatl-sdk`, serves the SPA and `/api` from one origin. | -| `web/` (`@mecatl-studio/web`) | A Vite + React SPA. Calls only the BFF's `/api/v1`; imports neither the SDK nor daemon protocol types. | -| `contracts/` (`@mecatl-studio/contracts`) | Zod schemas, the generated `openapi.json`, and the generated Hey API / TanStack Query client. Generated files are committed and drift-gated. | +| Package | What it is | +| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `server/` (`@mecatl-studio/server`) | A Hono **backend for frontend (BFF)**. Holds the user's mecatl credential, talks to the daemon through the checked-out `@stacklok-oss/mecatl-sdk`, serves the SPA and `/api` from one origin. | +| `web/` (`@mecatl-studio/web`) | A Vite + React SPA. Calls only the BFF's `/api/v1`; imports neither the SDK nor daemon protocol types. | +| `contracts/` (`@mecatl-studio/contracts`) | Zod schemas, the generated `openapi.json`, and the generated Hey API / TanStack Query client. Generated files are committed and drift-gated. | The architecture guide has a [Mecatl Studio](../docs/architecture/api-surface.md#mecatl-studio) section. @@ -27,7 +27,6 @@ section. ## Boundary Studio is a consumer of Mecatl's public surface, not part of the Go build: - - **Checked-out SDK.** `server/` uses the repository's `sdk/typescript` through a frozen `file:` dependency, so Studio, its SDK, and the daemon contract it targets are built from one commit, and a change spanning all three lands without an @@ -103,14 +102,14 @@ The BFF connects to a mecatl runtime in exactly one of three modes, chosen from environment at startup (a conflicting combination exits non-zero before listening, naming the offending variable): -| Mode | Selected by | What happens | -| ---------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -| `external` | `MECATL_BASE_URL` | Connects to an existing mecatl gRPC listener. The only mode allowed inside the image. Interactive login is discovered from the deployment's RFC 9728 resource document. | -| `spawn` | neither `MECATL_BASE_URL` nor `MECATL_DEV_MOCK` | Spawns a local `mecated` from `MECATED_BIN` or `PATH`. Development only; refused when `STUDIO_IMAGE=1`. | -| `mock` | `MECATL_DEV_MOCK=1` | Spawns `mecated --mock` (offline, no model). Development only; refused when `STUDIO_IMAGE=1` or with `MECATL_BASE_URL`. | +| Mode | Selected by | What happens | +| ---------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external` | `MECATL_BASE_URL` | Connects to an existing mecatl gRPC listener. The only mode allowed inside the image. Interactive login is discovered from the deployment's RFC 9728 resource document. | +| `spawn` | neither `MECATL_BASE_URL` nor `MECATL_DEV_MOCK` | Spawns a local `mecated` from `MECATED_BIN` or `PATH`. Development only; refused when `STUDIO_IMAGE=1`. | +| `mock` | `MECATL_DEV_MOCK=1` | Spawns `mecated --mock` (offline, no model). Development only; refused when `STUDIO_IMAGE=1` or with `MECATL_BASE_URL`. | -Authentication follows from the mode and the target: **interactive** (Authorization Code -+ PKCE against the single issuer the resource document names), **static** +Authentication follows from the mode and the target: **interactive** (Authorization +Code + PKCE against the single issuer the resource document names), **static** (`MECATL_AUTH_TOKEN`, one service identity for every browser), or **none** (the target has no issuer, e.g. a local `mecated` with no auth). Static and none WARN at startup and are reported as `mode: "static"` / `"none"`; inside the image they additionally require @@ -128,12 +127,12 @@ only local development. All configuration is environment variables read once at Variables that matter only for development: -| Variable | Default | Meaning | -| ----------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------- | -| `MECATL_DEV_MOCK` | unset | `1` only. Spawns `mecated --mock`. Rejected together with `MECATL_BASE_URL` and inside the image. | -| `MECATED_BIN` | `PATH` lookup | Path of the `mecated` binary for spawn mode (`task studio:dev` sets it to `bin/mecated`). | -| `STUDIO_HOST` | `127.0.0.1` outside the image | Listen address. The development server binds loopback only unless you set this. | -| `STUDIO_WEB_DIST` | `../web/dist` relative to the server package | Directory holding the built SPA the BFF serves. The Dockerfile sets it for the image. | +| Variable | Default | Meaning | +| ----------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `MECATL_DEV_MOCK` | unset | `1` only. Spawns `mecated --mock`. Rejected together with `MECATL_BASE_URL` and inside the image. | +| `MECATED_BIN` | `PATH` lookup | Path of the `mecated` binary for spawn mode (`task studio:dev` sets it to `bin/mecated`). | +| `STUDIO_HOST` | `127.0.0.1` outside the image | Listen address. The development server binds loopback only unless you set this. | +| `STUDIO_WEB_DIST` | `../web/dist` relative to the server package | Directory holding the built SPA the BFF serves. The Dockerfile sets it for the image. | Any startup error exits non-zero before listening, with a stderr line naming the variable. diff --git a/apps/Taskfile.yml b/apps/Taskfile.yml index 7e88c99044..4f0f3fe6a9 100644 --- a/apps/Taskfile.yml +++ b/apps/Taskfile.yml @@ -3,7 +3,7 @@ # Taskfile for Mecatl Studio (apps/), included in the root Taskfile as `studio:`. # The checked-out SDK is compiled before pnpm installs the BFF's local file # dependency; the browser never imports SDK sources. -version: '3' +version: "3" tasks: install: @@ -116,7 +116,7 @@ tasks: `task build` from the repository root first (for bin/mecated). deps: [install] env: - MECATED_BIN: '{{.TASKFILE_DIR}}/../bin/mecated' + MECATED_BIN: "{{.TASKFILE_DIR}}/../bin/mecated" cmds: - cmd: | test -x "$MECATED_BIN" || { diff --git a/apps/biome.json b/apps/biome.json index 83483bb073..17e363d5f5 100644 --- a/apps/biome.json +++ b/apps/biome.json @@ -1,10 +1,11 @@ { - "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", + "$schema": "https://biomejs.dev/schemas/2.6.2/schema.json", "files": { "includes": [ "**", "!**/dist", "!**/node_modules", + "!pnpm-lock.yaml", "!web/src/routeTree.gen.ts", "!contracts/openapi.json", "!contracts/src/generated" diff --git a/apps/web/src/components/error-page/error-routes.test.tsx b/apps/web/src/components/error-page/error-routes.test.tsx index 0bcf839aea..cd992bf40b 100644 --- a/apps/web/src/components/error-page/error-routes.test.tsx +++ b/apps/web/src/components/error-page/error-routes.test.tsx @@ -28,6 +28,10 @@ const chatApi = { broken: false }; let container: HTMLDivElement; let reactRoot: Root; +function CrashedRoot(): React.ReactNode { + throw new Error(privateError); +} + async function mount(element: React.ReactNode) { container = document.createElement("div"); document.body.append(container); @@ -260,9 +264,6 @@ describe("Studio error routes", () => { it("keeps a root render failure generic and offers reload and home", async () => { vi.spyOn(console, "error").mockImplementation(() => undefined); const reload = vi.fn(); - function CrashedRoot(): React.ReactNode { - throw new Error(privateError); - } await mount( diff --git a/apps/web/src/components/palette-swatch.tsx b/apps/web/src/components/palette-swatch.tsx index 7eb934fbbc..da693da08d 100644 --- a/apps/web/src/components/palette-swatch.tsx +++ b/apps/web/src/components/palette-swatch.tsx @@ -8,6 +8,7 @@ const swatches = new Map>(); export function paletteSwatch(color: string): ComponentType<{ className?: string }> { const cached = swatches.get(color); if (cached) return cached; + // biome-ignore lint/correctness/noComponentHookFactories: the module-level cache returns one stable component per color, so callers never see a new component identity; option icons must be component types. function PaletteSwatch({ className }: { className?: string }) { return ( void }) { + const [open, setOpen] = React.useState(true); + return ( + { + onToggle(); + setOpen((current) => !current); + }} + open={open} + > + Outer + + + Inner + Nested body + + + + ); +} + describe("Collapsible", () => { it("shows and hides its content from a trigger that controls it", async () => { const user = userEvent.setup(); @@ -109,30 +132,14 @@ describe("Collapsible", () => { }); it("leaves an open outer collapsible alone when a match opens a nested one", () => { - // A toggle-style owner, like the tool-call list: it flips on any change - // request and ignores the value, so a stray request would close it. let outerToggles = 0; - function Outer() { - const [open, setOpen] = React.useState(true); - return ( - { - outerToggles += 1; - setOpen((current) => !current); - }} - open={open} - > - Outer - - - Inner - Nested body - - - - ); - } - render(); + render( + { + outerToggles += 1; + }} + />, + ); const outer = screen.getByRole("button", { name: "Outer" }); const inner = screen.getByRole("button", { name: "Inner" }); const nested = screen.getByText("Nested body"); diff --git a/apps/web/src/components/ui/error-boundary.test.tsx b/apps/web/src/components/ui/error-boundary.test.tsx index 0b7ac79d41..54c3acd8c6 100644 --- a/apps/web/src/components/ui/error-boundary.test.tsx +++ b/apps/web/src/components/ui/error-boundary.test.tsx @@ -23,6 +23,10 @@ function Flaky() { return

Recovered panel

; } +function Thrower(): never { + throw new Error("boom"); +} + describe("ErrorBoundary", () => { it("renders its children when nothing throws", () => { render( @@ -54,9 +58,6 @@ describe("ErrorBoundary", () => { }); it("prefers a caller-supplied fallback", () => { - function Thrower(): never { - throw new Error("boom"); - } render( Custom fallback

}> diff --git a/apps/web/src/features/chat/chat-composer.alignment.test.tsx b/apps/web/src/features/chat/chat-composer.alignment.test.tsx index 768e720f77..7687c35015 100644 --- a/apps/web/src/features/chat/chat-composer.alignment.test.tsx +++ b/apps/web/src/features/chat/chat-composer.alignment.test.tsx @@ -48,6 +48,12 @@ const models = [ }, ]; +/** Records the global shortcuts-help binding so a test can prove it is blocked. */ +function ShortcutProbe({ onOpen }: { onOpen: () => void }) { + useShortcut("shortcuts.open", onOpen); + return null; +} + function composerInput() { return screen.getByRole("textbox", { name: "Message Mecatl" }); } @@ -638,13 +644,9 @@ describe("composer pills", () => { it("blocks app shortcuts while the phone sheet is open", async () => { const user = userEvent.setup(); const openShortcuts = vi.fn(); - function ShortcutProbe() { - useShortcut("shortcuts.open", openShortcuts); - return null; - } render( - + + + + {JSON.stringify(configuration.execution)} + + ); +} + afterEach(() => { cleanup(); vi.restoreAllMocks(); @@ -112,26 +134,7 @@ describe("composer configuration selectors", () => { declaredExecutionFiles: true, declaredBuiltInShell: false, }; - function Picker() { - const [configuration, setConfiguration] = useState(initialConfiguration); - const [items, setItems] = useState([item]); - return ( - <> - - - {JSON.stringify(configuration.execution)} - - ); - } - render(); + render(); expect(screen.getByRole("option", { name: /declared files: true, Shell: false/ })).toBeTruthy(); await user.selectOptions( screen.getByLabelText("Execution"), diff --git a/apps/web/src/features/chat/delegation-panel.pinning.test.tsx b/apps/web/src/features/chat/delegation-panel.pinning.test.tsx index c10ae7d1c9..1c96dc1066 100644 --- a/apps/web/src/features/chat/delegation-panel.pinning.test.tsx +++ b/apps/web/src/features/chat/delegation-panel.pinning.test.tsx @@ -116,7 +116,34 @@ const fleet: DelegationFleet = { teams: [team], }; -/** Holds the chosen activity the way the chat surface does, and records every change. */ +/** Holds the chosen activity the way the chat surface does. */ +function Harness({ + family, + initialFocus, + onFocusChange, +}: { + family?: DelegationFocus["family"]; + initialFocus?: DelegationFocus; + onFocusChange: (focus?: DelegationFocus) => void; +}) { + const [focus, setFocus] = useState(initialFocus); + return ( + <> + + { + onFocusChange(next); + setFocus(next); + }} + /> + + ); +} + +/** Renders the held panel and records every change. */ function renderPanel({ family, focus: initialFocus, @@ -125,24 +152,7 @@ function renderPanel({ focus?: DelegationFocus; } = {}) { const onFocusChange = vi.fn<(focus?: DelegationFocus) => void>(); - function Harness() { - const [focus, setFocus] = useState(initialFocus); - return ( - <> - - { - onFocusChange(next); - setFocus(next); - }} - /> - - ); - } - render(); + render(); return { onFocusChange, user: userEvent.setup() }; } diff --git a/apps/web/src/features/chat/delegation-panel.test.tsx b/apps/web/src/features/chat/delegation-panel.test.tsx index 6ad2abc2ae..71bb2a7703 100644 --- a/apps/web/src/features/chat/delegation-panel.test.tsx +++ b/apps/web/src/features/chat/delegation-panel.test.tsx @@ -128,6 +128,72 @@ const parallel: ParallelGroupActivity = { ], }; +const journeyFleet = { + ...createDelegationFleet("session-a"), + subagents: [subagent], + parallelGroups: [parallel], + teams: [team], +}; + +/** Opens activity from a card or the session control the way the chat surface does. */ +function Journey() { + const [preview, setPreview] = useState(); + const [focus, setFocus] = useState(); + const [focusRequest, setFocusRequest] = useState(0); + const [revision, setRevision] = useState(0); + const opener = useRef(null); + const openerFocus = useRef(undefined); + const sessionControl = useRef(null); + return ( + <> + + { + opener.current = button; + openerFocus.current = next; + setFocus(next); + setFocusRequest((value) => value + 1); + setPreview({ kind: "activity" }); + }} + /> + + {preview && ( + {}} + onClose={() => setPreview(undefined)} + preview={preview} + /> + )} + + ); +} + describe("session activity content", () => { it("leaves panel Escape to the owning chat when managed externally", async () => { let closes = 0; @@ -222,69 +288,6 @@ describe("session activity content", () => { }); it("opens activity from a card and restores focus on close", async () => { - const fleet = { - ...createDelegationFleet("session-a"), - subagents: [subagent], - parallelGroups: [parallel], - teams: [team], - }; - function Journey() { - const [preview, setPreview] = useState(); - const [focus, setFocus] = useState(); - const [focusRequest, setFocusRequest] = useState(0); - const [revision, setRevision] = useState(0); - const opener = useRef(null); - const openerFocus = useRef(undefined); - const sessionControl = useRef(null); - return ( - <> - - { - opener.current = button; - openerFocus.current = next; - setFocus(next); - setFocusRequest((value) => value + 1); - setPreview({ kind: "activity" }); - }} - /> - - {preview && ( - {}} - onClose={() => setPreview(undefined)} - preview={preview} - /> - )} - - ); - } const node = await mount(); const card = node.querySelector("fieldset button") as HTMLButtonElement; card.focus(); diff --git a/apps/web/src/features/chat/delegation-workspace.test.tsx b/apps/web/src/features/chat/delegation-workspace.test.tsx index 99b9a6d4d8..de965a9961 100644 --- a/apps/web/src/features/chat/delegation-workspace.test.tsx +++ b/apps/web/src/features/chat/delegation-workspace.test.tsx @@ -79,6 +79,19 @@ let container: HTMLDivElement | undefined; let root: Root | undefined; let queryClient: QueryClient | undefined; +/** A chat route whose session can be switched from A to B mid-stream. */ +function Switchable() { + const [sessionId, setSessionId] = useState("session-a"); + return ( + <> + + + + ); +} + async function mountWorkspace( fetcher: (request: Request) => Promise, component: () => React.ReactNode, @@ -438,18 +451,6 @@ describe("mounted delegated activity", () => { } throw new Error(`Unexpected request ${path}`); }; - function Switchable() { - const [sessionId, setSessionId] = useState("session-a"); - return ( - <> - - - - ); - } - await mountWorkspace(fetcher, Switchable); await act(async () => vi.waitFor(() => expect(oldSignal).toBeDefined())); await act(async () => { @@ -1191,17 +1192,6 @@ describe("mounted delegated activity", () => { } throw new Error(`Unexpected request ${path}`); }; - function Switchable() { - const [sessionId, setSessionId] = useState("session-a"); - return ( - <> - - - - ); - } await mountWorkspace(fetcher, Switchable); await act(async () => vi.waitFor(() => expect(oldSignal).toBeDefined())); await act(async () => { diff --git a/apps/web/src/features/chat/side-panel-shell.test.tsx b/apps/web/src/features/chat/side-panel-shell.test.tsx index ae5ece641d..1d11079418 100644 --- a/apps/web/src/features/chat/side-panel-shell.test.tsx +++ b/apps/web/src/features/chat/side-panel-shell.test.tsx @@ -25,6 +25,23 @@ import { SideThreadPanel } from "./side-thread-panel"; beforeEach(() => clearUserScopedStorage()); afterEach(() => cleanup()); +/** Owns its own selection and decision state, as activity and authorization content do. */ +function OwnedContent({ delivery }: { delivery: string }) { + const [selection, setSelection] = useState("activity-a"); + const [decision, setDecision] = useState("pending"); + return ( + <> + + +

{delivery}

+ + ); +} + describe("shared side panel frame", () => { it("preserves the active panel and width during stream updates", () => { const onClose = vi.fn(); @@ -88,21 +105,6 @@ describe("shared side panel frame", () => { }); it("hosts activity and authorization without owning their content", () => { - function OwnedContent({ delivery }: { delivery: string }) { - const [selection, setSelection] = useState("activity-a"); - const [decision, setDecision] = useState("pending"); - return ( - <> - - -

{delivery}

- - ); - } const { rerender } = render( {}} title="Activity"> diff --git a/apps/web/src/features/chat/side-panels.alignment.test.tsx b/apps/web/src/features/chat/side-panels.alignment.test.tsx index a3318ae067..c60ffb410e 100644 --- a/apps/web/src/features/chat/side-panels.alignment.test.tsx +++ b/apps/web/src/features/chat/side-panels.alignment.test.tsx @@ -19,6 +19,12 @@ afterEach(() => { vi.restoreAllMocks(); }); +/** Records the global shortcuts-help binding so a test can prove it is blocked. */ +function ShortcutProbe({ onOpen }: { onOpen: () => void }) { + useShortcut("shortcuts.open", onOpen); + return null; +} + function Canvas({ initial }: { initial: string }) { const [value, setValue] = useState(initial); return ( @@ -133,13 +139,9 @@ describe("side panel frames", () => { it("blocks app shortcuts while the Clear confirmation is open", async () => { const user = userEvent.setup(); const openShortcuts = vi.fn(); - function ShortcutProbe() { - useShortcut("shortcuts.open", openShortcuts); - return null; - } render( - + , ); diff --git a/apps/web/src/features/schedules/schedules-workspace.test.tsx b/apps/web/src/features/schedules/schedules-workspace.test.tsx index 1564a1baf2..c87d3c830d 100644 --- a/apps/web/src/features/schedules/schedules-workspace.test.tsx +++ b/apps/web/src/features/schedules/schedules-workspace.test.tsx @@ -397,6 +397,12 @@ describe("schedule detail delete", () => { }); }); +/** Records the schedules filter binding so a test can prove open dialogs block it. */ +function Probe({ handler }: { handler: () => void }) { + useShortcut("schedules.filter", handler); + return null; +} + describe("schedule keyboard focus and shortcuts", () => { const alpha = schedule({ name: "Alpha" }); @@ -456,11 +462,6 @@ describe("schedule keyboard focus and shortcuts", () => { }); describe("on the detail page", () => { - function Probe({ handler }: { handler: () => void }) { - useShortcut("schedules.filter", handler); - return null; - } - function detailApi() { fakeApi((method, path) => { if (method !== "GET") return undefined; diff --git a/sdk/typescript/README.md b/sdk/typescript/README.md index 6dd269c250..d4fc740ed5 100644 --- a/sdk/typescript/README.md +++ b/sdk/typescript/README.md @@ -21,7 +21,6 @@ for release notes. ## Public entry points The package has four public entry points: - - `@stacklok-oss/mecatl-sdk` - transport-neutral core plus browser and Deno remote HTTP/SSE; - `@stacklok-oss/mecatl-sdk/node` - Node/Bun gRPC and local-process features; - `@stacklok-oss/mecatl-sdk/deno` - Deno gRPC plus `Deno.Command` local-process features; diff --git a/sdk/typescript/Taskfile.yml b/sdk/typescript/Taskfile.yml index 47dedfc39c..da70abc2de 100644 --- a/sdk/typescript/Taskfile.yml +++ b/sdk/typescript/Taskfile.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" tasks: install: diff --git a/sdk/typescript/biome.json b/sdk/typescript/biome.json index f74b022e29..04a8aa8bd3 100644 --- a/sdk/typescript/biome.json +++ b/sdk/typescript/biome.json @@ -1,7 +1,7 @@ { - "$schema": "https://biomejs.dev/schemas/2.5.13/schema.json", + "$schema": "https://biomejs.dev/schemas/2.6.2/schema.json", "files": { - "includes": ["**", "!dist", "!.api-extractor-temp", "!examples/slack-bot"] + "includes": ["**", "!dist", "!.api-extractor-temp", "!examples/slack-bot", "!pnpm-lock.yaml"] }, "formatter": { "enabled": true, diff --git a/sdk/typescript/examples/README.md b/sdk/typescript/examples/README.md index 61cafaa21b..8d1de6b68d 100644 --- a/sdk/typescript/examples/README.md +++ b/sdk/typescript/examples/README.md @@ -7,27 +7,27 @@ Node.js 22+ and Bun. The MCP authorization example uses `./node` for gRPC. Other examples that need gRPC or local spawn also use `./node`. Deno 2.9.3 through Deno 2.x uses `./deno` for gRPC and `Deno.Command` local ownership, or `.` for remote HTTP/SSE. -| Example | Focus | -| --- | --- | -| [`quickstart.ts`](./quickstart.ts) | Run one prompt against a private offline daemon. | -| [`remote-connect.ts`](./remote-connect.ts) | Connect to an operator-owned daemon from Node or Bun. | -| [`deno-remote.ts`](./deno-remote.ts) | Connect to an operator-owned daemon from Deno over gRPC. | -| [`deno-local.ts`](./deno-local.ts) | Start and own a local daemon with `Deno.Command`. | -| [`local-spawn.ts`](./local-spawn.ts) | Spawn and dispose a private local daemon. | -| [`one-shot-query.ts`](./one-shot-query.ts) | Run one local prompt with `query()`. | -| [`callback-tool.ts`](./callback-tool.ts) | Register one local callback tool before session creation. | -| [`session-lifecycle.ts`](./session-lifecycle.ts) | Inspect and rename a session, then fork and clear into independent successors. | -| [`capability-discovery.ts`](./capability-discovery.ts) | Check deployment capabilities and safe server identity before creating a session. | -| [`mcp-workspace-enrollment.ts`](./mcp-workspace-enrollment.ts) | Inspect connectors, start enrollment, and observe it after an application-controlled authorization step. | -| [`browser-bff.ts`](./browser-bff.ts) | Show the browser side of the recommended same-origin BFF deployment. This is guidance, not shipped BFF server code. | -| [`permissions.ts`](./permissions.ts) | Resolve permission asks with a narrow callback. | -| [`mcp-authorization.ts`](./mcp-authorization.ts) | Present and explicitly recheck a parked MCP authorization, including chained authorization and bounded recovery. | -| [`run-events.ts`](./run-events.ts) | Consume one run as a typed event stream. | -| [`multimodal.ts`](./multimodal.ts) | Send text and a local image in one prompt. | -| [`durable-attachment.ts`](./durable-attachment.ts) | Resume durable cross-run activity from an application-owned cursor. | -| [`teams.ts`](./teams.ts) | Create, run, and explicitly clean up a direct team. | -| [`schedules.ts`](./schedules.ts) | Create a recurring schedule through the typed namespace. | -| [`plan-resolution.ts`](./plan-resolution.ts) | Resolve a parked plan across its resumed and continuation runs. | +| Example | Focus | +| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| [`quickstart.ts`](./quickstart.ts) | Run one prompt against a private offline daemon. | +| [`remote-connect.ts`](./remote-connect.ts) | Connect to an operator-owned daemon from Node or Bun. | +| [`deno-remote.ts`](./deno-remote.ts) | Connect to an operator-owned daemon from Deno over gRPC. | +| [`deno-local.ts`](./deno-local.ts) | Start and own a local daemon with `Deno.Command`. | +| [`local-spawn.ts`](./local-spawn.ts) | Spawn and dispose a private local daemon. | +| [`one-shot-query.ts`](./one-shot-query.ts) | Run one local prompt with `query()`. | +| [`callback-tool.ts`](./callback-tool.ts) | Register one local callback tool before session creation. | +| [`session-lifecycle.ts`](./session-lifecycle.ts) | Inspect and rename a session, then fork and clear into independent successors. | +| [`capability-discovery.ts`](./capability-discovery.ts) | Check deployment capabilities and safe server identity before creating a session. | +| [`mcp-workspace-enrollment.ts`](./mcp-workspace-enrollment.ts) | Inspect connectors, start enrollment, and observe it after an application-controlled authorization step. | +| [`browser-bff.ts`](./browser-bff.ts) | Show the browser side of the recommended same-origin BFF deployment. This is guidance, not shipped BFF server code. | +| [`permissions.ts`](./permissions.ts) | Resolve permission asks with a narrow callback. | +| [`mcp-authorization.ts`](./mcp-authorization.ts) | Present and explicitly recheck a parked MCP authorization, including chained authorization and bounded recovery. | +| [`run-events.ts`](./run-events.ts) | Consume one run as a typed event stream. | +| [`multimodal.ts`](./multimodal.ts) | Send text and a local image in one prompt. | +| [`durable-attachment.ts`](./durable-attachment.ts) | Resume durable cross-run activity from an application-owned cursor. | +| [`teams.ts`](./teams.ts) | Create, run, and explicitly clean up a direct team. | +| [`schedules.ts`](./schedules.ts) | Create a recurring schedule through the typed namespace. | +| [`plan-resolution.ts`](./plan-resolution.ts) | Resolve a parked plan across its resumed and continuation runs. | Run the compiler gate from the repository root: diff --git a/sdk/typescript/examples/slack-bot/docker/bot.Dockerfile b/sdk/typescript/examples/slack-bot/docker/bot.Dockerfile index 8f4cc9d584..03062b224b 100644 --- a/sdk/typescript/examples/slack-bot/docker/bot.Dockerfile +++ b/sdk/typescript/examples/slack-bot/docker/bot.Dockerfile @@ -13,15 +13,15 @@ FROM cgr.dev/chainguard/node:latest-dev@sha256:13afe2c05d49286578b74c4a14b8e4bbe WORKDIR /home/node/src COPY --chown=65532:65532 . . -RUN corepack pnpm@11.25.0 install --frozen-lockfile \ - && corepack pnpm@11.25.0 run build +RUN corepack pnpm@11.28.7 install --frozen-lockfile \ + && corepack pnpm@11.28.7 run build RUN cd examples/slack-bot \ - && corepack pnpm@11.25.0 install --frozen-lockfile \ - && corepack pnpm@11.25.0 run build + && corepack pnpm@11.28.7 install --frozen-lockfile \ + && corepack pnpm@11.28.7 run build FROM builder AS production-dependencies -RUN cd examples/slack-bot && corepack pnpm@11.25.0 prune --prod -RUN corepack pnpm@11.25.0 prune --prod +RUN cd examples/slack-bot && corepack pnpm@11.28.7 prune --prod +RUN corepack pnpm@11.28.7 prune --prod FROM cgr.dev/chainguard/node:latest@sha256:88c4f6e6941bdd4fb9039d98ad05384e1bfe5693dd31ccc8eb2f0c8522bdb40e diff --git a/sdk/typescript/examples/slack-bot/package.json b/sdk/typescript/examples/slack-bot/package.json index e5319997cb..109e61ce4e 100644 --- a/sdk/typescript/examples/slack-bot/package.json +++ b/sdk/typescript/examples/slack-bot/package.json @@ -8,7 +8,7 @@ "engines": { "node": ">=24" }, - "packageManager": "pnpm@11.25.0", + "packageManager": "pnpm@11.28.7", "scripts": { "lint": "biome check .", "format": "biome check --write .", diff --git a/sdk/typescript/test/package.test.ts b/sdk/typescript/test/package.test.ts index 136f713300..183b5e0128 100644 --- a/sdk/typescript/test/package.test.ts +++ b/sdk/typescript/test/package.test.ts @@ -179,7 +179,7 @@ test("exports map exposes exactly ., ./node, ./deno, ./gen", () => { test("packed tarball carries dist and license only", () => { expect(packageJson.engines).toEqual({ deno: ">=2.9.3 <3", node: ">=22" }); - expect(packageJson.packageManager).toBe("pnpm@11.25.0"); + expect(packageJson.packageManager).toBe("pnpm@11.28.7"); const expectedFiles = [ "package/LICENSE",