From 88c43d62c6d2fa54682e1df4c7676ac3bb1fc0db Mon Sep 17 00:00:00 2001 From: TobiZog Date: Fri, 20 Sep 2024 12:57:19 +0200 Subject: [PATCH] Improved user feedback system, improved Product detail view --- misc/.$database.drawio.bkp | 234 ++++++ misc/database.drawio | 196 +++-- misc/images/database.png | Bin 72821 -> 103967 bytes software/backend/models/category.model.ts | 3 +- software/backend/routes/account.routes.ts | 53 +- software/backend/routes/category.routes.ts | 4 +- software/backend/routes/order.routes.ts | 2 +- software/backend/routes/product.routes.ts | 8 +- software/package-lock.json | 683 ++++++++---------- software/package.json | 4 +- software/src/components/actionDialog.vue | 22 +- software/src/data/api/accountApi.ts | 10 +- software/src/data/enums/bannerStateEnum.ts | 81 ++- software/src/data/stores/basketStore.ts | 8 + software/src/data/stores/feedbackStore.ts | 95 ++- software/src/data/stores/userStore.ts | 48 +- software/src/locales/de.json | 18 +- software/src/locales/en.json | 18 +- .../src/pages/accountPage/accountDataCard.vue | 77 ++ software/src/pages/accountPage/index.vue | 81 +-- software/src/pages/basketPage/index.vue | 6 + software/src/pages/productsPage/index.vue | 11 +- .../src/pages/productsPage/productDetails.vue | 47 +- software/src/scripts/productScripts.ts | 6 +- 24 files changed, 1113 insertions(+), 602 deletions(-) create mode 100644 misc/.$database.drawio.bkp create mode 100644 software/src/pages/accountPage/accountDataCard.vue diff --git a/misc/.$database.drawio.bkp b/misc/.$database.drawio.bkp new file mode 100644 index 0000000..00408a4 --- /dev/null +++ b/misc/.$database.drawio.bkp @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/misc/database.drawio b/misc/database.drawio index 92b4be4..dcddf83 100644 --- a/misc/database.drawio +++ b/misc/database.drawio @@ -1,6 +1,6 @@ - + - + @@ -11,145 +11,223 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + + + + + + + - + - + - + - + - + - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/misc/images/database.png b/misc/images/database.png index b46e45ecd728dc22960884367ab44331c92d5a60..5db43ea0c4d27e05a7889611b5ea231f6163a57b 100644 GIT binary patch literal 103967 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ÓKIQH9a{L_fVTh>DHwS&sFqz|Ml%fsl2jk?SN>580a04wa<^@Qyde?3#*Kdk!PC38KkAz# zQRSQ~fQ`r`uxI{akGy;Y2M=LjbN6gi$nAtAf9N($b%S+z_VkSt z`4tHpePG0ixeATFvOtb&cTM~g^g^DH9v0U8NQ)5WX}_($&L4=8t5HB1w8Peu5jGP3 z(v}0Q%z+Z~0cezQ;*JDVoPeXHD23d72L;cJkEvWM+=unIf0|wFZ$oYCf%7w3sDPsih8UW;v+4RnS`RYzIQ5HwWR~g zk4t>_^IoFn`iRuIEq*W@X~vs_l#*2Ql4D8kx{c0cW5oBN3mPU10c&;oZ&{oce{E`-sH zRp?NF0LFyEfOJ!3B-uO0P~tW0AsqfZgrs@gT@ztd{FmNnPuXf?1_9?$Ns^iTDi;nd zl0qo|#n^`F(xZA07JV#?{V57_)c{ZL#3dO=09Y&M$&*5gAbpk%)0L*^E+?DbfKyMS zn8No&t%$%MlguAzQkDR$TcBC-SiMvy2q5UK?9eR9AiIkLLz8cj?UqL}(rlm$tX&iGW!FXeEpbp zoolW2Pnd$}2^9m2#luhw&n({kEtZCjW}c|xsoS%kwr>|&gaJ4TSGobz#6H87AUvE# zaP$D<3ED6-0Hl^qt^r>3z8YbO{^8SP>F|daaldkK02Ubl(s&7jI+&ILeaq=& z6BmTG6*a`5e+B?ZqO*48S%DScNPs1gkMNgh+)>i`qlWc7sfnm9at}q0Pl_hxN4vR()>rSP#XBY)@p_wtS~$LRn0<` zTovpFA?KrlVHD5-I7*lLj({l2{%gztE*KYv}wdiHq)g|DsvkoOWR2&U)H2P|pmyZZt8EHH&2c%oIA zbA+$6fnilI1pxUs+$5g)>6!ZmZL;ZIgWRP{z-bo1LJFINu@4GjR<$zje9 zH@LSw?LNqzx5Dq1yJS)YxB>Azr^iIy6=32R6nvjCy#Rol5EE^n^p?51iOjIvL zFD^IInOpmNTApAZ=9HY6!kQc+iSBQjw`xR-R}AAWw?^Ioe6mw`|I+FnCi^+x(|uWs zj6sqy>D=|Z4(stT*~n)LBNEWmt-&HKK5&87pc6jLnaqhRTwkc~AvrnHlF?U#AyhLx ztqTo~a;7a?#oLo#iXp~Qt#}+Z%-YojS_1=xDK0z1C(+#Ppg`<=cl+MrCNDiV(Q!AU8QbV`YEiR(8R51($h!dX zkowtn50*GYr@i%9`{=3quTjyLr#E>KI3fh~6+@a0l+3()PD|Y;bQ3JwEkUyO@iY=i zkj?qh&&Tqot!s;HjB>&BV^TDZ-{U)x#!?IKKpRB43aYR(TZ6tenyZ?tFfjMrVjPA3 zRg5zIB#3DmFU$Z8T;Y5SeOUl{z~NxV3cMoPY0JpCEn@I|*MbHZuqlN!W1*Iy;wyO0 zij-U5f∓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 YW_|7Ls_Ai7GfeP@(=@;qoVLCFe}hkbXaE2J literal 72821 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 diff --git a/software/backend/models/category.model.ts b/software/backend/models/category.model.ts index b8169cc..8734eb2 100644 --- a/software/backend/models/category.model.ts +++ b/software/backend/models/category.model.ts @@ -1,8 +1,9 @@ -import { Table, Column, Model, BelongsTo, ForeignKey, HasMany } from 'sequelize-typescript'; +import { Table, Column, Model, BelongsTo, ForeignKey, HasMany, Unique } from 'sequelize-typescript'; import { Product } from './product.model'; @Table export class Category extends Model { + @Unique @Column name: string diff --git a/software/backend/routes/account.routes.ts b/software/backend/routes/account.routes.ts index a570bbe..a922c62 100644 --- a/software/backend/routes/account.routes.ts +++ b/software/backend/routes/account.routes.ts @@ -14,33 +14,22 @@ account.post("/login", (req: Request, res: Response) => { if (account != null) { if (account.password == req.body.password) { // Status: 200 OK - res.status(200).json({ - loginSuccessful: true, - account: account, - message: "" - }).send() + res.status(200).json(account).send() } else { // Status: 401 Unauthorized - res.status(401).json({ - loginSuccessful: false, - account: null, - message: "Wrong password" - }).send() + res.status(401).send() } } else { - // Status: 401 Unauthorized - res.status(401).json({ - loginSuccessful: false, - userId: -1, - message: "Username doesn't exists" - }).send() + // Status: 400 Bad request + res.status(400).send() } } ) }) // Creating a new user -account.post("/register", (req: Request, res: Response) => { +account.post("/", (req: Request, res: Response) => { + // Check if username is valid if (!validateString(req.body.username, 4)) { // Status: 400 Bad request @@ -48,25 +37,25 @@ account.post("/register", (req: Request, res: Response) => { message: "Username too short!" }).send() } - else if (!validateString(req.body.password, 8)) + + // Check if password is valid + if (!validateString(req.body.password, 8)) { // Status: 400 Bad request res.status(400).json({ message: "Password too short!" }).send() } - else - { - Account.create(req.body) - .then(account => { - res.status(200).json(account).send() - }).catch(reason => { - // Status: 400 Bad request - res.status(400).json({ - message: reason - }).send() - }) - } + + // Create account + Account.create(req.body) + .then(account => { + // Status: 201 Created + res.status(201).json(account).send() + }).catch(reason => { + // Status: 409 Conflict + res.status(409).send() + }) }) account.patch("/", (req: Request, res: Response) => { @@ -75,9 +64,11 @@ account.patch("/", (req: Request, res: Response) => { where: { id: req.body.id } }) .then(account => { - res.status(200).send() + // Status: 200 OK + res.status(200).json(account).send() }) .catch(error => { + // Status: 400 Bad request res.status(400).json({ message: error }).send() diff --git a/software/backend/routes/category.routes.ts b/software/backend/routes/category.routes.ts index 4c562ef..0a555c4 100644 --- a/software/backend/routes/category.routes.ts +++ b/software/backend/routes/category.routes.ts @@ -10,7 +10,7 @@ category.get("/", (req: Request, res: Response, next: NextFunction) => { res.status(200).json(categories).send() }) .catch(error => { - res.status(400)//.json({ message: error }).send() + res.status(400) }) }) @@ -36,7 +36,7 @@ category.delete("/:id", (req: Request, res: Response, next: NextFunction) => { res.status(200).send() }) .catch(error => { - res.status(406).json({ + res.status(400).json({ message: error }).send() }) diff --git a/software/backend/routes/order.routes.ts b/software/backend/routes/order.routes.ts index 053b2a7..0a3df85 100644 --- a/software/backend/routes/order.routes.ts +++ b/software/backend/routes/order.routes.ts @@ -14,7 +14,7 @@ order.get("/:id", (req: Request, res: Response) => { ] }) .then(orders => { - res.status(200).send(orders) + res.status(200).json(orders).send() }) }) diff --git a/software/backend/routes/product.routes.ts b/software/backend/routes/product.routes.ts index e112b75..ff3720a 100644 --- a/software/backend/routes/product.routes.ts +++ b/software/backend/routes/product.routes.ts @@ -18,7 +18,7 @@ product.get("/", (req: Request, res: Response) => { product.get("/:productId", (req: Request, res: Response) => { Product.findByPk(req.params.productId) .then(product => { - res.status(200).json(product) + res.status(200).json(product).send() }) }) @@ -26,7 +26,7 @@ product.get("/:productId", (req: Request, res: Response) => { product.post("/", (req: Request, res: Response) => { Product.create(req.body) .then(product => { - res.status(200).send() + res.status(201).json(product).send() }) .catch(error => { res.status(400).json({ @@ -41,10 +41,10 @@ product.delete("/:id", (req: Request, res: Response) => { where: { id: req.params.id } }) .then(product => { - res.status(200).send() + res.status(200).json(product).send() }) .catch(error => { - res.status(406).json({ + res.status(400).json({ message: error }).send() }) diff --git a/software/package-lock.json b/software/package-lock.json index da63cf6..9ba95c2 100644 --- a/software/package-lock.json +++ b/software/package-lock.json @@ -12,7 +12,7 @@ "@vueuse/core": "^11.0.3", "axios": "^1.7.7", "body-parser": "^1.20.2", - "concurrently": "^8.2.2", + "concurrently": "^9.0.1", "cors": "^2.8.5", "express": "^4.19.2", "pinia": "^2.2.2", @@ -24,7 +24,7 @@ "vue": "^3.4.29", "vue-i18n": "^10.0.0", "vue-router": "^4.4.3", - "vuetify": "^3.7.1", + "vuetify": "^3.7.2", "wait-on": "^8.0.0" }, "devDependencies": { @@ -69,18 +69,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.25.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", @@ -521,13 +509,13 @@ } }, "node_modules/@intlify/core-base": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.0.tgz", - "integrity": "sha512-o4d4Nve7YzU1YMR5VMqgPr8jDGTgT2pOOUtZa3JwCAhFnm40JYxfHdWToT7OEx6oJCBs/Q8HosJOhsimlF0C0Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.1.tgz", + "integrity": "sha512-6kpRGjhos95ph7QmEtP4tnWFTW102s71CLQAQwfsIGqOAcoJhzcYFpzIQ0gKXzqAIXsMD/hwM5qJ4ewqMHw3gg==", "license": "MIT", "dependencies": { - "@intlify/message-compiler": "10.0.0", - "@intlify/shared": "10.0.0" + "@intlify/message-compiler": "10.0.1", + "@intlify/shared": "10.0.1" }, "engines": { "node": ">= 16" @@ -537,12 +525,12 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.0.tgz", - "integrity": "sha512-OcaWc63NC/9p1cMdgoNKBj4d61BH8sUW1Hfs6YijTd9656ZR4rNqXAlRnBrfS5ABq0vjQjpa8VnyvH9hK49yBw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.1.tgz", + "integrity": "sha512-fPeykrcgVT5eOIlshTHiPCN8FV3AZyBOdMS3XaXzfQ6eL5wqfc29I/EdIv5YXVW5X8e/BgYeWjBC0Cuznsl/2g==", "license": "MIT", "dependencies": { - "@intlify/shared": "10.0.0", + "@intlify/shared": "10.0.1", "source-map-js": "^1.0.2" }, "engines": { @@ -553,9 +541,9 @@ } }, "node_modules/@intlify/shared": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.0.tgz", - "integrity": "sha512-6ngLfI7DOTew2dcF9WMJx+NnMWghMBhIiHbGg+wRvngpzD5KZJZiJVuzMsUQE1a5YebEmtpTEfUrDp/NqVGdiw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.1.tgz", + "integrity": "sha512-b4h7IWdZl710DnAhET8lgfgZ4Y9A2IZx/gbli3Ec/zHtYCoPqLHmiM7kUNBrSZj7d/SSjcMMZHuz5I09x3PYZw==", "license": "MIT", "engines": { "node": ">= 16" @@ -622,9 +610,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz", - "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.2.tgz", + "integrity": "sha512-8Ao+EDmTPjZ1ZBABc1ohN7Ylx7UIYcjReZinigedTOnGFhIctyGPxY2II+hJ6gD2/vkDKZTyQ0e7++kwv6wDrw==", "cpu": [ "arm" ], @@ -636,9 +624,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz", - "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.2.tgz", + "integrity": "sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==", "cpu": [ "arm64" ], @@ -650,9 +638,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", - "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.2.tgz", + "integrity": "sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==", "cpu": [ "arm64" ], @@ -664,9 +652,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz", - "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.2.tgz", + "integrity": "sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==", "cpu": [ "x64" ], @@ -678,9 +666,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz", - "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.2.tgz", + "integrity": "sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==", "cpu": [ "arm" ], @@ -692,9 +680,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz", - "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.2.tgz", + "integrity": "sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==", "cpu": [ "arm" ], @@ -706,9 +694,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz", - "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.2.tgz", + "integrity": "sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==", "cpu": [ "arm64" ], @@ -720,9 +708,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz", - "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.2.tgz", + "integrity": "sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==", "cpu": [ "arm64" ], @@ -734,9 +722,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz", - "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.2.tgz", + "integrity": "sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==", "cpu": [ "ppc64" ], @@ -748,9 +736,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz", - "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.2.tgz", + "integrity": "sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==", "cpu": [ "riscv64" ], @@ -762,9 +750,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz", - "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.2.tgz", + "integrity": "sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==", "cpu": [ "s390x" ], @@ -776,9 +764,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz", - "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.2.tgz", + "integrity": "sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==", "cpu": [ "x64" ], @@ -790,9 +778,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz", - "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.2.tgz", + "integrity": "sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==", "cpu": [ "x64" ], @@ -804,9 +792,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz", - "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.2.tgz", + "integrity": "sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==", "cpu": [ "arm64" ], @@ -818,9 +806,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz", - "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.2.tgz", + "integrity": "sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==", "cpu": [ "ia32" ], @@ -832,9 +820,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz", - "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.2.tgz", + "integrity": "sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==", "cpu": [ "x64" ], @@ -994,18 +982,18 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", - "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==", + "version": "22.5.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", + "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "dev": true, "license": "MIT" }, @@ -1040,9 +1028,9 @@ } }, "node_modules/@types/validator": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.1.tgz", - "integrity": "sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA==", + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", "license": "MIT" }, "node_modules/@types/web-bluetooth": { @@ -1052,9 +1040,9 @@ "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz", - "integrity": "sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", + "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", "dev": true, "license": "MIT", "engines": { @@ -1066,120 +1054,120 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", - "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.6.tgz", + "integrity": "sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.38", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.6", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", - "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz", + "integrity": "sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-core": "3.5.6", + "@vue/shared": "3.5.6" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", - "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz", + "integrity": "sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.38", - "@vue/compiler-dom": "3.4.38", - "@vue/compiler-ssr": "3.4.38", - "@vue/shared": "3.4.38", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.6", + "@vue/compiler-dom": "3.5.6", + "@vue/compiler-ssr": "3.5.6", + "@vue/shared": "3.5.6", "estree-walker": "^2.0.2", - "magic-string": "^0.30.10", - "postcss": "^8.4.40", + "magic-string": "^0.30.11", + "postcss": "^8.4.47", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", - "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz", + "integrity": "sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-dom": "3.5.6", + "@vue/shared": "3.5.6" } }, "node_modules/@vue/devtools-api": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", - "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", "license": "MIT" }, "node_modules/@vue/reactivity": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", - "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.6.tgz", + "integrity": "sha512-shZ+KtBoHna5GyUxWfoFVBCVd7k56m6lGhk5e+J9AKjheHF6yob5eukssHRI+rzvHBiU1sWs/1ZhNbLExc5oYQ==", "license": "MIT", "dependencies": { - "@vue/shared": "3.4.38" + "@vue/shared": "3.5.6" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", - "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.6.tgz", + "integrity": "sha512-FpFULR6+c2lI+m1fIGONLDqPQO34jxV8g6A4wBOgne8eSRHP6PQL27+kWFIx5wNhhjkO7B4rgtsHAmWv7qKvbg==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/reactivity": "3.5.6", + "@vue/shared": "3.5.6" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", - "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.6.tgz", + "integrity": "sha512-SDPseWre45G38ENH2zXRAHL1dw/rr5qp91lS4lt/nHvMr0MhsbCbihGAWLXNB/6VfFOJe2O+RBRkXU+CJF7/sw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.38", - "@vue/runtime-core": "3.4.38", - "@vue/shared": "3.4.38", + "@vue/reactivity": "3.5.6", + "@vue/runtime-core": "3.5.6", + "@vue/shared": "3.5.6", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", - "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.6.tgz", + "integrity": "sha512-zivnxQnOnwEXVaT9CstJ64rZFXMS5ZkKxCjDQKiMSvUhXRzFLWZVbaBiNF4HGDqGNNsTgmjcCSmU6TB/0OOxLA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-ssr": "3.5.6", + "@vue/shared": "3.5.6" }, "peerDependencies": { - "vue": "3.4.38" + "vue": "3.5.6" } }, "node_modules/@vue/shared": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", - "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.6.tgz", + "integrity": "sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA==", "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.0.3.tgz", - "integrity": "sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.1.0.tgz", + "integrity": "sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg==", "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "11.0.3", - "@vueuse/shared": "11.0.3", + "@vueuse/metadata": "11.1.0", + "@vueuse/shared": "11.1.0", "vue-demi": ">=0.14.10" }, "funding": { @@ -1213,18 +1201,18 @@ } }, "node_modules/@vueuse/metadata": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.0.3.tgz", - "integrity": "sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.1.0.tgz", + "integrity": "sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.0.3.tgz", - "integrity": "sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.1.0.tgz", + "integrity": "sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w==", "license": "MIT", "dependencies": { "vue-demi": ">=0.14.10" @@ -1292,9 +1280,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "license": "MIT", "dependencies": { "acorn": "^8.11.0" @@ -1317,13 +1305,13 @@ } }, "node_modules/agent-base/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "optional": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1335,9 +1323,9 @@ } }, "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT", "optional": true }, @@ -1517,9 +1505,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -1530,7 +1518,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -1778,17 +1766,15 @@ "license": "MIT" }, "node_modules/concurrently": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", - "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.0.1.tgz", + "integrity": "sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", - "date-fns": "^2.30.0", "lodash": "^4.17.21", "rxjs": "^7.8.1", "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", "supports-color": "^8.1.1", "tree-kill": "^1.2.2", "yargs": "^17.7.2" @@ -1798,7 +1784,7 @@ "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": "^14.13.0 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" @@ -1872,22 +1858,6 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2010,9 +1980,9 @@ "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -2179,37 +2149,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -2240,13 +2210,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -2258,9 +2228,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -2413,17 +2383,16 @@ "license": "MIT" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", - "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -2569,13 +2538,13 @@ } }, "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "optional": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2587,9 +2556,9 @@ } }, "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT", "optional": true }, @@ -2608,13 +2577,13 @@ } }, "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "optional": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2626,9 +2595,9 @@ } }, "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT", "optional": true }, @@ -2924,10 +2893,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", @@ -3178,9 +3150,9 @@ } }, "node_modules/node-abi": { - "version": "3.67.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.67.0.tgz", - "integrity": "sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==", + "version": "3.68.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", + "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", "license": "MIT", "dependencies": { "semver": "^7.3.5" @@ -3221,9 +3193,9 @@ } }, "node_modules/nodemon": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", - "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.6.tgz", + "integrity": "sha512-C8ymJbXpTTinxjWuMfMxw0rZhTn/r7ypSGldQyqPEgDEaVwAthqC0aodsMwontnAInN9TuPwRLeBoyhmfv+iSA==", "dev": true, "license": "MIT", "dependencies": { @@ -3250,13 +3222,13 @@ } }, "node_modules/nodemon/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3278,9 +3250,9 @@ } }, "node_modules/nodemon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -3417,15 +3389,15 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "license": "MIT" }, "node_modules/pg-connection-string": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", - "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", "license": "MIT" }, "node_modules/picocolors": { @@ -3500,9 +3472,9 @@ } }, "node_modules/postcss": { - "version": "8.4.44", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.44.tgz", - "integrity": "sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "funding": [ { "type": "opencollective", @@ -3520,8 +3492,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -3601,9 +3573,9 @@ "license": "MIT" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -3611,12 +3583,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -3697,12 +3669,6 @@ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3746,9 +3712,9 @@ } }, "node_modules/rollup": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz", - "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.2.tgz", + "integrity": "sha512-JWWpTrZmqQGQWt16xvNn6KVIUz16VtZwl984TKw0dfqqRpFwtLJYYk1/4BTgplndMQKWUk/yB4uOShYmMzA2Vg==", "dev": true, "license": "MIT", "dependencies": { @@ -3762,22 +3728,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.2", - "@rollup/rollup-android-arm64": "4.21.2", - "@rollup/rollup-darwin-arm64": "4.21.2", - "@rollup/rollup-darwin-x64": "4.21.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", - "@rollup/rollup-linux-arm-musleabihf": "4.21.2", - "@rollup/rollup-linux-arm64-gnu": "4.21.2", - "@rollup/rollup-linux-arm64-musl": "4.21.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", - "@rollup/rollup-linux-riscv64-gnu": "4.21.2", - "@rollup/rollup-linux-s390x-gnu": "4.21.2", - "@rollup/rollup-linux-x64-gnu": "4.21.2", - "@rollup/rollup-linux-x64-musl": "4.21.2", - "@rollup/rollup-win32-arm64-msvc": "4.21.2", - "@rollup/rollup-win32-ia32-msvc": "4.21.2", - "@rollup/rollup-win32-x64-msvc": "4.21.2", + "@rollup/rollup-android-arm-eabi": "4.22.2", + "@rollup/rollup-android-arm64": "4.22.2", + "@rollup/rollup-darwin-arm64": "4.22.2", + "@rollup/rollup-darwin-x64": "4.22.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.2", + "@rollup/rollup-linux-arm-musleabihf": "4.22.2", + "@rollup/rollup-linux-arm64-gnu": "4.22.2", + "@rollup/rollup-linux-arm64-musl": "4.22.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.2", + "@rollup/rollup-linux-riscv64-gnu": "4.22.2", + "@rollup/rollup-linux-s390x-gnu": "4.22.2", + "@rollup/rollup-linux-x64-gnu": "4.22.2", + "@rollup/rollup-linux-x64-musl": "4.22.2", + "@rollup/rollup-win32-arm64-msvc": "4.22.2", + "@rollup/rollup-win32-ia32-msvc": "4.22.2", + "@rollup/rollup-win32-x64-msvc": "4.22.2", "fsevents": "~2.3.2" } }, @@ -3829,9 +3795,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -3852,6 +3818,15 @@ "node": ">= 0.8.0" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3947,34 +3922,13 @@ "sequelize": ">=6.20.1" } }, - "node_modules/sequelize-typescript/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/sequelize/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3986,21 +3940,21 @@ } }, "node_modules/sequelize/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -4170,13 +4124,13 @@ } }, "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "optional": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -4188,26 +4142,21 @@ } }, "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT", "optional": true }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==" - }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -4511,9 +4460,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "license": "Apache-2.0", "peer": true, "bin": { @@ -4615,14 +4564,14 @@ } }, "node_modules/vite": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", - "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.41", + "postcss": "^8.4.43", "rollup": "^4.20.0" }, "bin": { @@ -4675,16 +4624,16 @@ } }, "node_modules/vue": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", - "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.6.tgz", + "integrity": "sha512-zv+20E2VIYbcJOzJPUWp03NOGFhMmpCKOfSxVTmCYyYFFko48H9tmuQFzYj7tu4qX1AeXlp9DmhIP89/sSxxhw==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.38", - "@vue/compiler-sfc": "3.4.38", - "@vue/runtime-dom": "3.4.38", - "@vue/server-renderer": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-dom": "3.5.6", + "@vue/compiler-sfc": "3.5.6", + "@vue/runtime-dom": "3.5.6", + "@vue/server-renderer": "3.5.6", + "@vue/shared": "3.5.6" }, "peerDependencies": { "typescript": "*" @@ -4696,13 +4645,13 @@ } }, "node_modules/vue-i18n": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.0.tgz", - "integrity": "sha512-KxTfTEuZEGN5Bvgc9F49rgp94XyBFlSIszwF2SQlr3WoxOklySXdUuoVxIw5qPZthV0mJlGP8tjJR7loMJgKrQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.1.tgz", + "integrity": "sha512-SQVlSm/1S6AaG1wexvwq3ebXUrrkx75ZHD78UAs4/rYD/X3tsQxfm6ElpT4ZPegJQEgRtOJjGripqSrfqAENtg==", "license": "MIT", "dependencies": { - "@intlify/core-base": "10.0.0", - "@intlify/shared": "10.0.0", + "@intlify/core-base": "10.0.1", + "@intlify/shared": "10.0.1", "@vue/devtools-api": "^6.5.0" }, "engines": { @@ -4716,12 +4665,12 @@ } }, "node_modules/vue-router": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.3.tgz", - "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz", + "integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==", "license": "MIT", "dependencies": { - "@vue/devtools-api": "^6.6.3" + "@vue/devtools-api": "^6.6.4" }, "funding": { "url": "https://github.com/sponsors/posva" @@ -4731,9 +4680,9 @@ } }, "node_modules/vuetify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.1.tgz", - "integrity": "sha512-N1XlczbgeGt/O+JUk72QPrqcDaRIXUdptUciJqGyTvZ9cfMoSlEWs6TZO+dOOfXbKvmIMFMycYg4dgSHDpCPhg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.7.2.tgz", + "integrity": "sha512-q0WTcRG977+a9Dqhb8TOaPm+Xmvj0oVhnBJhAdHWFSov3HhHTTxlH2nXP/GBTXZuuMHDbBeIWFuUR2/1Fx0PPw==", "license": "MIT", "engines": { "node": "^12.20 || >=14.13" @@ -4761,12 +4710,12 @@ } }, "node_modules/wait-on": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.0.tgz", - "integrity": "sha512-fNE5SXinLr2Bt7cJvjvLg2PcXfqznlqRvtE3f8AqYdRZ9BhE+XpsCp1mwQbRoO7s1q7uhAuCw0Ro3mG/KdZjEw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.1.tgz", + "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==", "license": "MIT", "dependencies": { - "axios": "^1.7.4", + "axios": "^1.7.7", "joi": "^17.13.3", "lodash": "^4.17.21", "minimist": "^1.2.8", diff --git a/software/package.json b/software/package.json index a156753..5698eb7 100644 --- a/software/package.json +++ b/software/package.json @@ -21,7 +21,7 @@ "@vueuse/core": "^11.0.3", "axios": "^1.7.7", "body-parser": "^1.20.2", - "concurrently": "^8.2.2", + "concurrently": "^9.0.1", "cors": "^2.8.5", "express": "^4.19.2", "pinia": "^2.2.2", @@ -33,7 +33,7 @@ "vue": "^3.4.29", "vue-i18n": "^10.0.0", "vue-router": "^4.4.3", - "vuetify": "^3.7.1", + "vuetify": "^3.7.2", "wait-on": "^8.0.0" }, "devDependencies": { diff --git a/software/src/components/actionDialog.vue b/software/src/components/actionDialog.vue index 08c8ec4..116ac97 100644 --- a/software/src/components/actionDialog.vue +++ b/software/src/components/actionDialog.vue @@ -14,14 +14,22 @@ defineProps({