diff --git a/apps/api/.env.example b/apps/api/.env.example new file mode 100644 index 0000000..203f3a0 --- /dev/null +++ b/apps/api/.env.example @@ -0,0 +1 @@ +DATABASE_URL="postgresql://postgres:postgres@localhost:5432/todolist?schema=public" diff --git a/apps/api/.gitignore b/apps/api/.gitignore new file mode 100644 index 0000000..9f62ec0 --- /dev/null +++ b/apps/api/.gitignore @@ -0,0 +1,5 @@ +node_modules +# Keep environment variables out of version control +.env + +/generated/prisma diff --git a/apps/api/.gitkeep b/apps/api/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/apps/api/package.json b/apps/api/package.json new file mode 100644 index 0000000..fd3daf9 --- /dev/null +++ b/apps/api/package.json @@ -0,0 +1,19 @@ +{ + "name": "@todolist/api", + "version": "0.1.0", + "description": "TodoList API service", + "scripts": { + "prisma:generate": "prisma generate", + "prisma:format": "prisma format", + "prisma:validate": "prisma validate" + }, + "license": "GPL-3.0-or-later", + "devDependencies": { + "dotenv": "^16.6.1", + "prisma": "^7.6.0" + }, + "private": true, + "dependencies": { + "@prisma/client": "^7.6.0" + } +} diff --git a/apps/api/prisma.config.ts b/apps/api/prisma.config.ts new file mode 100644 index 0000000..8f3a0eb --- /dev/null +++ b/apps/api/prisma.config.ts @@ -0,0 +1,14 @@ +// This file was generated by Prisma, and assumes you have installed the following: +// npm install --save-dev prisma dotenv +import "dotenv/config"; +import { defineConfig } from "prisma/config"; + +export default defineConfig({ + schema: "prisma/schema.prisma", + migrations: { + path: "prisma/migrations" + }, + datasource: { + url: process.env["DATABASE_URL"] + } +}); diff --git a/apps/api/prisma/schema.prisma b/apps/api/prisma/schema.prisma new file mode 100644 index 0000000..8bddec1 --- /dev/null +++ b/apps/api/prisma/schema.prisma @@ -0,0 +1,13 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Get a free hosted Postgres database in seconds: `npx create-db` + +generator client { + provider = "prisma-client" + output = "../generated/prisma" +} + +datasource db { + provider = "postgresql" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c014fa..48e6d7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,10 +9,10 @@ importers: devDependencies: "@eslint/js": specifier: ^10.0.1 - version: 10.0.1(eslint@10.2.0) + version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) eslint: specifier: ^10.2.0 - version: 10.2.0 + version: 10.2.0(jiti@2.6.1) globals: specifier: ^17.4.0 version: 17.4.0 @@ -29,11 +29,59 @@ importers: specifier: ^2.9.3 version: 2.9.3 + apps/api: + dependencies: + "@prisma/client": + specifier: ^7.6.0 + version: 7.6.0(prisma@7.6.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + devDependencies: + dotenv: + specifier: ^16.6.1 + version: 16.6.1 + prisma: + specifier: ^7.6.0 + version: 7.6.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + packages/eslint-config: {} packages/tsconfig: {} packages: + "@clack/core@0.5.0": + resolution: + { + integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow== + } + + "@clack/prompts@0.11.0": + resolution: + { + integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw== + } + + "@electric-sql/pglite-socket@0.1.1": + resolution: + { + integrity: sha512-p2hoXw3Z3LQHwTeikdZNsFBOvXGqKY2hk51BBw+8NKND8eoH+8LFOtW9Z8CQKmTJ2qqGYu82ipqiyFZOTTXNfw== + } + hasBin: true + peerDependencies: + "@electric-sql/pglite": 0.4.1 + + "@electric-sql/pglite-tools@0.3.1": + resolution: + { + integrity: sha512-C+T3oivmy9bpQvSxVqXA1UDY8cB9Eb9vZHL9zxWwEUfDixbXv4G3r2LjoTdR33LD8aomR3O9ZXEO3XEwr/cUCA== + } + peerDependencies: + "@electric-sql/pglite": 0.4.1 + + "@electric-sql/pglite@0.4.1": + resolution: + { + integrity: sha512-mZ9NzzUSYPOCnxHH1oAHPRzoMFJHY472raDKwXl/+6oPbpdJ7g8LsCN4FSaIIfkiCKHhb3iF/Zqo3NYxaIhU7Q== + } + "@eslint-community/eslint-utils@4.9.1": resolution: { @@ -97,6 +145,15 @@ packages: } engines: { node: ^20.19.0 || ^22.13.0 || >=24 } + "@hono/node-server@1.19.11": + resolution: + { + integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g== + } + engines: { node: ">=18.14.1" } + peerDependencies: + hono: ^4 + "@humanfs/core@0.19.1": resolution: { @@ -125,6 +182,215 @@ packages: } engines: { node: ">=18.18" } + "@kurkle/color@0.3.4": + resolution: + { + integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w== + } + + "@prisma/client-runtime-utils@7.6.0": + resolution: + { + integrity: sha512-fD7jlqubsZvVODKvsp9lOpXVecx2aWGxC2l35Ioz2t+teUJ5CfR0SAMsi7UkU1VvaZmmm+DS6BdujF622nY7tQ== + } + + "@prisma/client@7.6.0": + resolution: + { + integrity: sha512-7Pe/1ayh3GgWPEg4mmT4ax77LJ1wC+XlnIFvQ94bLP2DsUnOpnruQQR3Jw7r+Frthk94QqDNxo3FjSg8h9PXeQ== + } + engines: { node: ^20.19 || ^22.12 || >=24.0 } + peerDependencies: + prisma: "*" + typescript: ">=5.4.0" + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true + + "@prisma/config@7.6.0": + resolution: + { + integrity: sha512-MuAz1MK4PeG5/03YzfzX3CnFVHQ6qePGwUpQRzPzX5tT0ffJ3Tzi9zJZbBc+VzEGFCM8ghW/gTVDR85Syjt+Yw== + } + + "@prisma/debug@7.2.0": + resolution: + { + integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw== + } + + "@prisma/debug@7.6.0": + resolution: + { + integrity: sha512-LpHr3qos4lQZ6sxwjStf59YBht7m9/QF7NSQsMH6qGENWZu2w3UkQUGn1h5iRkDjnWRj3VHykOu9qFhps4ADvA== + } + + "@prisma/dev@0.24.3": + resolution: + { + integrity: sha512-ffHlQuKXZiaDt9Go0OnCTdJZrHxK0k7omJKNV86/VjpsXu5EIHZLK0T7JSWgvNlJwh56kW9JFu9v0qJciFzepg== + } + + "@prisma/engines-version@7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711": + resolution: + { + integrity: sha512-r51DLcJ8bDRSrBEJF3J4cinoWyGA7rfP2mG6lD90VqIbGNOkbfcLcXalSVjq5Y6brQS3vcjrq4GbyUb1Cb7vkw== + } + + "@prisma/engines@7.6.0": + resolution: + { + integrity: sha512-Sn5edRzhHqgRV2M+A0eIbY442B4mReWWf3pKs/LKreYgW7oa/up8JtK/s4iv/EQA097cyboZ08mmkpbLp+tZ3w== + } + + "@prisma/fetch-engine@7.6.0": + resolution: + { + integrity: sha512-N575Ni95c3FkduWY/eKTHqNYgNbceZ1tQaSknVtJjpKmiiBXmniESn/GTxsDvICC4ZeiNrXxioGInzQrCdx16w== + } + + "@prisma/get-platform@7.2.0": + resolution: + { + integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA== + } + + "@prisma/get-platform@7.6.0": + resolution: + { + integrity: sha512-ohZDwXvtmnbzOcutR2D13lDWpZP1wQjmPyztmt0AwXLzQI7q95EE7NYCvS+M6N6SivT+BM0NOqLmTH3wms4L3A== + } + + "@prisma/query-plan-executor@7.2.0": + resolution: + { + integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ== + } + + "@prisma/streams-local@0.1.2": + resolution: + { + integrity: sha512-l49yTxKKF2odFxaAXTmwmkBKL3+bVQ1tFOooGifu4xkdb9NMNLxHj27XAhTylWZod8I+ISGM5erU1xcl/oBCtg== + } + engines: { bun: ">=1.3.6", node: ">=22.0.0" } + + "@prisma/studio-core@0.27.3": + resolution: + { + integrity: sha512-AADjNFPdsrglxHQVTmHFqv6DuKQZ5WY4p5/gVFY017twvNrSwpLJ9lqUbYYxEu2W7nbvVxTZA8deJ8LseNALsw== + } + engines: { node: ^20.19 || ^22.12 || >=24.0, pnpm: "8" } + peerDependencies: + "@types/react": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + + "@radix-ui/primitive@1.1.3": + resolution: + { + integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg== + } + + "@radix-ui/react-compose-refs@1.1.2": + resolution: + { + integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg== + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + + "@radix-ui/react-primitive@2.1.3": + resolution: + { + integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ== + } + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + + "@radix-ui/react-slot@1.2.3": + resolution: + { + integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A== + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + + "@radix-ui/react-toggle@1.1.10": + resolution: + { + integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ== + } + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + + "@radix-ui/react-use-controllable-state@1.2.2": + resolution: + { + integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg== + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + + "@radix-ui/react-use-effect-event@0.0.2": + resolution: + { + integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA== + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + + "@radix-ui/react-use-layout-effect@1.1.1": + resolution: + { + integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ== + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + + "@standard-schema/spec@1.1.0": + resolution: + { + integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== + } + "@turbo/darwin-64@2.9.3": resolution: { @@ -191,6 +457,12 @@ packages: integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } + "@types/react@19.2.14": + resolution: + { + integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w== + } + acorn-jsx@5.3.2: resolution: { @@ -213,6 +485,12 @@ packages: integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw== } + ajv@8.18.0: + resolution: + { + integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A== + } + ansi-escapes@7.3.0: resolution: { @@ -234,6 +512,13 @@ packages: } engines: { node: ">=12" } + aws-ssl-profiles@1.1.2: + resolution: + { + integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g== + } + engines: { node: ">= 6.0.0" } + balanced-match@4.0.4: resolution: { @@ -241,6 +526,13 @@ packages: } engines: { node: 18 || 20 || >=22 } + better-result@2.7.0: + resolution: + { + integrity: sha512-7zrmXjAK8u8Z6SOe4R65XObOR5X+Y2I/VVku3t5cPOGQ8/WsBcfFmfnIPiEl5EBMDOzPHRwbiPbMtQBKYdw7RA== + } + hasBin: true + brace-expansion@5.0.5: resolution: { @@ -248,6 +540,43 @@ packages: } engines: { node: 18 || 20 || >=22 } + c12@3.1.0: + resolution: + { + integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw== + } + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + + chart.js@4.5.1: + resolution: + { + integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw== + } + engines: { pnpm: ">=8" } + + chokidar@4.0.3: + resolution: + { + integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + } + engines: { node: ">= 14.16.0" } + + citty@0.1.6: + resolution: + { + integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== + } + + citty@0.2.2: + resolution: + { + integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w== + } + cli-cursor@5.0.0: resolution: { @@ -275,6 +604,19 @@ packages: } engines: { node: ">=20" } + confbox@0.2.4: + resolution: + { + integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ== + } + + consola@3.4.2: + resolution: + { + integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + } + engines: { node: ^14.18.0 || >=16.10.0 } + cross-spawn@7.0.6: resolution: { @@ -282,6 +624,12 @@ packages: } engines: { node: ">= 8" } + csstype@3.2.3: + resolution: + { + integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + } + debug@4.4.3: resolution: { @@ -300,12 +648,65 @@ packages: integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + deepmerge-ts@7.1.5: + resolution: + { + integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw== + } + engines: { node: ">=16.0.0" } + + defu@6.1.6: + resolution: + { + integrity: sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug== + } + + denque@2.1.0: + resolution: + { + integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + } + engines: { node: ">=0.10" } + + destr@2.0.5: + resolution: + { + integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== + } + + dotenv@16.6.1: + resolution: + { + integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== + } + engines: { node: ">=12" } + + effect@3.20.0: + resolution: + { + integrity: sha512-qMLfDJscrNG8p/aw+IkT9W7fgj50Z4wG5bLBy0Txsxz8iUHjDIkOgO3SV0WZfnQbNG2VJYb0b+rDLMrhM4+Krw== + } + emoji-regex@10.6.0: resolution: { integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== } + empathic@2.0.0: + resolution: + { + integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA== + } + engines: { node: ">=14" } + + env-paths@3.0.0: + resolution: + { + integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + environment@1.1.0: resolution: { @@ -395,6 +796,19 @@ packages: integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== } + exsolve@1.0.8: + resolution: + { + integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== + } + + fast-check@3.23.2: + resolution: + { + integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A== + } + engines: { node: ">=8.0.0" } + fast-deep-equal@3.1.3: resolution: { @@ -413,6 +827,12 @@ packages: integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + fast-uri@3.1.0: + resolution: + { + integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + } + file-entry-cache@8.0.0: resolution: { @@ -440,6 +860,19 @@ packages: integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA== } + foreground-child@3.3.1: + resolution: + { + integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + } + engines: { node: ">=14" } + + generate-function@2.3.1: + resolution: + { + integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + } + get-east-asian-width@1.5.0: resolution: { @@ -447,6 +880,19 @@ packages: } engines: { node: ">=18" } + get-port-please@3.2.0: + resolution: + { + integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A== + } + + giget@2.0.0: + resolution: + { + integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA== + } + hasBin: true + glob-parent@6.0.2: resolution: { @@ -461,6 +907,37 @@ packages: } engines: { node: ">=18" } + graceful-fs@4.2.11: + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + } + + grammex@3.1.12: + resolution: + { + integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ== + } + + graphmatch@1.1.1: + resolution: + { + integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg== + } + + hono@4.12.10: + resolution: + { + integrity: sha512-mx/p18PLy5og9ufies2GOSUqep98Td9q4i/EF6X7yJgAiIopxqdfIO3jbqsi3jRgTgw88jMDEzVKi+V2EF+27w== + } + engines: { node: ">=16.9.0" } + + http-status-codes@2.3.0: + resolution: + { + integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA== + } + husky@9.1.7: resolution: { @@ -469,6 +946,13 @@ packages: engines: { node: ">=18" } hasBin: true + iconv-lite@0.7.2: + resolution: + { + integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw== + } + engines: { node: ">=0.10.0" } + ignore@5.3.2: resolution: { @@ -504,12 +988,25 @@ packages: } engines: { node: ">=0.10.0" } + is-property@1.0.2: + resolution: + { + integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== + } + isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + jiti@2.6.1: + resolution: + { + integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + } + hasBin: true + json-buffer@3.0.1: resolution: { @@ -522,6 +1019,12 @@ packages: integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + json-schema-traverse@1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + } + json-stable-stringify-without-jsonify@1.0.1: resolution: { @@ -570,6 +1073,19 @@ packages: } engines: { node: ">=18" } + long@5.3.2: + resolution: + { + integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== + } + + lru.min@1.1.4: + resolution: + { + integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA== + } + engines: { bun: ">=1.0.0", deno: ">=1.30.0", node: ">=8.0.0" } + mimic-function@5.0.1: resolution: { @@ -590,12 +1106,46 @@ packages: integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + mysql2@3.15.3: + resolution: + { + integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg== + } + engines: { node: ">= 8.0" } + + named-placeholders@1.1.6: + resolution: + { + integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w== + } + engines: { node: ">=8.0.0" } + natural-compare@1.4.0: resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + node-fetch-native@1.6.7: + resolution: + { + integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== + } + + nypm@0.6.5: + resolution: + { + integrity: sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ== + } + engines: { node: ">=18" } + hasBin: true + + ohash@2.0.11: + resolution: + { + integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== + } + onetime@7.0.0: resolution: { @@ -638,6 +1188,24 @@ packages: } engines: { node: ">=8" } + pathe@2.0.3: + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + } + + perfect-debounce@1.0.0: + resolution: + { + integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + } + + picocolors@1.1.1: + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + } + picomatch@4.0.4: resolution: { @@ -645,6 +1213,19 @@ packages: } engines: { node: ">=12" } + pkg-types@2.3.0: + resolution: + { + integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== + } + + postgres@3.4.7: + resolution: + { + integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw== + } + engines: { node: ">=12" } + prelude-ls@1.2.1: resolution: { @@ -660,6 +1241,28 @@ packages: engines: { node: ">=14" } hasBin: true + prisma@7.6.0: + resolution: + { + integrity: sha512-OKJIPT81K3+F+AayIkY/Y3mkF2NWoFh7lZApaaqPYy7EHILKdO0VsmGkP+hDKYTySHsFSyLWXm/JgcR1B8fY1Q== + } + engines: { node: ^20.19 || ^22.12 || >=24.0 } + hasBin: true + peerDependencies: + better-sqlite3: ">=9.0.0" + typescript: ">=5.4.0" + peerDependenciesMeta: + better-sqlite3: + optional: true + typescript: + optional: true + + proper-lockfile@4.1.2: + resolution: + { + integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + } + punycode@2.3.1: resolution: { @@ -667,6 +1270,53 @@ packages: } engines: { node: ">=6" } + pure-rand@6.1.0: + resolution: + { + integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== + } + + rc9@2.1.2: + resolution: + { + integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== + } + + react-dom@19.2.4: + resolution: + { + integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ== + } + peerDependencies: + react: ^19.2.4 + + react@19.2.4: + resolution: + { + integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ== + } + engines: { node: ">=0.10.0" } + + readdirp@4.1.2: + resolution: + { + integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + } + engines: { node: ">= 14.18.0" } + + remeda@2.33.4: + resolution: + { + integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ== + } + + require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + } + engines: { node: ">=0.10.0" } + restore-cursor@5.1.0: resolution: { @@ -674,12 +1324,37 @@ packages: } engines: { node: ">=18" } + retry@0.12.0: + resolution: + { + integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + } + engines: { node: ">= 4" } + rfdc@1.4.1: resolution: { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== } + safer-buffer@2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + } + + scheduler@0.27.0: + resolution: + { + integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== + } + + seq-queue@0.0.5: + resolution: + { + integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q== + } + shebang-command@2.0.0: resolution: { @@ -694,6 +1369,12 @@ packages: } engines: { node: ">=8" } + signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + } + signal-exit@4.1.0: resolution: { @@ -701,6 +1382,12 @@ packages: } engines: { node: ">=14" } + sisteransi@1.0.5: + resolution: + { + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + } + slice-ansi@7.1.2: resolution: { @@ -715,6 +1402,19 @@ packages: } engines: { node: ">=20" } + sqlstring@2.3.3: + resolution: + { + integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== + } + engines: { node: ">= 0.6" } + + std-env@3.10.0: + resolution: + { + integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== + } + string-argv@0.3.2: resolution: { @@ -770,6 +1470,17 @@ packages: integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + valibot@1.2.0: + resolution: + { + integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg== + } + peerDependencies: + typescript: ">=5" + peerDependenciesMeta: + typescript: + optional: true + which@2.0.2: resolution: { @@ -807,10 +1518,37 @@ packages: } engines: { node: ">=10" } + zeptomatch@2.1.0: + resolution: + { + integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA== + } + snapshots: - "@eslint-community/eslint-utils@4.9.1(eslint@10.2.0)": + "@clack/core@0.5.0": dependencies: - eslint: 10.2.0 + picocolors: 1.1.1 + sisteransi: 1.0.5 + + "@clack/prompts@0.11.0": + dependencies: + "@clack/core": 0.5.0 + picocolors: 1.1.1 + sisteransi: 1.0.5 + + "@electric-sql/pglite-socket@0.1.1(@electric-sql/pglite@0.4.1)": + dependencies: + "@electric-sql/pglite": 0.4.1 + + "@electric-sql/pglite-tools@0.3.1(@electric-sql/pglite@0.4.1)": + dependencies: + "@electric-sql/pglite": 0.4.1 + + "@electric-sql/pglite@0.4.1": {} + + "@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))": + dependencies: + eslint: 10.2.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 "@eslint-community/regexpp@4.12.2": {} @@ -831,9 +1569,9 @@ snapshots: dependencies: "@types/json-schema": 7.0.15 - "@eslint/js@10.0.1(eslint@10.2.0)": + "@eslint/js@10.0.1(eslint@10.2.0(jiti@2.6.1))": optionalDependencies: - eslint: 10.2.0 + eslint: 10.2.0(jiti@2.6.1) "@eslint/object-schema@3.0.4": {} @@ -842,6 +1580,10 @@ snapshots: "@eslint/core": 1.2.0 levn: 0.4.1 + "@hono/node-server@1.19.11(hono@4.12.10)": + dependencies: + hono: 4.12.10 + "@humanfs/core@0.19.1": {} "@humanfs/node@0.16.7": @@ -853,6 +1595,149 @@ snapshots: "@humanwhocodes/retry@0.4.3": {} + "@kurkle/color@0.3.4": {} + + "@prisma/client-runtime-utils@7.6.0": {} + + "@prisma/client@7.6.0(prisma@7.6.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))": + dependencies: + "@prisma/client-runtime-utils": 7.6.0 + optionalDependencies: + prisma: 7.6.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + + "@prisma/config@7.6.0": + dependencies: + c12: 3.1.0 + deepmerge-ts: 7.1.5 + effect: 3.20.0 + empathic: 2.0.0 + transitivePeerDependencies: + - magicast + + "@prisma/debug@7.2.0": {} + + "@prisma/debug@7.6.0": {} + + "@prisma/dev@0.24.3": + dependencies: + "@electric-sql/pglite": 0.4.1 + "@electric-sql/pglite-socket": 0.1.1(@electric-sql/pglite@0.4.1) + "@electric-sql/pglite-tools": 0.3.1(@electric-sql/pglite@0.4.1) + "@hono/node-server": 1.19.11(hono@4.12.10) + "@prisma/get-platform": 7.2.0 + "@prisma/query-plan-executor": 7.2.0 + "@prisma/streams-local": 0.1.2 + foreground-child: 3.3.1 + get-port-please: 3.2.0 + hono: 4.12.10 + http-status-codes: 2.3.0 + pathe: 2.0.3 + proper-lockfile: 4.1.2 + remeda: 2.33.4 + std-env: 3.10.0 + valibot: 1.2.0 + zeptomatch: 2.1.0 + transitivePeerDependencies: + - typescript + + "@prisma/engines-version@7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711": {} + + "@prisma/engines@7.6.0": + dependencies: + "@prisma/debug": 7.6.0 + "@prisma/engines-version": 7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711 + "@prisma/fetch-engine": 7.6.0 + "@prisma/get-platform": 7.6.0 + + "@prisma/fetch-engine@7.6.0": + dependencies: + "@prisma/debug": 7.6.0 + "@prisma/engines-version": 7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711 + "@prisma/get-platform": 7.6.0 + + "@prisma/get-platform@7.2.0": + dependencies: + "@prisma/debug": 7.2.0 + + "@prisma/get-platform@7.6.0": + dependencies: + "@prisma/debug": 7.6.0 + + "@prisma/query-plan-executor@7.2.0": {} + + "@prisma/streams-local@0.1.2": + dependencies: + ajv: 8.18.0 + better-result: 2.7.0 + env-paths: 3.0.0 + proper-lockfile: 4.1.2 + + "@prisma/studio-core@0.27.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@radix-ui/react-toggle": 1.1.10(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@types/react": 19.2.14 + chart.js: 4.5.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + transitivePeerDependencies: + - "@types/react-dom" + + "@radix-ui/primitive@1.1.3": {} + + "@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.4)": + dependencies: + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-primitive@2.1.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@radix-ui/react-slot": 1.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.4)": + dependencies: + "@radix-ui/react-compose-refs": 1.1.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-toggle@1.1.10(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@radix-ui/primitive": 1.1.3 + "@radix-ui/react-primitive": 2.1.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.4)": + dependencies: + "@radix-ui/react-use-effect-event": 0.0.2(@types/react@19.2.14)(react@19.2.4) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.4)": + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.14 + + "@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.4)": + dependencies: + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.14 + + "@standard-schema/spec@1.1.0": {} + "@turbo/darwin-64@2.9.3": optional: true @@ -877,6 +1762,10 @@ snapshots: "@types/json-schema@7.0.15": {} + "@types/react@19.2.14": + dependencies: + csstype: 3.2.3 + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 @@ -890,6 +1779,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -898,12 +1794,47 @@ snapshots: ansi-styles@6.2.3: {} + aws-ssl-profiles@1.1.2: {} + balanced-match@4.0.4: {} + better-result@2.7.0: + dependencies: + "@clack/prompts": 0.11.0 + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 + c12@3.1.0: + dependencies: + chokidar: 4.0.3 + confbox: 0.2.4 + defu: 6.1.6 + dotenv: 16.6.1 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + + chart.js@4.5.1: + dependencies: + "@kurkle/color": 0.3.4 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + citty@0.1.6: + dependencies: + consola: 3.4.2 + + citty@0.2.2: {} + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -917,20 +1848,45 @@ snapshots: commander@14.0.3: {} + confbox@0.2.4: {} + + consola@3.4.2: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + csstype@3.2.3: {} + debug@4.4.3: dependencies: ms: 2.1.3 deep-is@0.1.4: {} + deepmerge-ts@7.1.5: {} + + defu@6.1.6: {} + + denque@2.1.0: {} + + destr@2.0.5: {} + + dotenv@16.6.1: {} + + effect@3.20.0: + dependencies: + "@standard-schema/spec": 1.1.0 + fast-check: 3.23.2 + emoji-regex@10.6.0: {} + empathic@2.0.0: {} + + env-paths@3.0.0: {} + environment@1.1.0: {} escape-string-regexp@4.0.0: {} @@ -946,9 +1902,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.2.0: + eslint@10.2.0(jiti@2.6.1): dependencies: - "@eslint-community/eslint-utils": 4.9.1(eslint@10.2.0) + "@eslint-community/eslint-utils": 4.9.1(eslint@10.2.0(jiti@2.6.1)) "@eslint-community/regexpp": 4.12.2 "@eslint/config-array": 0.23.4 "@eslint/config-helpers": 0.5.4 @@ -978,6 +1934,8 @@ snapshots: minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -1001,12 +1959,20 @@ snapshots: eventemitter3@5.0.4: {} + exsolve@1.0.8: {} + + fast-check@3.23.2: + dependencies: + pure-rand: 6.1.0 + fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} + fast-uri@3.1.0: {} + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -1023,16 +1989,50 @@ snapshots: flatted@3.4.2: {} + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + get-east-asian-width@1.5.0: {} + get-port-please@3.2.0: {} + + giget@2.0.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.6 + node-fetch-native: 1.6.7 + nypm: 0.6.5 + pathe: 2.0.3 + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 globals@17.4.0: {} + graceful-fs@4.2.11: {} + + grammex@3.1.12: {} + + graphmatch@1.1.1: {} + + hono@4.12.10: {} + + http-status-codes@2.3.0: {} + husky@9.1.7: {} + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ignore@5.3.2: {} imurmurhash@0.1.4: {} @@ -1047,12 +2047,18 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-property@1.0.2: {} + isexe@2.0.0: {} + jiti@2.6.1: {} + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} keyv@4.5.4: @@ -1094,6 +2100,10 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 9.0.2 + long@5.3.2: {} + + lru.min@1.1.4: {} + mimic-function@5.0.1: {} minimatch@10.2.5: @@ -1102,8 +2112,34 @@ snapshots: ms@2.1.3: {} + mysql2@3.15.3: + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.4 + natural-compare@1.4.0: {} + node-fetch-native@1.6.7: {} + + nypm@0.6.5: + dependencies: + citty: 0.2.2 + pathe: 2.0.3 + tinyexec: 1.0.4 + + ohash@2.0.11: {} + onetime@7.0.0: dependencies: mimic-function: 5.0.1 @@ -1129,29 +2165,96 @@ snapshots: path-key@3.1.1: {} + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + picomatch@4.0.4: {} + pkg-types@2.3.0: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + + postgres@3.4.7: {} + prelude-ls@1.2.1: {} prettier@3.8.1: {} + prisma@7.6.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + "@prisma/config": 7.6.0 + "@prisma/dev": 0.24.3 + "@prisma/engines": 7.6.0 + "@prisma/studio-core": 0.27.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + mysql2: 3.15.3 + postgres: 3.4.7 + transitivePeerDependencies: + - "@types/react" + - "@types/react-dom" + - magicast + - react + - react-dom + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + punycode@2.3.1: {} + pure-rand@6.1.0: {} + + rc9@2.1.2: + dependencies: + defu: 6.1.6 + destr: 2.0.5 + + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + + react@19.2.4: {} + + readdirp@4.1.2: {} + + remeda@2.33.4: {} + + require-from-string@2.0.2: {} + restore-cursor@5.1.0: dependencies: onetime: 7.0.0 signal-exit: 4.1.0 + retry@0.12.0: {} + rfdc@1.4.1: {} + safer-buffer@2.1.2: {} + + scheduler@0.27.0: {} + + seq-queue@0.0.5: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} + signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + sisteransi@1.0.5: {} + slice-ansi@7.1.2: dependencies: ansi-styles: 6.2.3 @@ -1162,6 +2265,10 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + sqlstring@2.3.3: {} + + std-env@3.10.0: {} + string-argv@0.3.2: {} string-width@7.2.0: @@ -1198,6 +2305,8 @@ snapshots: dependencies: punycode: 2.3.1 + valibot@1.2.0: {} + which@2.0.2: dependencies: isexe: 2.0.0 @@ -1213,3 +2322,8 @@ snapshots: yaml@2.8.3: {} yocto-queue@0.1.0: {} + + zeptomatch@2.1.0: + dependencies: + grammex: 3.1.12 + graphmatch: 1.1.1