diff --git a/apps/dashboard/cypress/e2e/1-user/03-admin.cy.ts b/apps/dashboard/cypress/e2e/1-user/03-admin.cy.ts index 981e5f5..b6d13e2 100644 --- a/apps/dashboard/cypress/e2e/1-user/03-admin.cy.ts +++ b/apps/dashboard/cypress/e2e/1-user/03-admin.cy.ts @@ -25,41 +25,45 @@ describe("pm2.web user administration", () => { }; } - beforeEach(() => { + function insertUsers() { cy.task("clearDB"); for (let i = 0; i < userConfig.length; i++) { cy.task("createUser", getUser(i)); } - cy.visit("/"); + } + + beforeEach(() => { + insertUsers(); }); - it("it should have 3 users with name, email, role", () => { + context("User List", () => { const user = getUser(0); - cy.login(user.email, user.password); - cy.visit("/user"); - cy.get('[data-cy="user-item-email"]').should("have.length", userConfig.length); - for (let i = 0; i < userConfig.length; i++) { - const u = getUser(i); - const role = u.owner ? "OWNER" : u.admin ? "ADMIN" : "NONE"; - - cy.get('[data-cy="user-item-email"]').contains(u.email); - cy.get('[data-cy="user-item-name"]').contains(u.name); - cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-select"]`).should( - `be.${u.admin || u.owner ? "disabled" : "enabled"}`, - ); - cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-role"]`).should("have.value", role); - } + beforeEach(() => { + cy.login(user.email, user.password); + cy.visit("/user"); + }); + + it("it should have 3 users with name, email, role", () => { + for (let i = 0; i < userConfig.length; i++) { + const u = getUser(i); + const role = u.owner ? "OWNER" : u.admin ? "ADMIN" : "NONE"; + + cy.get('[data-cy="user-item-email"]').contains(u.email); + cy.get('[data-cy="user-item-name"]').contains(u.name); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-select"]`).should( + `be.${u.admin || u.owner ? "disabled" : "enabled"}`, + ); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-role"]`).should("have.value", role); + } + }); }); - context("Delete User with OWNER Permission", () => { + context("Actions with OWNER Permission", () => { const user = getUser(0); beforeEach(() => { - //cy.session("Session", () => { cy.login(user.email, user.password); - //}); - cy.visit("/user"); }); @@ -79,5 +83,63 @@ describe("pm2.web user administration", () => { cy.get(`.mantine-Notifications-root`).children().contains(`Failed to delete user: ${user.name}`); cy.get(`.mantine-Notifications-root`).children().contains(`Owner cannot be deleted`); }); + + it("should have at least one owner", () => { + cy.get(`[data-cy-id="${user.email}"] * > [data-cy="user-item-role"]`).select("ADMIN"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Failed to update role to Admin`); + cy.get(`.mantine-Notifications-root`).children().contains(`Their needs to be at least one owner.`); + }); + + it("should be possible to update role to OWNER", () => { + const u = getUser(1); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-role"]`).select("OWNER"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Updated role to Owner`); + cy.get(`.mantine-Notifications-root`).children().contains(`Updated role successfully`); + }); + }); + + context("Actions with ADMIN Permission", () => { + const user = getUser(1); + + beforeEach(() => { + cy.login(user.email, user.password); + cy.visit("/user"); + }); + + it("it should delete user", () => { + const u = getUser(2); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-delete"]`).click(); + cy.get(`[data-cy-id="${u.email}"]`).should("not.exist"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Deleted User: ${u.name}`); + cy.get(`.mantine-Notifications-root`).children().contains(`User deleted successfully`); + }); + + it("should not be able to delete owner", () => { + const u = getUser(0); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-delete"]`).click(); + cy.get(`[data-cy-id="${u.email}"]`).should("exist"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Failed to delete user: ${u.name}`); + cy.get(`.mantine-Notifications-root`).children().contains(`Owner cannot be deleted`); + }); + + it("should not be possible to update role to OWNER", () => { + const u = getUser(1); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-role"]`).select("OWNER"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Failed to update role to Owner`); + cy.get(`.mantine-Notifications-root`).children().contains(`Insufficient permission to change role to OWNER`); + }); + + it("should not be possible to update role of a OWNER", () => { + const u = getUser(0); + cy.get(`[data-cy-id="${u.email}"] * > [data-cy="user-item-role"]`).select("ADMIN"); + // should show notification + cy.get(`.mantine-Notifications-root`).children().contains(`Failed to update role to Admin`); + cy.get(`.mantine-Notifications-root`).children().contains(`Insufficient permission to change role of owner`); + }); }); }); diff --git a/apps/dashboard/cypress/support/e2e.ts b/apps/dashboard/cypress/support/e2e.ts index 30678ee..033a15f 100644 --- a/apps/dashboard/cypress/support/e2e.ts +++ b/apps/dashboard/cypress/support/e2e.ts @@ -21,8 +21,8 @@ import "./commands"; Cypress.Commands.add("login", (email: string, password: string) => { cy.visit("/login"); - cy.get(`input[name="email"]`).type(email); - cy.get(`input[name="password"]`).type(password); + cy.get(`input[name="email"]`).type(email, { delay: 0 }); + cy.get(`input[name="password"]`).type(password, { delay: 0 }); cy.get("form").submit(); cy.url().should("eq", "http://localhost:3000/"); }); diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index af1ed6d..7b2eb03 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -28,16 +28,16 @@ "format:check": "prettier --check ." }, "dependencies": { - "@mantine/charts": "^7.8.0", - "@mantine/code-highlight": "^7.8.0", - "@mantine/core": "^7.8.0", - "@mantine/form": "^7.8.0", - "@mantine/hooks": "^7.8.0", - "@mantine/notifications": "^7.8.0", + "@mantine/charts": "^7.9.1", + "@mantine/code-highlight": "^7.9.1", + "@mantine/core": "^7.9.1", + "@mantine/form": "^7.9.1", + "@mantine/hooks": "^7.9.1", + "@mantine/notifications": "^7.9.1", "@pm2.web/mongoose-models": "*", "@pm2.web/typings": "*", - "@tabler/icons-react": "^3.2.0", - "@tanstack/react-query": "^5.29.2", + "@tabler/icons-react": "^3.3.0", + "@tanstack/react-query": "^5.35.5", "@trpc/client": "^11.0.0-rc.329", "@trpc/next": "^11.0.0-rc.329", "@trpc/react-query": "^11.0.0-rc.329", @@ -47,14 +47,14 @@ "dotenv": "^16.4.5", "dotenv-cli": "^7.4.1", "lodash": "^4.17.21", - "mongodb-memory-server": "^9.1.8", - "next": "^14.2.2", + "mongodb-memory-server": "^9.2.0", + "next": "^14.2.3", "next-auth": "^4.24.7", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "recharts": "^2.12.6", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "recharts": "^2.12.7", "superjson": "^2.2.1", - "zod": "^3.22.5" + "zod": "^3.23.8" }, "devDependencies": { "@types/bcrypt": "^5.0.2", diff --git a/package-lock.json b/package-lock.json index cb8d40d..752f6be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,16 +45,16 @@ "apps/dashboard": { "version": "1.4.0", "dependencies": { - "@mantine/charts": "^7.8.0", - "@mantine/code-highlight": "^7.8.0", - "@mantine/core": "^7.8.0", - "@mantine/form": "^7.8.0", - "@mantine/hooks": "^7.8.0", - "@mantine/notifications": "^7.8.0", + "@mantine/charts": "^7.9.1", + "@mantine/code-highlight": "^7.9.1", + "@mantine/core": "^7.9.1", + "@mantine/form": "^7.9.1", + "@mantine/hooks": "^7.9.1", + "@mantine/notifications": "^7.9.1", "@pm2.web/mongoose-models": "*", "@pm2.web/typings": "*", - "@tabler/icons-react": "^3.2.0", - "@tanstack/react-query": "^5.29.2", + "@tabler/icons-react": "^3.3.0", + "@tanstack/react-query": "^5.35.5", "@trpc/client": "^11.0.0-rc.329", "@trpc/next": "^11.0.0-rc.329", "@trpc/react-query": "^11.0.0-rc.329", @@ -64,14 +64,14 @@ "dotenv": "^16.4.5", "dotenv-cli": "^7.4.1", "lodash": "^4.17.21", - "mongodb-memory-server": "^9.1.8", - "next": "^14.2.2", + "mongodb-memory-server": "^9.2.0", + "next": "^14.2.3", "next-auth": "^4.24.7", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "recharts": "^2.12.6", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "recharts": "^2.12.7", "superjson": "^2.2.1", - "zod": "^3.22.5" + "zod": "^3.23.8" }, "devDependencies": { "@types/bcrypt": "^5.0.2", @@ -91,72 +91,13 @@ "typescript": "5.4.5" } }, - "apps/dashboard/node_modules/@mantine/charts": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-7.8.0.tgz", - "integrity": "sha512-lSs3XdDsW9gJLWPAZGI7KM5yceZy4rmp/dZoJZ8A0CYOULB6+vbez7bkFtDfUMOpUXdjAXL/z5ImIDZZvYqa9A==", - "peerDependencies": { - "@mantine/core": "7.8.0", - "@mantine/hooks": "7.8.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "recharts": "^2.10.3" - } - }, - "apps/dashboard/node_modules/@mantine/code-highlight": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/code-highlight/-/code-highlight-7.8.0.tgz", - "integrity": "sha512-AeuOG5TuKPOv2ifHrvwlOfNCaFpDdSwXCKq336oFBUm3Jq3B3pK+pVn3ZnX+6ccMQHwsHf/Lyv2muWHG54IEDA==", - "dependencies": { - "clsx": "2.1.0", - "highlight.js": "^11.9.0" - }, - "peerDependencies": { - "@mantine/core": "7.8.0", - "@mantine/hooks": "7.8.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "apps/dashboard/node_modules/@mantine/core": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.8.0.tgz", - "integrity": "sha512-19RKuNdJ/s8pZjy2w2rvTsl4ybi/XM6vf+Kc0WY7kpLFCvdG+/UxNi1MuJF8t2Zs0QSFeb/H5yZQNe0XPbegHw==", - "dependencies": { - "@floating-ui/react": "^0.26.9", - "clsx": "2.1.0", - "react-number-format": "^5.3.1", - "react-remove-scroll": "^2.5.7", - "react-textarea-autosize": "8.5.3", - "type-fest": "^4.12.0" - }, - "peerDependencies": { - "@mantine/hooks": "7.8.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "apps/dashboard/node_modules/@mantine/hooks": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.8.0.tgz", - "integrity": "sha512-+70fkgjhVJeJ+nJqnburIM3UAsfvxat1Low9HMPobLbv64FIdB4Nzu5ct3qojNQ58r5sK01tg5UoFIJYslaVrg==", - "peerDependencies": { - "react": "^18.2.0" - } - }, - "apps/dashboard/node_modules/@mantine/notifications": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.8.0.tgz", - "integrity": "sha512-O7BnaCcwVg38fh+gSZ6GEsTFPPgJAiOTrRkOMXG+7pNqJT9YNa9KDZhiPZzn3WV4wexncjyK32a8gGSVtf+kdg==", + "apps/dashboard/node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, "dependencies": { - "@mantine/store": "7.8.0", - "react-transition-group": "4.4.5" - }, - "peerDependencies": { - "@mantine/core": "7.8.0", - "@mantine/hooks": "7.8.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "undici-types": "~5.26.4" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -482,10 +423,55 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@mantine/charts": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-7.9.1.tgz", + "integrity": "sha512-54IULzkDg+D5wsh4lV/pShxdph6v0di/jZTLSTj5k6EDTTMHPNvkSzPlyPwMjjludojDulT7PfS6fwczFDDhyg==", + "peerDependencies": { + "@mantine/core": "7.9.1", + "@mantine/hooks": "7.9.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "recharts": "^2.10.3" + } + }, + "node_modules/@mantine/code-highlight": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/code-highlight/-/code-highlight-7.9.1.tgz", + "integrity": "sha512-4FEEcfz4mMx/DzIMfnJGp+CXCyITVFwrGL0Hh35OeL/E/OIRejvHDM8TUgmoWMqGspK+jtYf2XiOAVQKBGBgDg==", + "dependencies": { + "clsx": "2.1.0", + "highlight.js": "^11.9.0" + }, + "peerDependencies": { + "@mantine/core": "7.9.1", + "@mantine/hooks": "7.9.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/@mantine/core": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.9.1.tgz", + "integrity": "sha512-UXK11t1fAQ2ROQ9HTIZfyU52XdwS8sFJ2SRUh5uHMWSahJo3wTdKzaCvYN7wg+ONM9p6ENT0hC0dfv5qXoKU4w==", + "dependencies": { + "@floating-ui/react": "^0.26.9", + "clsx": "2.1.0", + "react-number-format": "^5.3.1", + "react-remove-scroll": "^2.5.7", + "react-textarea-autosize": "8.5.3", + "type-fest": "^4.12.0" + }, + "peerDependencies": { + "@mantine/hooks": "7.9.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, "node_modules/@mantine/form": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/form/-/form-7.8.0.tgz", - "integrity": "sha512-Qn3/69zGt/p3wyMwGz2V0+FbmvqC2/PvXaeyO0a4CnwhROeE7ObyCKXDcBmgapOSBHr/7wFvMeTDMaTMfe3DXw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-7.9.1.tgz", + "integrity": "sha512-6Z4LkACT1ouoTvtI9hH/rT+L7qvfKnCypUyaCtYpPkA57ANamK7qkmeXXBmbGGOf8mJB+ZSgOvpDVKKRz5iH3Q==", "dependencies": { "fast-deep-equal": "^3.1.3", "klona": "^2.0.6" @@ -494,10 +480,33 @@ "react": "^18.2.0" } }, + "node_modules/@mantine/hooks": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.9.1.tgz", + "integrity": "sha512-nb2Ar+2HfGxLjGZgObapeUeqcQsUWJ+rvj4X2KNTUy3+YpvLIMD3CqREowWHF7/5OTGh4BCyBqQNZ9JFpnMeHQ==", + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/@mantine/notifications": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.9.1.tgz", + "integrity": "sha512-+fzc/+conYQMqE72eaKcxaOrLijsWExRO6Rp+QVgsmp3Hf57yksRdEbVE259PrWq3jaVI8G4XIMeKdYK0tB5Pw==", + "dependencies": { + "@mantine/store": "7.9.1", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "7.9.1", + "@mantine/hooks": "7.9.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, "node_modules/@mantine/store": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.8.0.tgz", - "integrity": "sha512-oN/BXGYdUywRi0zj9ppaShv2sw5QON2DaRisB4ewJ5tDDz8qyeckgdE0NMaaU2TwpoScs8ibSnOVWV5y+vYkMA==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.9.1.tgz", + "integrity": "sha512-m15k51F4n6R08Iii+TWG64lofiYB9hhEGS+3y+9DZHuY+hSmTmQX9J5WKVNYJ3jmV24QG96EjEQNuLBcG2atSg==", "peerDependencies": { "react": "^18.2.0" } @@ -530,23 +539,23 @@ } }, "node_modules/@next/env": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.2.tgz", - "integrity": "sha512-sk72qRfM1Q90XZWYRoJKu/UWlTgihrASiYw/scb15u+tyzcze3bOuJ/UV6TBOQEeUaxOkRqGeuGUdiiuxc5oqw==" + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", + "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.2.tgz", - "integrity": "sha512-q+Ec2648JtBpKiu/FSJm8HAsFXlNvioHeBCbTP12T1SGcHYwhqHULSfQgFkPgHDu3kzNp2Kem4J54bK4rPQ5SQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.3.tgz", + "integrity": "sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==", "dev": true, "dependencies": { "glob": "10.3.10" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.2.tgz", - "integrity": "sha512-3iPgMhzbalizGwHNFUcGnDhFPSgVBHQ8aqSTAMxB5BvJG0oYrDf1WOJZlbXBgunOEj/8KMVbejEur/FpvFsgFQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", + "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==", "cpu": [ "arm64" ], @@ -559,9 +568,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.2.tgz", - "integrity": "sha512-x7Afi/jt0ZBRUZHTi49yyej4o8znfIMHO4RvThuoc0P+uli8Jd99y5GKjxoYunPKsXL09xBXEM1+OQy2xEL0Ag==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz", + "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==", "cpu": [ "x64" ], @@ -574,9 +583,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.2.tgz", - "integrity": "sha512-zbfPtkk7L41ODMJwSp5VbmPozPmMMQrzAc0HAUomVeVIIwlDGs/UCqLJvLNDt4jpWgc21SjjyIn762lNGrMaUA==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz", + "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==", "cpu": [ "arm64" ], @@ -589,9 +598,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.2.tgz", - "integrity": "sha512-wPbS3pI/JU16rm3XdLvvTmlsmm1nd+sBa2ohXgBZcShX4TgOjD4R+RqHKlI1cjo/jDZKXt6OxmcU0Iys0OC/yg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz", + "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==", "cpu": [ "arm64" ], @@ -604,9 +613,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.2.tgz", - "integrity": "sha512-NqWOHqqq8iC9tuHvZxjQ2tX+jWy2X9y8NX2mcB4sj2bIccuCxbIZrU/ThFPZZPauygajZuVQ6zediejQHwZHwQ==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz", + "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==", "cpu": [ "x64" ], @@ -619,9 +628,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.2.tgz", - "integrity": "sha512-lGepHhwb9sGhCcU7999+iK1ZZT+6rrIoVg40MP7DZski9GIZP80wORSbt5kJzh9v2x2ev2lxC6VgwMQT0PcgTA==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz", + "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==", "cpu": [ "x64" ], @@ -634,9 +643,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.2.tgz", - "integrity": "sha512-TZSh/48SfcLEQ4rD25VVn2kdIgUWmMflRX3OiyPwGNXn3NiyPqhqei/BaqCYXViIQ+6QsG9R0C8LftMqy8JPMA==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz", + "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==", "cpu": [ "arm64" ], @@ -649,9 +658,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.2.tgz", - "integrity": "sha512-M0tBVNMEBJN2ZNQWlcekMn6pvLria7Sa2Fai5znm7CCJz4pP3lrvlSxhKdkCerk0D9E0bqx5yAo3o2Q7RrD4gA==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz", + "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==", "cpu": [ "ia32" ], @@ -664,9 +673,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.2.tgz", - "integrity": "sha512-a/20E/wtTJZ3Ykv3f/8F0l7TtgQa2LWHU2oNB9bsu0VjqGuGGHmm/q6waoUNQYTVPYrrlxxaHjJcDV6aiSTt/w==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz", + "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==", "cpu": [ "x64" ], @@ -1018,20 +1027,20 @@ } }, "node_modules/@tabler/icons": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.2.0.tgz", - "integrity": "sha512-h8GQ2rtxgiSjltrVz4vcopAxTPSpUSUi5nBfJ09H3Bk4fJk6wZ/dVUjzhv/BHfDwGTkAxZBiYe/Q/T95cPeg5Q==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.3.0.tgz", + "integrity": "sha512-PLVe9d7b59sKytbx00KgeGhQG3N176Ezv8YMmsnSz4s0ifDzMWlp/h2wEfQZ0ZNe8e377GY2OW6kovUe3Rnd0g==", "funding": { "type": "github", "url": "https://github.com/sponsors/codecalm" } }, "node_modules/@tabler/icons-react": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.2.0.tgz", - "integrity": "sha512-b1mZT1XpZrzvbM+eFe1YbYbxkzgJ18tM4knZKqXh0gnHDZ6XVLIH3TzJZ3HZ7PTkUqZLZ7XcGae3qQVGburlBw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.3.0.tgz", + "integrity": "sha512-Qn1Po+0gErh1zCWlaOdoVoGqeonWfSuiboYgwZBs6PIJNsj7yr3bIa4BkHmgJgtlXLT9LvCzt/RvwlgjxLfjjg==", "dependencies": { - "@tabler/icons": "3.2.0" + "@tabler/icons": "3.3.0" }, "funding": { "type": "github", @@ -1042,20 +1051,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.29.0.tgz", - "integrity": "sha512-WgPTRs58hm9CMzEr5jpISe8HXa3qKQ8CxewdYZeVnA54JrPY9B1CZiwsCoLpLkf0dGRZq+LcX5OiJb0bEsOFww==", + "version": "5.35.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.35.5.tgz", + "integrity": "sha512-OMWvlEqG01RfGj+XZb/piDzPp0eZkkHWSDHt2LvE/fd1zWburP/xwm0ghk6Iv8cuPlP+ACFkZviKXK0OVt6lhg==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.29.2.tgz", - "integrity": "sha512-nyuWILR4u7H5moLGSiifLh8kIqQDLNOHGuSz0rcp+J75fNc8aQLyr5+I2JCHU3n+nJrTTW1ssgAD8HiKD7IFBQ==", + "version": "5.35.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.35.5.tgz", + "integrity": "sha512-sppX7L+PVn5GBV3In6zzj0zcKfnZRKhXbX1MfIfKo1OjIq2GMaopvAFOP0x1bRYTUk2ikrdYcQYOozX7PWkb8A==", "dependencies": { - "@tanstack/query-core": "5.29.0" + "@tanstack/query-core": "5.35.5" }, "funding": { "type": "github", @@ -1209,9 +1218,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", - "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz", + "integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==", "dev": true }, "node_modules/@types/ms": { @@ -1221,9 +1230,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "20.12.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", + "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", "dependencies": { "undici-types": "~5.26.4" } @@ -1235,9 +1244,9 @@ "devOptional": true }, "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "version": "18.3.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", + "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", "devOptional": true, "dependencies": { "@types/prop-types": "*", @@ -1245,9 +1254,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", - "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "dependencies": { "@types/react": "*" @@ -2852,9 +2861,9 @@ "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==" }, "node_modules/cypress": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.8.0.tgz", - "integrity": "sha512-Qau//mtrwEGOU9cn2YjavECKyDUwBh8J2tit+y9s1wsv6C3BX+rlv6I9afmQnL8PmEEzJ6be7nppMHacFzZkTw==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.9.0.tgz", + "integrity": "sha512-atNjmYfHsvTuCaxTxLZr9xGoHz53LLui3266WWxXJHY7+N6OdwJdg/feEa3T+buez9dmUXHT1izCOklqG82uCQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3604,12 +3613,12 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.2.tgz", - "integrity": "sha512-12/uFc0KX+wUs7EDpOUGKMXBXZJiBVGdK5/m/QgXOCg2mQ0bQWoKSWNrCeOg7Vum6Kw1d1TW453W6xh+GbHquw==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.3.tgz", + "integrity": "sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "14.2.2", + "@next/eslint-plugin-next": "14.2.3", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", "eslint-import-resolver-node": "^0.3.6", @@ -4313,6 +4322,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, "dependencies": { "pend": "~1.2.0" } @@ -6114,9 +6124,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -6211,12 +6221,12 @@ } }, "node_modules/mongodb-memory-server": { - "version": "9.1.8", - "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.8.tgz", - "integrity": "sha512-QumPTOlWWWzgW6dtV4bf+ZFdTxenHSSGS4ZT85Vbb+FzPVoOtfcFwYlSfC9IM4e2nw7xvnQZvWtILYseO6HE9Q==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.2.0.tgz", + "integrity": "sha512-w/usKdYtby5EALERxmA0+et+D0brP0InH3a26shNDgGefXA61hgl6U0P3IfwqZlEGRZdkbZig3n57AHZgDiwvg==", "hasInstallScript": true, "dependencies": { - "mongodb-memory-server-core": "9.1.8", + "mongodb-memory-server-core": "9.2.0", "tslib": "^2.6.2" }, "engines": { @@ -6224,22 +6234,22 @@ } }, "node_modules/mongodb-memory-server-core": { - "version": "9.1.8", - "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.8.tgz", - "integrity": "sha512-iCWwaP7De4lm1lRCUKB2ffUYr6GB0I/cj6fK0NV9dgwc9fA3xapHTTT/cPYRNx29M5gmAOSaOpUgjP7i2GZ/LQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.2.0.tgz", + "integrity": "sha512-9SWZEy+dGj5Fvm5RY/mtqHZKS64o4heDwReD4SsfR7+uNgtYo+JN41kPCcJeIH3aJf04j25i5Dia2s52KmsMPA==", "dependencies": { "async-mutex": "^0.4.0", "camelcase": "^6.3.0", "debug": "^4.3.4", "find-cache-dir": "^3.3.2", "follow-redirects": "^1.15.6", - "https-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", "mongodb": "^5.9.1", "new-find-package-json": "^2.0.0", - "semver": "^7.5.4", - "tar-stream": "^3.0.0", + "semver": "^7.6.0", + "tar-stream": "^3.1.7", "tslib": "^2.6.2", - "yauzl": "^2.10.0" + "yauzl": "^3.1.3" }, "engines": { "node": ">=14.20.1" @@ -6268,6 +6278,18 @@ "node": ">= 14" } }, + "node_modules/mongodb-memory-server-core/node_modules/yauzl": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.3.tgz", + "integrity": "sha512-JCCdmlJJWv7L0q/KylOekyRaUrdEoUxWkWVcgorosTROCFWiS9p2NNPE9Yb91ak7b1N5SxAZEliWpspbZccivw==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/mongoose": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.3.2.tgz", @@ -6482,11 +6504,11 @@ } }, "node_modules/next": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.2.tgz", - "integrity": "sha512-oGwUaa2bCs47FbuxWMpOoXtBMPYpvTPgdZr3UAo+pu7Ns00z9otmYpoeV1HEiYL06AlRQQIA/ypK526KjJfaxg==", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz", + "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==", "dependencies": { - "@next/env": "14.2.2", + "@next/env": "14.2.3", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -6501,15 +6523,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.2", - "@next/swc-darwin-x64": "14.2.2", - "@next/swc-linux-arm64-gnu": "14.2.2", - "@next/swc-linux-arm64-musl": "14.2.2", - "@next/swc-linux-x64-gnu": "14.2.2", - "@next/swc-linux-x64-musl": "14.2.2", - "@next/swc-win32-arm64-msvc": "14.2.2", - "@next/swc-win32-ia32-msvc": "14.2.2", - "@next/swc-win32-x64-msvc": "14.2.2" + "@next/swc-darwin-arm64": "14.2.3", + "@next/swc-darwin-x64": "14.2.3", + "@next/swc-linux-arm64-gnu": "14.2.3", + "@next/swc-linux-arm64-musl": "14.2.3", + "@next/swc-linux-x64-gnu": "14.2.3", + "@next/swc-linux-x64-musl": "14.2.3", + "@next/swc-win32-arm64-msvc": "14.2.3", + "@next/swc-win32-ia32-msvc": "14.2.3", + "@next/swc-win32-x64-msvc": "14.2.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -7045,9 +7067,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.0.tgz", + "integrity": "sha512-LNHTaVkzaYaLGlO+0u3rQTz7QrHTFOuKyba9JMTQutkmtNew8dw8wOD7mTU/5fCPZzCWpfW0XnQKzY61P0aTaw==", "dev": true, "dependencies": { "lru-cache": "^10.2.0", @@ -7061,9 +7083,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -7452,9 +7474,9 @@ } }, "node_modules/postcss-preset-mantine": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/postcss-preset-mantine/-/postcss-preset-mantine-1.14.4.tgz", - "integrity": "sha512-T1K3MVhU1hA9mJWfqoGvMcK5WKcHpVi4JUX6AYTbESvp78WneB/KFONUi+eXDG9Lpw62W/KNxEYl1ic3Dpm88w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/postcss-preset-mantine/-/postcss-preset-mantine-1.15.0.tgz", + "integrity": "sha512-OKPs6uoORSXlU/GFH1ZtFaslecHBPwuoSikdL5W3WKJm4ZPAQM0mw9x9m3toa/Mo1JhoBmYMM28i+zEdav5Edg==", "dev": true, "dependencies": { "postcss-mixins": "^9.0.4", @@ -7735,9 +7757,9 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -7746,15 +7768,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -7922,9 +7944,9 @@ } }, "node_modules/recharts": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.6.tgz", - "integrity": "sha512-D+7j9WI+D0NHauah3fKHuNNcRK8bOypPW7os1DERinogGBGaHI7i6tQKJ0aUF3JXyBZ63dyfKIW2WTOPJDxJ8w==", + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", + "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", @@ -8252,9 +8274,9 @@ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } @@ -9820,6 +9842,7 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -9837,9 +9860,9 @@ } }, "node_modules/zod": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.5.tgz", - "integrity": "sha512-HqnGsCdVZ2xc0qWPLdO25WnseXThh0kEYKIdV5F/hTHO75hNZFp8thxSeHhiPrHZKrFTo1SOgkAj9po5bexZlw==", + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", "funding": { "url": "https://github.com/sponsors/colinhacks" }