From 4ede23be510bb03e0c6ae1b4a927270ccf4e126b Mon Sep 17 00:00:00 2001 From: taybeers22 Date: Thu, 19 Feb 2026 15:58:29 -0600 Subject: [PATCH 1/3] feat : added training certificate --- app/pages/admin/training.vue | 103 ++++++++++ env | 7 + package.json | 4 +- pnpm-lock.yaml | 286 +++++++++++++-------------- prisma/schema/schema.prisma | 11 ++ prisma/schema/volunteer.prisma | 1 + server/api/admin/training.get.ts | 8 + server/api/admin/volunteer.delete.ts | 9 + server/api/admin/volunteer.get.ts | 11 ++ server/api/admin/volunteer.patch.ts | 10 + 10 files changed, 299 insertions(+), 151 deletions(-) create mode 100644 app/pages/admin/training.vue create mode 100644 env create mode 100644 server/api/admin/training.get.ts create mode 100644 server/api/admin/volunteer.delete.ts create mode 100644 server/api/admin/volunteer.get.ts create mode 100644 server/api/admin/volunteer.patch.ts diff --git a/app/pages/admin/training.vue b/app/pages/admin/training.vue new file mode 100644 index 0000000..4b81bfc --- /dev/null +++ b/app/pages/admin/training.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/env b/env new file mode 100644 index 0000000..e4214a8 --- /dev/null +++ b/env @@ -0,0 +1,7 @@ +BETTER_AUTH_SECRET=I6oYdCbnOX2GJANjKXg3c89leZiUA0Md +BETTER_AUTH_URL=http://localhost:3000 + +DATABASE_URL="file:./prisma/dev.db" +PRISMA_DB_URL="file:../dev.db" +IMAGE_STORAGE_PATH="/home/vikachubro21/documents/projects/abide-images" +IMAGE_URL_PATH="/api/events" \ No newline at end of file diff --git a/package.json b/package.json index 7f399e1..b1500cd 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@internationalized/date": "^3.10.0", "@nuxt/ui": "^4.1.0", "@prisma/adapter-better-sqlite3": "^6.19.0", - "@prisma/client": "^7.0.0", + "@prisma/client": "^7.3.0", "better-auth": "^1.3.25", "dotenv": "^17.2.3", "maplibre-gl": "^5.11.0", @@ -36,7 +36,7 @@ "autoprefixer": "^10.4.21", "eslint": "^9.34.0", "postcss": "^8.5.6", - "prisma": "7.0.0", + "prisma": "7.3.0", "tailwindcss": "^3.4.18", "ts-node": "^10.9.2", "typescript": "^5.9.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 861d34b..c235a74 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 3.10.0 '@nuxt/ui': specifier: ^4.1.0 - version: 4.1.0(@babel/parser@7.28.5)(change-case@5.4.4)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(embla-carousel@8.6.0)(ioredis@5.8.2)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)(valibot@1.1.0(typescript@5.9.3))(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))(zod@4.1.12) + version: 4.1.0(@babel/parser@7.28.5)(change-case@5.4.4)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(embla-carousel@8.6.0)(ioredis@5.8.2)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)(valibot@1.2.0(typescript@5.9.3))(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))(zod@4.1.12) '@prisma/adapter-better-sqlite3': specifier: ^6.19.0 version: 6.19.0 '@prisma/client': - specifier: ^7.0.0 - version: 7.0.0(prisma@7.0.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3) + specifier: ^7.3.0 + version: 7.3.0(prisma@7.3.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3) better-auth: specifier: ^1.3.25 version: 1.3.34(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vue@3.5.24(typescript@5.9.3)) @@ -34,7 +34,7 @@ importers: version: 7.0.10 nuxt: specifier: ^4.1.2 - version: 4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) + version: 4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) nuxt-maplibre: specifier: ^1.1.1 version: 1.2.0(vue@3.5.24(typescript@5.9.3)) @@ -70,8 +70,8 @@ importers: specifier: ^8.5.6 version: 8.5.6 prisma: - specifier: 7.0.0 - version: 7.0.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: 7.3.0 + version: 7.3.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@24.10.1)(typescript@5.9.3) @@ -299,19 +299,19 @@ packages: '@dxup/unimport@0.1.2': resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} - '@electric-sql/pglite-socket@0.0.6': - resolution: {integrity: sha512-6RjmgzphIHIBA4NrMGJsjNWK4pu+bCWJlEWlwcxFTVY3WT86dFpKwbZaGWZV6C5Rd7sCk1Z0CI76QEfukLAUXw==} + '@electric-sql/pglite-socket@0.0.20': + resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} hasBin: true peerDependencies: - '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite': 0.3.15 - '@electric-sql/pglite-tools@0.2.7': - resolution: {integrity: sha512-9dAccClqxx4cZB+Ar9B+FZ5WgxDc/Xvl9DPrTWv+dYTf0YNubLzi4wHHRGRGhrJv15XwnyKcGOZAP1VXSneSUg==} + '@electric-sql/pglite-tools@0.2.20': + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} peerDependencies: - '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite': 0.3.15 - '@electric-sql/pglite@0.3.2': - resolution: {integrity: sha512-zfWWa+V2ViDCY/cmUfRqeWY1yLto+EpxjXnZzenB1TyxsTiXaTWeZFIZw6mac52BsuQm0RjCnisjBtdBaXOI6w==} + '@electric-sql/pglite@0.3.15': + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} '@emnapi/core@1.7.1': resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} @@ -554,8 +554,8 @@ packages: '@hexagon/base64@1.1.28': resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==} - '@hono/node-server@1.14.2': - resolution: {integrity: sha512-GHjpOeHYbr9d1vkID2sNUYkl5IxumyhDrUJB7wBp7jvqYwPFt+oNKsAPBRcdSbV7kIrXhouLE199ks1QcK4r7A==} + '@hono/node-server@1.19.9': + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -692,8 +692,8 @@ packages: '@maplibre/vt-pbf@4.0.3': resolution: {integrity: sha512-YsW99BwnT+ukJRkseBcLuZHfITB4puJoxnqPVjo72rhW/TaawVYsgQHcqWLzTxqknttYoDpgyERzWSa/XrETdA==} - '@mrleebo/prisma-ast@0.12.1': - resolution: {integrity: sha512-JwqeCQ1U3fvccttHZq7Tk0m/TMC6WcFAQZdukypW3AzlJYKYTGNVd1ANU2GuhKnv4UQuOFj3oAl0LLG/gxFN1w==} + '@mrleebo/prisma-ast@0.13.1': + resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} engines: {node: '>=16'} '@napi-rs/wasm-runtime@0.2.12': @@ -1280,12 +1280,12 @@ packages: '@prisma/adapter-better-sqlite3@6.19.0': resolution: {integrity: sha512-uNhlDx1hhubRBg5V6etlVfVAuKoyZcAKF8pKbpUmSvz5IZGrw8Ugr1JrhpMyZMqgZ1SlUqNsMVYw2EOBJz5wkQ==} - '@prisma/client-runtime-utils@7.0.0': - resolution: {integrity: sha512-PAiFgMBPrLSaakBwUpML5NevipuKSL3rtNr8pZ8CZ3OBXo0BFcdeGcBIKw/CxJP6H4GNa4+l5bzJPrk8Iq6tDw==} + '@prisma/client-runtime-utils@7.3.0': + resolution: {integrity: sha512-dG/ceD9c+tnXATPk8G+USxxYM9E6UdMTnQeQ+1SZUDxTz7SgQcfxEqafqIQHcjdlcNK/pvmmLfSwAs3s2gYwUw==} - '@prisma/client@7.0.0': - resolution: {integrity: sha512-FM1NtJezl0zH3CybLxcbJwShJt7xFGSRg+1tGhy3sCB8goUDnxnBR+RC/P35EAW8gjkzx7kgz7bvb0MerY2VSw==} - engines: {node: ^20.19 || ^22.12 || ^24.0} + '@prisma/client@7.3.0': + resolution: {integrity: sha512-FXBIxirqQfdC6b6HnNgxGmU7ydCPEPk7maHMOduJJfnTP+MuOGa15X4omjR/zpPUUpm8ef/mEFQjJudOGkXFcQ==} + engines: {node: ^20.19 || ^22.12 || >=24.0} peerDependencies: prisma: '*' typescript: '>=5.4.0' @@ -1295,44 +1295,44 @@ packages: typescript: optional: true - '@prisma/config@7.0.0': - resolution: {integrity: sha512-TDASB57hyGUwHB0IPCSkoJcXFrJOKA1+R/1o4np4PbS+E0F5MiY5aAyUttO0mSuNQaX7t8VH/GkDemffF1mQzg==} + '@prisma/config@7.3.0': + resolution: {integrity: sha512-QyMV67+eXF7uMtKxTEeQqNu/Be7iH+3iDZOQZW5ttfbSwBamCSdwPszA0dum+Wx27I7anYTPLmRmMORKViSW1A==} '@prisma/debug@6.19.0': resolution: {integrity: sha512-8hAdGG7JmxrzFcTzXZajlQCidX0XNkMJkpqtfbLV54wC6LSSX6Vni25W/G+nAANwLnZ2TmwkfIuWetA7jJxJFA==} - '@prisma/debug@6.8.2': - resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==} + '@prisma/debug@7.2.0': + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} - '@prisma/debug@7.0.0': - resolution: {integrity: sha512-SdS3qzfMASHtWimywtkiRcJtrHzacbmMVhElko3DYUZSB0TTLqRYWpddRBJdeGgSLmy1FD55p7uGzIJ+MtfhMg==} + '@prisma/debug@7.3.0': + resolution: {integrity: sha512-yh/tHhraCzYkffsI1/3a7SHX8tpgbJu1NPnuxS4rEpJdWAUDHUH25F1EDo6PPzirpyLNkgPPZdhojQK804BGtg==} - '@prisma/dev@0.13.0': - resolution: {integrity: sha512-QMmF6zFeUF78yv1HYbHvod83AQnl7u6NtKyDhTRZOJup3h1icWs8R7RUVxBJZvM2tBXNAMpLQYYM/8kPlOPegA==} + '@prisma/dev@0.20.0': + resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==} '@prisma/driver-adapter-utils@6.19.0': resolution: {integrity: sha512-VAC/wFebV569Jk7iEqzLxekM2A5toKYAr6cPM2KWVHiRHgyjsh/IHf++Xo67q8uor/JxY8mwOuyQyuxkstSf5w==} - '@prisma/engines-version@6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513': - resolution: {integrity: sha512-7bzyN8Gp9GbDFbTDzVUH9nFcgRWvsWmjrGgBJvIC/zEoAuv/lx62gZXgAKfjn/HoPkxz/dS+TtsnduFx8WA+cw==} + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': + resolution: {integrity: sha512-IH2va2ouUHihyiTTRW889LjKAl1CusZOvFfZxCDNpjSENt7g2ndFsK0vdIw/72v7+jCN6YgkHmdAP/BI7SDgyg==} - '@prisma/engines@7.0.0': - resolution: {integrity: sha512-ojCL3OFLMCz33UbU9XwH32jwaeM+dWb8cysTuY8eK6ZlMKXJdy6ogrdG3MGB3meKLGdQBmOpUUGJ7eLIaxbrcg==} + '@prisma/engines@7.3.0': + resolution: {integrity: sha512-cWRQoPDXPtR6stOWuWFZf9pHdQ/o8/QNWn0m0zByxf5Kd946Q875XdEJ52pEsX88vOiXUmjuPG3euw82mwQNMg==} - '@prisma/fetch-engine@7.0.0': - resolution: {integrity: sha512-qcyWTeWDjVDaDQSrVIymZU1xCYlvmwCzjA395lIuFjUESOH3YQCb8i/hpd4vopfq3fUR4v6+MjjtIGvnmErQgw==} + '@prisma/fetch-engine@7.3.0': + resolution: {integrity: sha512-Mm0F84JMqM9Vxk70pzfNpGJ1lE4hYjOeLMu7nOOD1i83nvp8MSAcFYBnHqLvEZiA6onUR+m8iYogtOY4oPO5lQ==} - '@prisma/get-platform@6.8.2': - resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==} + '@prisma/get-platform@7.2.0': + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} - '@prisma/get-platform@7.0.0': - resolution: {integrity: sha512-zyhzrAa+y/GfyCzTnuk0D9lfkvDzo7IbsNyuhTqhPu/AN0txm0x26HAR4tJLismla/fHf5fBzYwSivYSzkpakg==} + '@prisma/get-platform@7.3.0': + resolution: {integrity: sha512-N7c6m4/I0Q6JYmWKP2RCD/sM9eWiyCPY98g5c0uEktObNSZnugW2U/PO+pwL0UaqzxqTXt7gTsYsb0FnMnJNbg==} - '@prisma/query-plan-executor@6.18.0': - resolution: {integrity: sha512-jZ8cfzFgL0jReE1R10gT8JLHtQxjWYLiQ//wHmVYZ2rVkFHoh0DT8IXsxcKcFlfKN7ak7k6j0XMNn2xVNyr5cA==} + '@prisma/query-plan-executor@7.2.0': + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} - '@prisma/studio-core-licensed@0.8.0': - resolution: {integrity: sha512-SXCcgFvo/SC6/11kEOaQghJgCWNEWZUvPYKn/gpvMB9HLSG/5M8If7dWZtEQHhchvl8bh9A89Hw6mEKpsXFimA==} + '@prisma/studio-core@0.13.1': + resolution: {integrity: sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg==} peerDependencies: '@types/react': ^18.0.0 || ^19.0.0 react: ^18.0.0 || ^19.0.0 @@ -3067,9 +3067,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} @@ -3141,6 +3138,9 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphmatch@1.1.0: + resolution: {integrity: sha512-0E62MaTW5rPZVRLyIJZG/YejmdA/Xr1QydHEw3Vt+qOKkMIOE8WDLc9ZX2bmAjtJFZcId4lEdrdmASsEy7D1QA==} + gzip-size@7.0.0: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3159,8 +3159,8 @@ packages: hey-listen@1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} - hono@4.7.10: - resolution: {integrity: sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ==} + hono@4.11.4: + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} engines: {node: '>=16.9.0'} hookable@5.5.3: @@ -4187,9 +4187,9 @@ packages: resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} engines: {node: '>=20'} - prisma@7.0.0: - resolution: {integrity: sha512-VZObZ1pQV/OScarYg68RYUx61GpFLH2mJGf9fUX4XxQxTst/6ZK7nkY86CSZ3zBW6U9lKRTsBrZWVz20X5G/KQ==} - engines: {node: ^20.19 || ^22.12 || ^24.0} + prisma@7.3.0: + resolution: {integrity: sha512-ApYSOLHfMN8WftJA+vL6XwAPOh/aZ0BgUyyKPwUFgjARmG6EBI9LzDPf6SWULQMSAxydV9qn5gLj037nPNlg2w==} + engines: {node: ^20.19 || ^22.12 || >=24.0} hasBin: true peerDependencies: better-sqlite3: '>=9.0.0' @@ -4325,8 +4325,8 @@ packages: peerDependencies: vue: '>= 3.2.0' - remeda@2.21.3: - resolution: {integrity: sha512-XXrZdLA10oEOQhLLzEJEiFFSKi21REGAkHdImIb4rt/XXy8ORGXh5HCcpUOsElfPNDb+X6TA/+wkh+p2KffYmg==} + remeda@2.33.4: + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -4555,9 +4555,6 @@ packages: std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - streamx@2.23.0: resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} @@ -4763,10 +4760,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - type-fest@5.2.0: resolution: {integrity: sha512-xxCJm+Bckc6kQBknN7i9fnP/xobQRsRQxR01CztFkp/h++yfVxUUcmMgfR2HttJx/dpWjS9ubVuyspJv24Q9DA==} engines: {node: '>=20'} @@ -4961,8 +4954,8 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - valibot@1.1.0: - resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==} + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} peerDependencies: typescript: '>=5' peerDependenciesMeta: @@ -5230,8 +5223,8 @@ packages: youch@4.1.0-beta.12: resolution: {integrity: sha512-X+AQ2EdigcZb2h1XQmBMm19TrrfKXxEXWpnf8ThbARwiiSf/pA7MvRTCj5VHCI9z3vjJBsDeqWWyvaI9Bfp9Pg==} - zeptomatch@2.0.2: - resolution: {integrity: sha512-H33jtSKf8Ijtb5BW6wua3G5DhnFjbFML36eFu+VdOoVY4HD9e7ggjqdM6639B+L87rjnR6Y+XeRzBXZdy52B/g==} + zeptomatch@2.1.0: + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} @@ -5531,15 +5524,15 @@ snapshots: '@dxup/unimport@0.1.2': {} - '@electric-sql/pglite-socket@0.0.6(@electric-sql/pglite@0.3.2)': + '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': dependencies: - '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite': 0.3.15 - '@electric-sql/pglite-tools@0.2.7(@electric-sql/pglite@0.3.2)': + '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)': dependencies: - '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite': 0.3.15 - '@electric-sql/pglite@0.3.2': {} + '@electric-sql/pglite@0.3.15': {} '@emnapi/core@1.7.1': dependencies: @@ -5742,9 +5735,9 @@ snapshots: '@hexagon/base64@1.1.28': {} - '@hono/node-server@1.14.2(hono@4.7.10)': + '@hono/node-server@1.19.9(hono@4.11.4)': dependencies: - hono: 4.7.10 + hono: 4.11.4 '@humanfs/core@0.19.1': {} @@ -5912,7 +5905,7 @@ snapshots: pbf: 4.0.1 supercluster: 8.0.1 - '@mrleebo/prisma-ast@0.12.1': + '@mrleebo/prisma-ast@0.13.1': dependencies: chevrotain: 10.5.0 lilconfig: 2.1.0 @@ -6126,7 +6119,7 @@ snapshots: - utf-8-validate - vite - '@nuxt/fonts@0.11.4(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))': + '@nuxt/fonts@0.11.4(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))': dependencies: '@nuxt/devtools-kit': 2.7.0(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)) '@nuxt/kit': 3.20.1(magicast@0.5.1) @@ -6147,7 +6140,7 @@ snapshots: ufo: 1.6.1 unifont: 0.4.1 unplugin: 2.3.10 - unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) + unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -6245,7 +6238,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.2.1(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(mysql2@3.15.3)(nuxt@4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)': + '@nuxt/nitro-server@4.2.1(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(mysql2@3.15.3)(nuxt@4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.2.1(magicast@0.5.1) @@ -6262,15 +6255,15 @@ snapshots: impound: 1.0.0 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.12.9(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3) - nuxt: 4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) + nitropack: 2.12.9(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3) + nuxt: 4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) pathe: 2.0.3 pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 ufo: 1.6.1 unctx: 2.4.1 - unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) + unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) vue: 3.5.24(typescript@5.9.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 @@ -6334,13 +6327,13 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/ui@4.1.0(@babel/parser@7.28.5)(change-case@5.4.4)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(embla-carousel@8.6.0)(ioredis@5.8.2)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)(valibot@1.1.0(typescript@5.9.3))(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))(zod@4.1.12)': + '@nuxt/ui@4.1.0(@babel/parser@7.28.5)(change-case@5.4.4)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(embla-carousel@8.6.0)(ioredis@5.8.2)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)(valibot@1.2.0(typescript@5.9.3))(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))(zod@4.1.12)': dependencies: '@ai-sdk/vue': 2.0.93(vue@3.5.24(typescript@5.9.3))(zod@4.1.12) '@iconify/vue': 5.0.0(vue@3.5.24(typescript@5.9.3)) '@internationalized/date': 3.10.0 '@internationalized/number': 3.6.5 - '@nuxt/fonts': 0.11.4(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)) + '@nuxt/fonts': 0.11.4(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)) '@nuxt/icon': 2.1.0(magicast@0.5.1)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3)) '@nuxt/kit': 4.2.1(magicast@0.5.1) '@nuxt/schema': 4.2.1 @@ -6384,7 +6377,7 @@ snapshots: vaul-vue: 0.4.1(reka-ui@2.6.0(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)) vue-component-type-helpers: 3.1.4 optionalDependencies: - valibot: 1.1.0(typescript@5.9.3) + valibot: 1.2.0(typescript@5.9.3) vue-router: 4.6.3(vue@3.5.24(typescript@5.9.3)) zod: 4.1.12 transitivePeerDependencies: @@ -6429,7 +6422,7 @@ snapshots: - vite - vue - '@nuxt/vite-builder@4.2.1(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)': + '@nuxt/vite-builder@4.2.1(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)': dependencies: '@nuxt/kit': 4.2.1(magicast@0.5.1) '@rollup/plugin-replace': 6.0.3(rollup@4.53.2) @@ -6449,7 +6442,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) + nuxt: 4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 @@ -6825,16 +6818,16 @@ snapshots: '@prisma/driver-adapter-utils': 6.19.0 better-sqlite3: 11.10.0 - '@prisma/client-runtime-utils@7.0.0': {} + '@prisma/client-runtime-utils@7.3.0': {} - '@prisma/client@7.0.0(prisma@7.0.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3)': + '@prisma/client@7.3.0(prisma@7.3.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@prisma/client-runtime-utils': 7.0.0 + '@prisma/client-runtime-utils': 7.3.0 optionalDependencies: - prisma: 7.0.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + prisma: 7.3.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) typescript: 5.9.3 - '@prisma/config@7.0.0(magicast@0.5.1)': + '@prisma/config@7.3.0(magicast@0.5.1)': dependencies: c12: 3.1.0(magicast@0.5.1) deepmerge-ts: 7.1.5 @@ -6845,29 +6838,29 @@ snapshots: '@prisma/debug@6.19.0': {} - '@prisma/debug@6.8.2': {} + '@prisma/debug@7.2.0': {} - '@prisma/debug@7.0.0': {} + '@prisma/debug@7.3.0': {} - '@prisma/dev@0.13.0(typescript@5.9.3)': + '@prisma/dev@0.20.0(typescript@5.9.3)': dependencies: - '@electric-sql/pglite': 0.3.2 - '@electric-sql/pglite-socket': 0.0.6(@electric-sql/pglite@0.3.2) - '@electric-sql/pglite-tools': 0.2.7(@electric-sql/pglite@0.3.2) - '@hono/node-server': 1.14.2(hono@4.7.10) - '@mrleebo/prisma-ast': 0.12.1 - '@prisma/get-platform': 6.8.2 - '@prisma/query-plan-executor': 6.18.0 + '@electric-sql/pglite': 0.3.15 + '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) + '@hono/node-server': 1.19.9(hono@4.11.4) + '@mrleebo/prisma-ast': 0.13.1 + '@prisma/get-platform': 7.2.0 + '@prisma/query-plan-executor': 7.2.0 foreground-child: 3.3.1 - get-port-please: 3.1.2 - hono: 4.7.10 + get-port-please: 3.2.0 + hono: 4.11.4 http-status-codes: 2.3.0 pathe: 2.0.3 proper-lockfile: 4.1.2 - remeda: 2.21.3 - std-env: 3.9.0 - valibot: 1.1.0(typescript@5.9.3) - zeptomatch: 2.0.2 + remeda: 2.33.4 + std-env: 3.10.0 + valibot: 1.2.0(typescript@5.9.3) + zeptomatch: 2.1.0 transitivePeerDependencies: - typescript @@ -6875,32 +6868,32 @@ snapshots: dependencies: '@prisma/debug': 6.19.0 - '@prisma/engines-version@6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513': {} + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': {} - '@prisma/engines@7.0.0': + '@prisma/engines@7.3.0': dependencies: - '@prisma/debug': 7.0.0 - '@prisma/engines-version': 6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513 - '@prisma/fetch-engine': 7.0.0 - '@prisma/get-platform': 7.0.0 + '@prisma/debug': 7.3.0 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 + '@prisma/fetch-engine': 7.3.0 + '@prisma/get-platform': 7.3.0 - '@prisma/fetch-engine@7.0.0': + '@prisma/fetch-engine@7.3.0': dependencies: - '@prisma/debug': 7.0.0 - '@prisma/engines-version': 6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513 - '@prisma/get-platform': 7.0.0 + '@prisma/debug': 7.3.0 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 + '@prisma/get-platform': 7.3.0 - '@prisma/get-platform@6.8.2': + '@prisma/get-platform@7.2.0': dependencies: - '@prisma/debug': 6.8.2 + '@prisma/debug': 7.2.0 - '@prisma/get-platform@7.0.0': + '@prisma/get-platform@7.3.0': dependencies: - '@prisma/debug': 7.0.0 + '@prisma/debug': 7.3.0 - '@prisma/query-plan-executor@6.18.0': {} + '@prisma/query-plan-executor@7.2.0': {} - '@prisma/studio-core-licensed@0.8.0(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@prisma/studio-core@0.13.1(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@types/react': 19.2.6 react: 19.2.0 @@ -8094,9 +8087,9 @@ snapshots: csstype@3.2.3: {} - db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3): + db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3): optionalDependencies: - '@electric-sql/pglite': 0.3.2 + '@electric-sql/pglite': 0.3.15 better-sqlite3: 11.10.0 mysql2: 3.15.3 @@ -8643,8 +8636,6 @@ snapshots: get-caller-file@2.0.5: {} - get-port-please@3.1.2: {} - get-port-please@3.2.0: {} get-stream@6.0.1: {} @@ -8719,6 +8710,8 @@ snapshots: graphemer@1.4.0: {} + graphmatch@1.1.0: {} + gzip-size@7.0.0: dependencies: duplexer: 0.1.2 @@ -8743,7 +8736,7 @@ snapshots: hey-listen@1.0.8: {} - hono@4.7.10: {} + hono@4.11.4: {} hookable@5.5.3: {} @@ -9259,7 +9252,7 @@ snapshots: natural-compare@1.4.0: {} - nitropack@2.12.9(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3): + nitropack@2.12.9(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.53.2) @@ -9280,7 +9273,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - db0: 0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3) + db0: 0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3) defu: 6.1.4 destr: 2.0.5 dot-prop: 10.1.0 @@ -9326,7 +9319,7 @@ snapshots: unenv: 2.0.0-rc.24 unimport: 5.5.0 unplugin-utils: 0.3.1 - unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) + unstorage: 1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.12 @@ -9411,16 +9404,16 @@ snapshots: transitivePeerDependencies: - vue - nuxt@4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1): + nuxt@4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1): dependencies: '@dxup/nuxt': 0.2.2(magicast@0.5.1) '@nuxt/cli': 3.30.0(magicast@0.5.1) '@nuxt/devtools': 3.1.0(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3)) '@nuxt/kit': 4.2.1(magicast@0.5.1) - '@nuxt/nitro-server': 4.2.1(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(mysql2@3.15.3)(nuxt@4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3) + '@nuxt/nitro-server': 4.2.1(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2)(magicast@0.5.1)(mysql2@3.15.3)(nuxt@4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3) '@nuxt/schema': 4.2.1 '@nuxt/telemetry': 2.6.6(magicast@0.5.1) - '@nuxt/vite-builder': 4.2.1(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@4.2.1(@electric-sql/pglite@0.3.2)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1) + '@nuxt/vite-builder': 4.2.1(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.5.1)(nuxt@4.2.1(@electric-sql/pglite@0.3.15)(@parcel/watcher@2.5.1)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(better-sqlite3@11.10.0)(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.1)(mysql2@3.15.3)(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(yaml@2.8.1))(optionator@0.9.4)(rollup@4.53.2)(terser@5.44.1)(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1) '@unhead/vue': 2.0.19(vue@3.5.24(typescript@5.9.3)) '@vue/shared': 3.5.24 c12: 3.3.2(magicast@0.5.1) @@ -9931,12 +9924,12 @@ snapshots: pretty-bytes@7.1.0: {} - prisma@7.0.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): + prisma@7.3.0(@types/react@19.2.6)(better-sqlite3@11.10.0)(magicast@0.5.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): dependencies: - '@prisma/config': 7.0.0(magicast@0.5.1) - '@prisma/dev': 0.13.0(typescript@5.9.3) - '@prisma/engines': 7.0.0 - '@prisma/studio-core-licensed': 0.8.0(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@prisma/config': 7.3.0(magicast@0.5.1) + '@prisma/dev': 0.20.0(typescript@5.9.3) + '@prisma/engines': 7.3.0 + '@prisma/studio-core': 0.13.1(@types/react@19.2.6)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) mysql2: 3.15.3 postgres: 3.4.7 optionalDependencies: @@ -10087,9 +10080,7 @@ snapshots: - '@vue/composition-api' - typescript - remeda@2.21.3: - dependencies: - type-fest: 4.41.0 + remeda@2.33.4: {} require-directory@2.1.1: {} @@ -10305,8 +10296,6 @@ snapshots: std-env@3.10.0: {} - std-env@3.9.0: {} - streamx@2.23.0: dependencies: events-universal: 1.0.1 @@ -10521,8 +10510,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@4.41.0: {} - type-fest@5.2.0: dependencies: tagged-tag: 1.0.0 @@ -10686,7 +10673,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2): + unstorage@1.17.2(db0@0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3))(ioredis@5.8.2): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -10697,7 +10684,7 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.1 optionalDependencies: - db0: 0.3.4(@electric-sql/pglite@0.3.2)(better-sqlite3@11.10.0)(mysql2@3.15.3) + db0: 0.3.4(@electric-sql/pglite@0.3.15)(better-sqlite3@11.10.0)(mysql2@3.15.3) ioredis: 5.8.2 untun@0.1.3: @@ -10739,7 +10726,7 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - valibot@1.1.0(typescript@5.9.3): + valibot@1.2.0(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 @@ -10968,9 +10955,10 @@ snapshots: cookie-es: 2.0.0 youch-core: 0.3.3 - zeptomatch@2.0.2: + zeptomatch@2.1.0: dependencies: grammex: 3.1.11 + graphmatch: 1.1.0 zip-stream@6.0.1: dependencies: diff --git a/prisma/schema/schema.prisma b/prisma/schema/schema.prisma index 0617bab..2799d52 100644 --- a/prisma/schema/schema.prisma +++ b/prisma/schema/schema.prisma @@ -62,3 +62,14 @@ model Verification { @@map("verification") } + +model TrainingCertificate { + id Int @id @default(autoincrement()) + name String + email String + fileUrl String + status String @default("PENDING") + createdAt DateTime @default(now()) +} + + diff --git a/prisma/schema/volunteer.prisma b/prisma/schema/volunteer.prisma index d0ad539..844db65 100644 --- a/prisma/schema/volunteer.prisma +++ b/prisma/schema/volunteer.prisma @@ -13,6 +13,7 @@ model Volunteer { events RSVP[] emailVerified Boolean @default(false) + zoomVerified Boolean @default(false) imageURL String? createdAt DateTime @default(now()) updatedAt DateTime @default(now()) @updatedAt diff --git a/server/api/admin/training.get.ts b/server/api/admin/training.get.ts new file mode 100644 index 0000000..35e5f29 --- /dev/null +++ b/server/api/admin/training.get.ts @@ -0,0 +1,8 @@ +import prisma from "~~/server/utils/prisma"; + +export default defineEventHandler(async () => { + return await prisma.trainingCertificate.findMany({ + where: { status: "PENDING" } + }); +}); + diff --git a/server/api/admin/volunteer.delete.ts b/server/api/admin/volunteer.delete.ts new file mode 100644 index 0000000..016dfaf --- /dev/null +++ b/server/api/admin/volunteer.delete.ts @@ -0,0 +1,9 @@ +import prisma from "~~/server/utils/prisma"; + +export default defineEventHandler(async (event) => { + const body = await readBody(event) + + return await prisma.volunteer.delete({ + where: { id: body.id } + }) +}) diff --git a/server/api/admin/volunteer.get.ts b/server/api/admin/volunteer.get.ts new file mode 100644 index 0000000..b6b0dfa --- /dev/null +++ b/server/api/admin/volunteer.get.ts @@ -0,0 +1,11 @@ +import prisma from "~~/server/utils/prisma"; + +export default defineEventHandler(async () => { + return await prisma.volunteer.findMany({ + select: { + id: true, + name: true, + zoomVerified: true + } + }); +}); diff --git a/server/api/admin/volunteer.patch.ts b/server/api/admin/volunteer.patch.ts new file mode 100644 index 0000000..a6fda96 --- /dev/null +++ b/server/api/admin/volunteer.patch.ts @@ -0,0 +1,10 @@ +import prisma from "~~/server/utils/prisma"; + +export default defineEventHandler(async (event) => { + const body = await readBody(event); + + return await prisma.volunteer.update({ + where: { id: body.id }, + data: { zoomVerified: body.zoomVerified } + }); +}); From 50b492d4cbbe1e2c8f92591e3e738f43a38fb8ea Mon Sep 17 00:00:00 2001 From: taybeers22 Date: Fri, 17 Apr 2026 10:24:55 -0500 Subject: [PATCH 2/3] resolved merge from main into training-certificate --- app/pages/admin/training.vue | 65 +++++++++++++++++++++++++---- server/api/admin/training.post.ts | 14 +++++++ server/api/admin/volunteer.patch.ts | 12 ++++-- 3 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 server/api/admin/training.post.ts diff --git a/app/pages/admin/training.vue b/app/pages/admin/training.vue index 4b81bfc..1d619cd 100644 --- a/app/pages/admin/training.vue +++ b/app/pages/admin/training.vue @@ -1,15 +1,56 @@