diff --git a/web/e2e/specs/setup/wizard-account.spec.ts b/web/e2e/specs/setup/wizard-account.spec.ts index df5e08995c..b218fff558 100644 --- a/web/e2e/specs/setup/wizard-account.spec.ts +++ b/web/e2e/specs/setup/wizard-account.spec.ts @@ -97,12 +97,13 @@ test.describe("setup wizard account @high @mobile", () => { .fill("a-long-enough-password"); await page.getByRole("button", { name: "Save" }).click(); - const createCall = sent.find((call) => call.method === "POST"); - expect(createCall?.body).toEqual({ - username: "family", - password: "a-long-enough-password", - role: "viewer", - }); + await expect + .poll(() => sent.find((call) => call.method === "POST")?.body) + .toEqual({ + username: "family", + password: "a-long-enough-password", + role: "viewer", + }); }); test("shows anonymous copy when nobody is signed in", async ({ diff --git a/web/e2e/specs/setup/wizard-hardware.spec.ts b/web/e2e/specs/setup/wizard-hardware.spec.ts index a4b57c4444..b60225f4ad 100644 --- a/web/e2e/specs/setup/wizard-hardware.spec.ts +++ b/web/e2e/specs/setup/wizard-hardware.spec.ts @@ -101,10 +101,14 @@ test.describe("setup wizard hardware @high @mobile", () => { await expect(page.getByText("Will use VAAPI (Intel/AMD)")).toBeVisible(); await page.getByRole("button", { name: "Next" }).click(); - const hwaccelSave = saves.find((save) => save.config_data?.ffmpeg); - expect(hwaccelSave?.config_data?.ffmpeg).toEqual({ - hwaccel_args: "preset-vaapi", - }); + await expect + .poll( + () => + saves.find((save) => save.config_data?.ffmpeg)?.config_data?.ffmpeg, + ) + .toEqual({ + hwaccel_args: "preset-vaapi", + }); // the saved steps only take effect after a restart const restarts = await captureRestarts(page); @@ -117,7 +121,7 @@ test.describe("setup wizard hardware @high @mobile", () => { await page.getByRole("button", { name: "Apply & Restart" }).click(); await expect(page.getByText("Starting Frigate...")).toBeVisible(); - expect(restarts).toHaveLength(1); + await expect.poll(() => restarts).toHaveLength(1); }); test("defers model setup for onnx hardware without Frigate+", async ({ @@ -228,10 +232,14 @@ test.describe("setup wizard hardware @high @mobile", () => { await page.getByRole("button", { name: "Next" }).click(); // no camera was added, so there is no codec to match - const hwaccelSave = saves.find((save) => save.config_data?.ffmpeg); - expect(hwaccelSave?.config_data?.ffmpeg).toEqual({ - hwaccel_args: "preset-jetson-h264", - }); + await expect + .poll( + () => + saves.find((save) => save.config_data?.ffmpeg)?.config_data?.ffmpeg, + ) + .toEqual({ + hwaccel_args: "preset-jetson-h264", + }); }); test("None writes an explicit empty hwaccel list", async ({ @@ -249,7 +257,11 @@ test.describe("setup wizard hardware @high @mobile", () => { await page.getByRole("radio", { name: "None (software decoding)" }).click(); await page.getByRole("button", { name: "Next" }).click(); - const hwaccelSave = saves.find((save) => save.config_data?.ffmpeg); - expect(hwaccelSave?.config_data?.ffmpeg).toEqual({ hwaccel_args: [] }); + await expect + .poll( + () => + saves.find((save) => save.config_data?.ffmpeg)?.config_data?.ffmpeg, + ) + .toEqual({ hwaccel_args: [] }); }); }); diff --git a/web/package-lock.json b/web/package-lock.json index 1f6ab824da..5a40b90db8 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.0", "hasInstallScript": true, "dependencies": { - "@cycjimmy/jsmpeg-player": "^6.1.2", - "@hookform/resolvers": "^6.0.0", + "@cycjimmy/jsmpeg-player": "^6.1.6", + "@hookform/resolvers": "^6.0.2", "@radix-ui/react-alert-dialog": "^1.2.1", "@radix-ui/react-aspect-ratio": "^1.2.0", "@radix-ui/react-checkbox": "^1.4.1", @@ -37,39 +37,39 @@ "@rjsf/shadcn": "^6.10.1", "@rjsf/utils": "^6.10.1", "@rjsf/validator-ajv8": "^6.10.1", - "apexcharts": "^8.4.1", - "axios": "^1.20.0", + "apexcharts": "^8.5.0", + "axios": "^1.21.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "copy-to-clipboard": "^4.0.2", "date-fns": "^4.4.0", "date-fns-tz": "^3.2.0", - "framer-motion": "^14.6.0", - "hls.js": "^1.7.3", - "i18next": "^26.5.5", - "i18next-http-backend": "^4.0.4", + "framer-motion": "^14.7.1", + "hls.js": "^1.7.4", + "i18next": "^26.5.11", + "i18next-http-backend": "^4.0.6", "idb-keyval": "^6.3.0", "js-yaml": "^5.5.0", "konva": "^10.9.0", "lodash": "^4.18.1", - "lucide-react": "^1.61.0", + "lucide-react": "^1.64.0", "monaco-yaml": "^5.5.1", "next-themes": "^0.4.6", "nosleep.js": "^0.12.0", "react": "^19.3.1", - "react-apexcharts": "^2.1.1", + "react-apexcharts": "^2.1.2", "react-day-picker": "^10.0.2", "react-device-detect": "^2.2.3", "react-dom": "^19.3.1", "react-dropzone": "^20.1.4", "react-grid-layout": "^2.3.0", - "react-hook-form": "^7.90.0", - "react-i18next": "^17.1.1", + "react-hook-form": "^7.91.0", + "react-i18next": "^17.1.9", "react-icons": "^5.7.0", "react-konva": "^19.3.2", "react-markdown": "^10.1.0", - "react-router-dom": "^7.18.4", + "react-router-dom": "^7.18.5", "react-swipeable": "^7.0.2", "react-zoom-pan-pinch": "3.4.4", "remark-gfm": "^4.0.0", @@ -81,7 +81,7 @@ "tailwindcss-animate": "^1.0.7", "use-long-press": "^3.3.0", "vaul": "^1.1.2", - "virtua": "^0.53.6", + "virtua": "^0.54.0", "vite-plugin-monaco-editor": "^1.1.0", "zod": "^4.6.7" }, @@ -90,11 +90,11 @@ "@playwright/test": "^1.64.1", "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.27", - "@types/node": "^26.6.5", + "@types/node": "^26.6.6", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@vitejs/plugin-react": "^6.1.2", - "autoprefixer": "^10.6.1", + "autoprefixer": "^10.6.2", "esbuild": "^0.28.2", "eslint": "^10.13.0", "eslint-config-prettier": "^10.1.8", @@ -105,12 +105,12 @@ "i18next-cli": "^1.5.11", "monaco-editor": "^0.53.0", "patch-package": "^8.0.1", - "postcss": "^8.5.31", + "postcss": "^8.5.32", "prettier": "^3.9.10", "prettier-plugin-tailwindcss": "^0.8.1", "tailwindcss": "^3.4.19", "typescript": "^6.0.3", - "typescript-eslint": "^8.72.0", + "typescript-eslint": "^8.72.1", "vite": "^8.3.5" } }, @@ -428,9 +428,9 @@ } }, "node_modules/@cycjimmy/jsmpeg-player": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@cycjimmy/jsmpeg-player/-/jsmpeg-player-6.1.2.tgz", - "integrity": "sha512-U9DBDe5fxHmbwQww9rFxMLNI2Wlg7DhPzI7AVFpq8GehiUP7+NwuMPXpP4zAd52sgkxtOqOeMjgE5g0ZLnQZ0w==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@cycjimmy/jsmpeg-player/-/jsmpeg-player-6.1.6.tgz", + "integrity": "sha512-D3ZfarlwDAltkBzmYaAAvARqRvgN4DmM70fbYwRECh9gpT8IRzLSxsXcR0uoPj/W3VtFeQjwA1QBj+rDpXiUzA==", "license": "MIT" }, "node_modules/@date-fns/tz": { @@ -1059,9 +1059,9 @@ "license": "MIT" }, "node_modules/@hookform/resolvers": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-6.0.0.tgz", - "integrity": "sha512-6iBzQnB+YwAveVc8HUi6QYLITn5X+xNKRMFIcNXHZlvp2aTI7yWbj4n/JodXxirMCcBc4VCjb2aYAJh4x07mVw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-6.0.2.tgz", + "integrity": "sha512-e2dqUOlaGuirKVOd/iZWk/Yg5zeaGw7t0hSc3LzxL3o7eZGwZkTyEbBL8H52m0wRKEsNLWoMGOiXGHbPHTXlEQ==", "license": "MIT", "dependencies": { "@standard-schema/utils": "^0.3.0" @@ -1069,7 +1069,6 @@ "peerDependencies": { "@sinclair/typebox": ">=0.25.24", "@standard-schema/spec": "^1.0.0", - "@typeschema/main": ">=0.13.7", "@vinejs/vine": "^2.0.0 || ^3.0.0 || ^4.0.0", "ajv": "^8.12.0", "ajv-errors": "^3.0.0", @@ -1100,9 +1099,6 @@ "@standard-schema/spec": { "optional": true }, - "@typeschema/main": { - "optional": true - }, "@vinejs/vine": { "optional": true }, @@ -3611,9 +3607,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.6.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz", - "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", + "version": "26.6.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.6.tgz", + "integrity": "sha512-MzQj+8Kx3XI40OmUAE6Qoh58ZMNstNNMwn2nfd3qWsfe7nDNSqJNzes4njhz6AHwrSHOffSLwXU6yb474Q4aog==", "dev": true, "license": "MIT", "dependencies": { @@ -3661,17 +3657,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.72.0.tgz", - "integrity": "sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.72.1.tgz", + "integrity": "sha512-5CokTWXpmbylfFabsbvHC0CAw3XLaGnoa+nFJX5FR592h/LoZsENUE6p/rg5xvkKrFEXz6pYmgI29AgXc2N3BQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.72.0", - "@typescript-eslint/type-utils": "8.72.0", - "@typescript-eslint/utils": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0", + "@typescript-eslint/scope-manager": "8.72.1", + "@typescript-eslint/type-utils": "8.72.1", + "@typescript-eslint/utils": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -3684,15 +3680,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.72.0", + "@typescript-eslint/parser": "^8.72.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.13.tgz", - "integrity": "sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.14.tgz", + "integrity": "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==", "dev": true, "license": "MIT", "engines": { @@ -3700,16 +3696,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.0.tgz", - "integrity": "sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.1.tgz", + "integrity": "sha512-ZGwZP4OCfyA0AQTpEAMWz+rtX01DRhQWW5hB0ucKDEIX5U7jdmPSaMx94rQfaPAQzIYz2BimOgKOJtjfpRFQ9g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.72.0", - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/typescript-estree": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0", + "@typescript-eslint/scope-manager": "8.72.1", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/typescript-estree": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1", "debug": "^4.4.3" }, "engines": { @@ -3725,14 +3721,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz", - "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.1.tgz", + "integrity": "sha512-fAuVMkwdO/huI8nyo/WKnNKf6Gag93S56Rh3Ts5mGcavwSdaN8tRg1gCeIGX8PF+nzp1BjGfO4gHhGzW1J6jTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.72.0", - "@typescript-eslint/types": "^8.72.0", + "@typescript-eslint/tsconfig-utils": "^8.72.1", + "@typescript-eslint/types": "^8.72.1", "debug": "^4.4.3" }, "engines": { @@ -3747,14 +3743,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz", - "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.1.tgz", + "integrity": "sha512-lC/t6eMCZZQAAKZEYGL6RDVSuFehpdmMT6h+nJIjIa6oylN/PwDgDVtEIbB7O9xFfZYtZAYLoLlDNWKJhtF+uQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0" + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3765,9 +3761,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz", - "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.1.tgz", + "integrity": "sha512-e4D5R5vpeAEPBxT2BAzsFQL3sbwyeeeo5+aczgNSRK1V734jE7pTqaGFU+fXapWEQwnZbpFaTn32+Z8DwS6OTg==", "dev": true, "license": "MIT", "engines": { @@ -3782,15 +3778,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.72.0.tgz", - "integrity": "sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.72.1.tgz", + "integrity": "sha512-iY2wlmyrXJmx4yxUGP3aYCFF3cA/6ShddOKmLU2dx7LnEykbAM8WThlxZEfd1NddqceF6eJmZUayxx9oKIYNlg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/typescript-estree": "8.72.0", - "@typescript-eslint/utils": "8.72.0", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/typescript-estree": "8.72.1", + "@typescript-eslint/utils": "8.72.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -3807,9 +3803,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz", - "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.1.tgz", + "integrity": "sha512-LmE5IhQet1BWOWEXqBrVtBPsMAOQ6Nzk35d+WLh3mk4EUF33sqlfxjio1MdYeSvKSG5skactKKuixBIKXhL4Rw==", "dev": true, "license": "MIT", "engines": { @@ -3821,16 +3817,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz", - "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.1.tgz", + "integrity": "sha512-DAlUoUV93hIvrtIQLwCbmZQYVZwOMhiHJrOVUUIWicFZaIYjTRqlY3I/NZevfkLmSqkNHRu2qYDcq9lrn16oOQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.72.0", - "@typescript-eslint/tsconfig-utils": "8.72.0", - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/visitor-keys": "8.72.0", + "@typescript-eslint/project-service": "8.72.1", + "@typescript-eslint/tsconfig-utils": "8.72.1", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/visitor-keys": "8.72.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3849,16 +3845,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.0.tgz", - "integrity": "sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.1.tgz", + "integrity": "sha512-5v5liypurJBFHCBNqh/RjsymAD+VWcE0djuGY/BUqp5fC3Qn+luWDEksjuTtWjPn6i5zQlUtkZCRG/CYG0yCkA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.72.0", - "@typescript-eslint/types": "8.72.0", - "@typescript-eslint/typescript-estree": "8.72.0" + "@typescript-eslint/scope-manager": "8.72.1", + "@typescript-eslint/types": "8.72.1", + "@typescript-eslint/typescript-estree": "8.72.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3873,13 +3869,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz", - "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.1.tgz", + "integrity": "sha512-SB8xqipSzZHUePCCLNeYxqnxq83X61/qzNhjQGbTfjxGZIeOEP7tBgWYX05Tcd6CgE02WdTJnh5b8kMZJ/+bnQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.72.0", + "@typescript-eslint/types": "8.72.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -4067,9 +4063,9 @@ "license": "SEE LICENSE IN LICENSE.md" }, "node_modules/apexcharts": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-8.4.1.tgz", - "integrity": "sha512-29IbZ1rn3NRkDvete5EzZXy6yDSW7mjNXkytLpvaYHk0XbfsR+FvC7U78L3wMvJa699NBmix2z6r3Qm5YDvw0A==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-8.5.0.tgz", + "integrity": "sha512-mH9QiOwIeRGg635OzAc2mznuwrK9XHr9S1RcC26GNNOU6fUPe64cMc7hXGcM9bXz92nO4Ax7P6uxSYaTA7gBDw==", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "apex-commons": "^0.8.3" @@ -4126,9 +4122,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.1.tgz", - "integrity": "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==", + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.2.tgz", + "integrity": "sha512-VOw9/yGTGwPPgzFcODtcv6zhEPIeIWkRSe10L2ri2f5vZ7ID7lCt6jZzRF5/ubgOZ+szYydmEF5AYsA5jxX1tA==", "dev": true, "funding": [ { @@ -4163,9 +4159,9 @@ } }, "node_modules/axios": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.20.0.tgz", - "integrity": "sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.21.0.tgz", + "integrity": "sha512-YCzXMB53Q9PZBsh7yN7wtapit4WepwcHS2fP8QhGsBxSz5YtgYobV7GGlWlAJi+RxfU77GQTQi2DSLUma42EYA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.16.0", @@ -5582,13 +5578,13 @@ } }, "node_modules/framer-motion": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-14.6.0.tgz", - "integrity": "sha512-MzBgZxGgoHPfSLEXmo4o5XlZvb+nVRFdHtGjVhm6LMIEJKTt/8hNO023euL5mYyzc8llV/hQTfjnN68tNRHalw==", + "version": "14.7.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-14.7.1.tgz", + "integrity": "sha512-mFDYZxyfeZnpvL/zEQEqLZNYVA/ya47c9TBfZb/PEoNBBVSVvCLkMrCv9U38cuw72W161XENZwZB0+4nIBLEJg==", "license": "MIT", "dependencies": { - "motion-dom": "14.6.0", - "motion-utils": "14.6.0", + "motion-dom": "14.7.1", + "motion-utils": "14.7.0", "tslib": "^2.4.0" }, "peerDependencies": { @@ -5949,9 +5945,9 @@ } }, "node_modules/hls.js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.3.tgz", - "integrity": "sha512-MsPlx6yVW4Qv4C7mEVou4/gk/5cN2dVxOTnrNjPSmyH2f0Ln+/UkG10Ax1PE6OvrmTVPKgQYozTtBaPOuCzq7A==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.7.4.tgz", + "integrity": "sha512-3GlxGdPvT2YHvQYOt+yOzT/DEior/qJVNIylHA77kgeoBTdQQqi70GwefNEUmHQeNGyjC8U62+bruqW/Tpm+tg==", "license": "Apache-2.0" }, "node_modules/hookified": { @@ -5991,9 +5987,9 @@ } }, "node_modules/i18next": { - "version": "26.5.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.5.5.tgz", - "integrity": "sha512-txdaNOlnZCdiTMSlEzl5hUJU8TC9R4J/RCR1G7XrDPbWT2t3mR142QPz84ZuZeXDt3yq+9zmsdPiakxYtmp3fw==", + "version": "26.5.11", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.5.11.tgz", + "integrity": "sha512-Wc0klBPKxqZ2tL2qdAnF8xvvnWgr1IMGSY2ikTiAvaFVbz7xiFARtkoU4RidBDw1SyziGROp0qxu6qnJ7l2Wug==", "funding": [ { "type": "individual", @@ -6106,9 +6102,9 @@ } }, "node_modules/i18next-http-backend": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-4.0.4.tgz", - "integrity": "sha512-nG9OQKvUsPiTVUBg1rCGmvmWhzxC9GOxVbGdTYyejHVMSUjutt1hiBNVSzhB/ZE7keL9Xkb880kUfhDovV5T5g==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-4.0.6.tgz", + "integrity": "sha512-k5OPDXAQH9CZ2Ju2DDw1ZC4WiYmjKUjOE4lcd51tNQyWjVDfpuwPcE9Y5VzDpz1tR1Z4wxkkj4H+ImxgwbfpeQ==", "license": "MIT", "engines": { "node": ">=18" @@ -6978,9 +6974,9 @@ } }, "node_modules/lucide-react": { - "version": "1.61.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.61.0.tgz", - "integrity": "sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.64.0.tgz", + "integrity": "sha512-v626F/bcLNvFom6vzztHILtG9tUgXXbgA5AGkd82YkV401+Ko/NHyrWafbPwGofa+6p/EgDJcvEkIwsMH9098w==", "license": "ISC", "peerDependencies": { "@types/react": "*", @@ -8055,18 +8051,18 @@ } }, "node_modules/motion-dom": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-14.6.0.tgz", - "integrity": "sha512-lIojTl9aYSPIkeOOSzBliy1nNvpdO3JtVzW2WgTXQlOP4ZMuJhtWO3fP7OD4TVFwlRucdvxlDSMkL+fEQnQ52A==", + "version": "14.7.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-14.7.1.tgz", + "integrity": "sha512-p9q9F7+HoijbQjUG/cSGNmWS2t1OaAKxkd2RG5gQJRoDwoTap/Khb7K1P5rLW90crnSmx0rcRXzh3Jd5UNrpEw==", "license": "MIT", "dependencies": { - "motion-utils": "14.6.0" + "motion-utils": "14.7.0" } }, "node_modules/motion-utils": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-14.6.0.tgz", - "integrity": "sha512-bZJo2AmQ2aOFkaato6VXrTbkPG0XhMzivWUWSaI59pxyllj8QMQUFZ84MYRQnPkK+7dr4KldyJwF2+RM0sdq/w==", + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-14.7.0.tgz", + "integrity": "sha512-woO0/Nb7ys75f94fjvQi/6leiHGvZUYkeHUPEZ3vxsV+9OpEVhkxp01x8MlRwX0zt31EqgXsKDAoBoJLC148Tw==", "license": "MIT" }, "node_modules/ms": { @@ -8548,9 +8544,9 @@ } }, "node_modules/postcss": { - "version": "8.5.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", - "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", + "version": "8.5.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz", + "integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==", "funding": [ { "type": "opencollective", @@ -8920,10 +8916,10 @@ } }, "node_modules/react-apexcharts": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-2.1.1.tgz", - "integrity": "sha512-aV25n+1ZdAzRG0KhODVC48K8WbhMKBAr3yWSeaaBqM1ySn22kSSKblsNCUvlwegsT+cdMLuOrK9xGZb+IK+OkQ==", - "license": "SEE LICENSE IN LICENSE", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-2.1.2.tgz", + "integrity": "sha512-vIoltFDOxy/EIdyWam833mgEfZiOQ+R6oqCvRgbGqNNTNNITCKL91CNeXThi2L8+YyxbamxyWY/6aZV66mx1fA==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "prop-types": "^15.8.1" }, @@ -9037,9 +9033,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.90.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.90.0.tgz", - "integrity": "sha512-+NdG0FLzCPhFOp2NNxaUYLF9fyZhNjx9FTBBSYWF71/l6BBlmIc/j6xlp3DbaHWLJbIG7Zd8oznA19xJClU97w==", + "version": "7.91.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.91.0.tgz", + "integrity": "sha512-5BEBUnCBwa28AFXYTYmOaB/+CSpJ/+CWVASHEvIGUzFdHyUiPHeRhG7r5hOZ8nZi0yP7pbHdFNXO/p31EKTJFQ==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -9059,9 +9055,9 @@ } }, "node_modules/react-i18next": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-17.1.1.tgz", - "integrity": "sha512-Q76xpzxrZNcqhB7M31Ns7isulGOlmhURqRsJOGlYgJJCyoy1pMq6tRl8KQycGNNY1vPaxbIdrogrqY9nkb+SEA==", + "version": "17.1.9", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-17.1.9.tgz", + "integrity": "sha512-OgYqIH13XHPlWTaaI795Dz+k2AdKnXcOxNQVnf750T8Ij0TYWp1nYvXRpoJBulPqlyk2OAbn1PM4tFKiIj/byA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.29.7", @@ -9235,9 +9231,9 @@ } }, "node_modules/react-router": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.4.tgz", - "integrity": "sha512-PUPQcMhMGRAslLcvtlPz/kmzBEWPhLdgLFrL7pLNepBL6dX0lWj4WD2cUYVgYCuT3jxvghYFg81cDTj44DhetQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.5.tgz", + "integrity": "sha512-dTgvcXDOrLPrlLHrcZAqWveiK1hMSqN+rGAJzegP8HtmNkfRxOoshGWBNX3ZJ0cZjOHkRdlUJtaIhZMLLyGyPw==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -9257,12 +9253,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.4.tgz", - "integrity": "sha512-yrfmJHIpDG7taCpqKjT1G5B6q3O2K+RN8/fgNf0lTjCwiPbQ0ei6vXX9ZjQR+7ld8Tr7Z5xmyMnZ8YJrphWQUw==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.5.tgz", + "integrity": "sha512-9HcfDMU6JJ/fp6gJZYGwNE6RknVGS4kBjH1HkNw959mCJi70TVwdipQWv2FEol9uGpi+SZTFtVpJPtEQfayeOw==", "license": "MIT", "dependencies": { - "react-router": "7.18.4" + "react-router": "7.18.5" }, "engines": { "node": ">=20.0.0" @@ -9586,9 +9582,9 @@ } }, "node_modules/set-cookie-parser": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", - "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.3.tgz", + "integrity": "sha512-irZHtTqurLna57KQG/s+fzOwv/J6XSH4cs8M/vsrY3uCaQ3S6+QJguAH0WdN47SXlk82voMZ4naWMQf8fdEoIg==", "license": "MIT" }, "node_modules/set-function-length": { @@ -10062,16 +10058,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.72.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.72.0.tgz", - "integrity": "sha512-r26Fkc8As+mZvqp7SLsMmNFyYUup/6CjK7/eHBHmhOw6GH6n6YFxHVFrG0jN1c5CMpDzelLPxvgeCOzx7BjN+A==", + "version": "8.72.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.72.1.tgz", + "integrity": "sha512-3Li9FfPmQp45nxEtFD1ZCrYFI3cYK5kpyNtmm1H7lMagm8u9sy6PTjy3ytwQZs7KNukOyKFHAZ6z6GjYFeaeXw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.72.0", - "@typescript-eslint/parser": "8.72.0", - "@typescript-eslint/typescript-estree": "8.72.0", - "@typescript-eslint/utils": "8.72.0" + "@typescript-eslint/eslint-plugin": "8.72.1", + "@typescript-eslint/parser": "8.72.1", + "@typescript-eslint/typescript-estree": "8.72.1", + "@typescript-eslint/utils": "8.72.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10364,9 +10360,9 @@ } }, "node_modules/virtua": { - "version": "0.53.6", - "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.53.6.tgz", - "integrity": "sha512-/vQtSFNDFcp3Yz4klbpe8Z88eQeThSw49cFlgJQdsqh3SUnRlW4jLi6ZYt4YzdwerYGlP6KCgAOXNVO+PmUg7w==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.54.0.tgz", + "integrity": "sha512-8nGGrDhX61MDVeqgyIaWrJqhRm9z2Nqa1WDqt0tk1m+ZWrvLesMP0iL0vL6xNsLCF2jE2ohwY+PqufdbVmRgEw==", "license": "MIT", "peerDependencies": { "@angular/common": ">=20.0.0", diff --git a/web/package.json b/web/package.json index d2ee5e0c17..b989dcf518 100644 --- a/web/package.json +++ b/web/package.json @@ -21,8 +21,8 @@ "i18n:status": "i18next-cli status" }, "dependencies": { - "@cycjimmy/jsmpeg-player": "^6.1.2", - "@hookform/resolvers": "^6.0.0", + "@cycjimmy/jsmpeg-player": "^6.1.6", + "@hookform/resolvers": "^6.0.2", "@radix-ui/react-alert-dialog": "^1.2.1", "@radix-ui/react-aspect-ratio": "^1.2.0", "@radix-ui/react-checkbox": "^1.4.1", @@ -49,39 +49,39 @@ "@rjsf/shadcn": "^6.10.1", "@rjsf/utils": "^6.10.1", "@rjsf/validator-ajv8": "^6.10.1", - "apexcharts": "^8.4.1", - "axios": "^1.20.0", + "apexcharts": "^8.5.0", + "axios": "^1.21.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.0.0", "copy-to-clipboard": "^4.0.2", "date-fns": "^4.4.0", "date-fns-tz": "^3.2.0", - "framer-motion": "^14.6.0", - "hls.js": "^1.7.3", - "i18next": "^26.5.5", - "i18next-http-backend": "^4.0.4", + "framer-motion": "^14.7.1", + "hls.js": "^1.7.4", + "i18next": "^26.5.11", + "i18next-http-backend": "^4.0.6", "idb-keyval": "^6.3.0", "js-yaml": "^5.5.0", "konva": "^10.9.0", "lodash": "^4.18.1", - "lucide-react": "^1.61.0", + "lucide-react": "^1.64.0", "monaco-yaml": "^5.5.1", "next-themes": "^0.4.6", "nosleep.js": "^0.12.0", "react": "^19.3.1", - "react-apexcharts": "^2.1.1", + "react-apexcharts": "^2.1.2", "react-day-picker": "^10.0.2", "react-device-detect": "^2.2.3", "react-dom": "^19.3.1", "react-dropzone": "^20.1.4", "react-grid-layout": "^2.3.0", - "react-hook-form": "^7.90.0", - "react-i18next": "^17.1.1", + "react-hook-form": "^7.91.0", + "react-i18next": "^17.1.9", "react-icons": "^5.7.0", "react-konva": "^19.3.2", "react-markdown": "^10.1.0", - "react-router-dom": "^7.18.4", + "react-router-dom": "^7.18.5", "react-swipeable": "^7.0.2", "react-zoom-pan-pinch": "3.4.4", "remark-gfm": "^4.0.0", @@ -93,7 +93,7 @@ "tailwindcss-animate": "^1.0.7", "use-long-press": "^3.3.0", "vaul": "^1.1.2", - "virtua": "^0.53.6", + "virtua": "^0.54.0", "vite-plugin-monaco-editor": "^1.1.0", "zod": "^4.6.7" }, @@ -102,11 +102,11 @@ "@playwright/test": "^1.64.1", "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.27", - "@types/node": "^26.6.5", + "@types/node": "^26.6.6", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@vitejs/plugin-react": "^6.1.2", - "autoprefixer": "^10.6.1", + "autoprefixer": "^10.6.2", "esbuild": "^0.28.2", "eslint": "^10.13.0", "eslint-config-prettier": "^10.1.8", @@ -117,12 +117,12 @@ "i18next-cli": "^1.5.11", "monaco-editor": "^0.53.0", "patch-package": "^8.0.1", - "postcss": "^8.5.31", + "postcss": "^8.5.32", "prettier": "^3.9.10", "prettier-plugin-tailwindcss": "^0.8.1", "tailwindcss": "^3.4.19", "typescript": "^6.0.3", - "typescript-eslint": "^8.72.0", + "typescript-eslint": "^8.72.1", "vite": "^8.3.5" }, "overrides": {