diff --git a/apps/web-app/package.json b/apps/web-app/package.json index 55d0c312..6ee2ffeb 100644 --- a/apps/web-app/package.json +++ b/apps/web-app/package.json @@ -15,7 +15,6 @@ "dependencies": { "@neoconfetti/vue": "catalog:", "@next-orders/core": "workspace:*", - "@next-orders/database": "workspace:*", "@next-orders/ui": "workspace:*", "@pinia/nuxt": "catalog:", "ioredis": "catalog:", diff --git a/docker/.env.example b/docker/.env.example deleted file mode 100644 index c0c1f907..00000000 --- a/docker/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -# Postgres -POSTGRES_DB= -POSTGRES_USER= -POSTGRES_PASSWORD= - -# App -DATABASE_URL= -NUXT_SESSION_PASSWORD= diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index 7d362033..00000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -services: - db: - image: postgres:17-alpine - container_name: food-db - restart: unless-stopped - environment: - - POSTGRES_DB=${POSTGRES_DB} - - POSTGRES_USER=${POSTGRES_USER} - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - ports: - - '5432:5432' - volumes: - - next_orders_pg_data:/var/lib/postgresql/data - - # app: - # image: food/app:local - # container_name: food-app - # restart: unless-stopped - # environment: - # - DATABASE_URL=${DATABASE_URL} - # - NUXT_SESSION_PASSWORD=${NUXT_SESSION_PASSWORD} - # ports: - # - '3500:3000' - - # landing: - # image: food/landing:local - # container_name: food-landing - # restart: unless-stopped - # ports: - # - '3501:3000' - -volumes: - next_orders_pg_data: diff --git a/eslint.config.mjs b/eslint.config.mjs index 1b65e0df..ab3a5735 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -21,6 +21,6 @@ export default antfu( }, }, { - ignores: ['.github/**', 'packages/database/migrations/**'], + ignores: ['.github/**'], }, ) diff --git a/package.json b/package.json index 741990a1..1498f220 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,6 @@ }, "onlyBuiltDependencies": [ "@next-orders/core", - "@next-orders/database", "@next-orders/ui", "bcrypt", "sharp" diff --git a/packages/core/nuxt.config.ts b/packages/core/nuxt.config.ts index 473eba62..8e1c13f2 100644 --- a/packages/core/nuxt.config.ts +++ b/packages/core/nuxt.config.ts @@ -1,12 +1,9 @@ -import { fileURLToPath } from 'node:url' - export default defineNuxtConfig({ modules: ['@nuxtjs/i18n', 'nuxt-auth-utils', '@vueuse/nuxt'], routeRules: { '/api/file/**': { prerender: false }, }, runtimeConfig: { - channelId: 'burger', locale: 'en', productsDirectory: '/products', s3: { @@ -18,12 +15,6 @@ export default defineNuxtConfig({ }, redisUrl: '', }, - nitro: { - preset: fileURLToPath(new URL('./server/preset.ts', import.meta.url)), - experimental: { - tasks: true, - }, - }, vite: { build: { rollupOptions: { diff --git a/packages/core/package.json b/packages/core/package.json index ee2475bd..ed1a4111 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,7 +11,6 @@ "@date-fns/tz": "catalog:", "@dicebear/collection": "catalog:", "@dicebear/core": "catalog:", - "@next-orders/database": "workspace:*", "@nuxtjs/i18n": "catalog:", "@paralleldrive/cuid2": "catalog:", "@vueuse/core": "catalog:", diff --git a/packages/core/server/api/auth/session.post.ts b/packages/core/server/api/auth/session.post.ts index bb46d6cd..b0302ee5 100644 --- a/packages/core/server/api/auth/session.post.ts +++ b/packages/core/server/api/auth/session.post.ts @@ -1,4 +1,4 @@ -import { createId } from '@next-orders/database' +import { createId } from '@paralleldrive/cuid2' export default defineEventHandler(async (event) => { try { diff --git a/packages/core/server/plugins/03.database.ts b/packages/core/server/plugins/03.database.ts deleted file mode 100644 index 809b0830..00000000 --- a/packages/core/server/plugins/03.database.ts +++ /dev/null @@ -1,26 +0,0 @@ -import process from 'node:process' -import { useCreateDatabase } from '@next-orders/database' - -/** - * DB init - */ -export default defineNitroPlugin(async () => { - if (!process.env.DATABASE_URL) { - throw new Error('DATABASE_URL is not defined') - } - - useCreateDatabase(process.env.DATABASE_URL) - - // In dev mode we don't execute migrations, for this we use the command `pnpm db:migrate` in `@next-orders/database` - if (import.meta.dev) { - return - } - - const tasks = [ - 'db:migrate', - ] - - for (const task of tasks) { - await runTask(task) - } -}) diff --git a/packages/core/server/preset.ts b/packages/core/server/preset.ts deleted file mode 100644 index 94076a6b..00000000 --- a/packages/core/server/preset.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { NitroPreset } from 'nitropack' -import { cp, mkdir, realpath } from 'node:fs/promises' -import { resolve } from 'node:path' - -export default { - extends: 'node-server', - hooks: { - async compiled(nitro) { - /** - * Copy database migrations to the output directory - */ - const module = resolve('node_modules', '@next-orders/database') - const source = resolve(await realpath(module), 'migrations') - const destination = resolve(nitro.options.output.serverDir, 'migrations') - - await mkdir(destination, { recursive: true }) - await cp(source, destination, { recursive: true }) - }, - }, -} diff --git a/packages/core/server/tasks/db/migrate.ts b/packages/core/server/tasks/db/migrate.ts deleted file mode 100644 index 5cb66e58..00000000 --- a/packages/core/server/tasks/db/migrate.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { resolve } from 'node:path' -import process from 'node:process' -import { useMigrateDatabase } from '@next-orders/database' - -export default defineTask({ - meta: { - name: 'db:migrate', - description: 'Run database migrations', - }, - async run() { - const migrationFolder = resolve(process.cwd(), `server/migrations`) - await useMigrateDatabase(migrationFolder) - - return { - result: 'Migrations completed', - } - }, -}) diff --git a/packages/core/shared/utils/date.ts b/packages/core/shared/utils/date.ts deleted file mode 100644 index 1c7ed38e..00000000 --- a/packages/core/shared/utils/date.ts +++ /dev/null @@ -1,41 +0,0 @@ -export function getDayOfWeekByIndex(dayIndex: number): WorkingDay['day'] { - switch (dayIndex) { - case 0: - return 'SUNDAY' - case 1: - return 'MONDAY' - case 2: - return 'TUESDAY' - case 3: - return 'WEDNESDAY' - case 4: - return 'THURSDAY' - case 5: - return 'FRIDAY' - case 6: - return 'SATURDAY' - default: - return 'SUNDAY' - } -} - -export function getDayIndexByDay(day: WorkingDay['day']): number { - switch (day) { - case 'SUNDAY': - return 0 - case 'MONDAY': - return 1 - case 'TUESDAY': - return 2 - case 'WEDNESDAY': - return 3 - case 'THURSDAY': - return 4 - case 'FRIDAY': - return 5 - case 'SATURDAY': - return 6 - default: - return 0 - } -} diff --git a/packages/database/.env.example b/packages/database/.env.example deleted file mode 100644 index 460818c4..00000000 --- a/packages/database/.env.example +++ /dev/null @@ -1 +0,0 @@ -DATABASE_URL="postgres://postgres:postgres@localhost:5432/postgres" diff --git a/packages/database/build.config.ts b/packages/database/build.config.ts deleted file mode 100644 index 8f2d857f..00000000 --- a/packages/database/build.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { defineBuildConfig } from 'unbuild' - -export default defineBuildConfig({ - clean: true, - externals: [ - '@paralleldrive/cuid2', - ], -}) diff --git a/packages/database/drizzle.config.ts b/packages/database/drizzle.config.ts deleted file mode 100644 index 543ebd04..00000000 --- a/packages/database/drizzle.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import process from 'node:process' -import { defineConfig } from 'drizzle-kit' -import 'dotenv/config' - -export default defineConfig({ - dialect: 'postgresql', - schema: './src/tables.ts', - out: './migrations', - dbCredentials: { - url: process.env.DATABASE_URL!, - }, -}) diff --git a/packages/database/migrations/0000_aspiring_sprite.sql b/packages/database/migrations/0000_aspiring_sprite.sql deleted file mode 100644 index e6b9f6e6..00000000 --- a/packages/database/migrations/0000_aspiring_sprite.sql +++ /dev/null @@ -1,199 +0,0 @@ -CREATE TABLE "channels" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "slug" text NOT NULL, - "name" text NOT NULL, - "description" text, - "conditions" text, - "phone" text, - "country_code" text NOT NULL, - "currency_code" text NOT NULL, - "time_zone" text NOT NULL, - "is_active" boolean DEFAULT true NOT NULL, - "is_delivery_available" boolean DEFAULT true NOT NULL, - "is_pickup_available" boolean DEFAULT true NOT NULL, - "min_amount_for_delivery" integer -); ---> statement-breakpoint -CREATE TABLE "checkout_lines" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "quantity" integer DEFAULT 1 NOT NULL, - "unit_price" double precision DEFAULT 0 NOT NULL, - "undiscounted_unit_price" double precision DEFAULT 0 NOT NULL, - "total_price" double precision DEFAULT 0 NOT NULL, - "undiscounted_total_price" double precision DEFAULT 0 NOT NULL, - "is_gift" boolean DEFAULT false NOT NULL, - "checkout_id" varchar(24) NOT NULL, - "product_variant_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "checkout_receivers" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "type" text NOT NULL, - "data" jsonb, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "checkouts" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "status" text DEFAULT 'CREATED' NOT NULL, - "delivery_method" text DEFAULT '', - "payment_method_id" text DEFAULT '', - "shipping_price" double precision DEFAULT 0 NOT NULL, - "total_price" double precision DEFAULT 0 NOT NULL, - "name" text DEFAULT '' NOT NULL, - "phone" text DEFAULT '' NOT NULL, - "time" timestamp(3) DEFAULT now() NOT NULL, - "time_type" text DEFAULT 'ASAP' NOT NULL, - "discount" double precision, - "warehouse_id" text, - "street" text DEFAULT '', - "flat" text, - "doorphone" text, - "entrance" text, - "floor" text, - "address_note" text, - "note" text, - "change" text, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "medias" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL -); ---> statement-breakpoint -CREATE TABLE "menu_categories" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "slug" text NOT NULL, - "name" text NOT NULL, - "menu_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "menus" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "slug" text NOT NULL, - "name" text NOT NULL, - "is_active" boolean DEFAULT false NOT NULL, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "payment_methods" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "name" text NOT NULL, - "type" text NOT NULL, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "product_variants" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "name" text NOT NULL, - "weight_unit" text DEFAULT 'G' NOT NULL, - "weight_value" double precision NOT NULL, - "gross" double precision NOT NULL, - "net" double precision, - "sku" text, - "calories" double precision, - "carbohydrate" double precision, - "fat" double precision, - "protein" double precision, - "product_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "products" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "slug" text NOT NULL, - "name" text NOT NULL, - "description" text NOT NULL, - "is_available_for_purchase" boolean DEFAULT true NOT NULL, - "channel_id" varchar(24) NOT NULL, - "category_id" varchar(24) NOT NULL, - "media_id" varchar(24) -); ---> statement-breakpoint -CREATE TABLE "user_credentials" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "login" text NOT NULL, - "password_hash" text NOT NULL, - "user_id" varchar(24) NOT NULL, - CONSTRAINT "user_credentials_login_unique" UNIQUE("login") -); ---> statement-breakpoint -CREATE TABLE "user_permissions" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "code" text NOT NULL, - "user_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "users" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "is_active" boolean DEFAULT true NOT NULL, - "is_confirmed" boolean DEFAULT false NOT NULL, - "is_staff" boolean DEFAULT false NOT NULL, - "name" text, - "email" text, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "warehouses" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "name" text NOT NULL, - "address" text NOT NULL, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "working_days" ( - "id" varchar(24) PRIMARY KEY NOT NULL, - "created_at" timestamp(3) DEFAULT now() NOT NULL, - "updated_at" timestamp(3) DEFAULT now() NOT NULL, - "day" text NOT NULL, - "open_hours" integer NOT NULL, - "open_minutes" integer NOT NULL, - "close_hours" integer NOT NULL, - "close_minutes" integer NOT NULL, - "is_active" boolean DEFAULT true NOT NULL, - "channel_id" varchar(24) NOT NULL -); ---> statement-breakpoint -ALTER TABLE "checkout_lines" ADD CONSTRAINT "checkout_lines_checkout_id_checkouts_id_fk" FOREIGN KEY ("checkout_id") REFERENCES "public"."checkouts"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "checkout_lines" ADD CONSTRAINT "checkout_lines_product_variant_id_product_variants_id_fk" FOREIGN KEY ("product_variant_id") REFERENCES "public"."product_variants"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "checkout_receivers" ADD CONSTRAINT "checkout_receivers_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "checkouts" ADD CONSTRAINT "checkouts_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "menu_categories" ADD CONSTRAINT "menu_categories_menu_id_menus_id_fk" FOREIGN KEY ("menu_id") REFERENCES "public"."menus"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "menus" ADD CONSTRAINT "menus_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "payment_methods" ADD CONSTRAINT "payment_methods_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "product_variants" ADD CONSTRAINT "product_variants_product_id_products_id_fk" FOREIGN KEY ("product_id") REFERENCES "public"."products"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "products" ADD CONSTRAINT "products_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "products" ADD CONSTRAINT "products_category_id_menu_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."menu_categories"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "products" ADD CONSTRAINT "products_media_id_medias_id_fk" FOREIGN KEY ("media_id") REFERENCES "public"."medias"("id") ON DELETE set null ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "user_credentials" ADD CONSTRAINT "user_credentials_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "user_permissions" ADD CONSTRAINT "user_permissions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "users" ADD CONSTRAINT "users_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "warehouses" ADD CONSTRAINT "warehouses_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint -ALTER TABLE "working_days" ADD CONSTRAINT "working_days_channel_id_channels_id_fk" FOREIGN KEY ("channel_id") REFERENCES "public"."channels"("id") ON DELETE cascade ON UPDATE cascade; \ No newline at end of file diff --git a/packages/database/migrations/meta/0000_snapshot.json b/packages/database/migrations/meta/0000_snapshot.json deleted file mode 100644 index ed48099a..00000000 --- a/packages/database/migrations/meta/0000_snapshot.json +++ /dev/null @@ -1,1321 +0,0 @@ -{ - "id": "66cb4975-c4f7-4d28-becc-67f2a177e7c5", - "prevId": "00000000-0000-0000-0000-000000000000", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.channels": { - "name": "channels", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "slug": { - "name": "slug", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "conditions": { - "name": "conditions", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "country_code": { - "name": "country_code", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "currency_code": { - "name": "currency_code", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "time_zone": { - "name": "time_zone", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "is_delivery_available": { - "name": "is_delivery_available", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "is_pickup_available": { - "name": "is_pickup_available", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "min_amount_for_delivery": { - "name": "min_amount_for_delivery", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.checkout_lines": { - "name": "checkout_lines", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "quantity": { - "name": "quantity", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 1 - }, - "unit_price": { - "name": "unit_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "undiscounted_unit_price": { - "name": "undiscounted_unit_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "total_price": { - "name": "total_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "undiscounted_total_price": { - "name": "undiscounted_total_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "is_gift": { - "name": "is_gift", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "checkout_id": { - "name": "checkout_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - }, - "product_variant_id": { - "name": "product_variant_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "checkout_lines_checkout_id_checkouts_id_fk": { - "name": "checkout_lines_checkout_id_checkouts_id_fk", - "tableFrom": "checkout_lines", - "tableTo": "checkouts", - "columnsFrom": [ - "checkout_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - }, - "checkout_lines_product_variant_id_product_variants_id_fk": { - "name": "checkout_lines_product_variant_id_product_variants_id_fk", - "tableFrom": "checkout_lines", - "tableTo": "product_variants", - "columnsFrom": [ - "product_variant_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.checkout_receivers": { - "name": "checkout_receivers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "data": { - "name": "data", - "type": "jsonb", - "primaryKey": false, - "notNull": false - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "checkout_receivers_channel_id_channels_id_fk": { - "name": "checkout_receivers_channel_id_channels_id_fk", - "tableFrom": "checkout_receivers", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.checkouts": { - "name": "checkouts", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'CREATED'" - }, - "delivery_method": { - "name": "delivery_method", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "''" - }, - "payment_method_id": { - "name": "payment_method_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "''" - }, - "shipping_price": { - "name": "shipping_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "total_price": { - "name": "total_price", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "time": { - "name": "time", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "time_type": { - "name": "time_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'ASAP'" - }, - "discount": { - "name": "discount", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "warehouse_id": { - "name": "warehouse_id", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "street": { - "name": "street", - "type": "text", - "primaryKey": false, - "notNull": false, - "default": "''" - }, - "flat": { - "name": "flat", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "doorphone": { - "name": "doorphone", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "entrance": { - "name": "entrance", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "floor": { - "name": "floor", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "address_note": { - "name": "address_note", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "note": { - "name": "note", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "change": { - "name": "change", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "checkouts_channel_id_channels_id_fk": { - "name": "checkouts_channel_id_channels_id_fk", - "tableFrom": "checkouts", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.medias": { - "name": "medias", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.menu_categories": { - "name": "menu_categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "slug": { - "name": "slug", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "menu_id": { - "name": "menu_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "menu_categories_menu_id_menus_id_fk": { - "name": "menu_categories_menu_id_menus_id_fk", - "tableFrom": "menu_categories", - "tableTo": "menus", - "columnsFrom": [ - "menu_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.menus": { - "name": "menus", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "slug": { - "name": "slug", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "menus_channel_id_channels_id_fk": { - "name": "menus_channel_id_channels_id_fk", - "tableFrom": "menus", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.payment_methods": { - "name": "payment_methods", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "payment_methods_channel_id_channels_id_fk": { - "name": "payment_methods_channel_id_channels_id_fk", - "tableFrom": "payment_methods", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.product_variants": { - "name": "product_variants", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "weight_unit": { - "name": "weight_unit", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "'G'" - }, - "weight_value": { - "name": "weight_value", - "type": "double precision", - "primaryKey": false, - "notNull": true - }, - "gross": { - "name": "gross", - "type": "double precision", - "primaryKey": false, - "notNull": true - }, - "net": { - "name": "net", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "sku": { - "name": "sku", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "calories": { - "name": "calories", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "carbohydrate": { - "name": "carbohydrate", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "fat": { - "name": "fat", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "protein": { - "name": "protein", - "type": "double precision", - "primaryKey": false, - "notNull": false - }, - "product_id": { - "name": "product_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "product_variants_product_id_products_id_fk": { - "name": "product_variants_product_id_products_id_fk", - "tableFrom": "product_variants", - "tableTo": "products", - "columnsFrom": [ - "product_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.products": { - "name": "products", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "slug": { - "name": "slug", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "is_available_for_purchase": { - "name": "is_available_for_purchase", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - }, - "media_id": { - "name": "media_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "products_channel_id_channels_id_fk": { - "name": "products_channel_id_channels_id_fk", - "tableFrom": "products", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - }, - "products_category_id_menu_categories_id_fk": { - "name": "products_category_id_menu_categories_id_fk", - "tableFrom": "products", - "tableTo": "menu_categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - }, - "products_media_id_medias_id_fk": { - "name": "products_media_id_medias_id_fk", - "tableFrom": "products", - "tableTo": "medias", - "columnsFrom": [ - "media_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.user_credentials": { - "name": "user_credentials", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "login": { - "name": "login", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "password_hash": { - "name": "password_hash", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "user_credentials_user_id_users_id_fk": { - "name": "user_credentials_user_id_users_id_fk", - "tableFrom": "user_credentials", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "user_credentials_login_unique": { - "name": "user_credentials_login_unique", - "nullsNotDistinct": false, - "columns": [ - "login" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.user_permissions": { - "name": "user_permissions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "code": { - "name": "code", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "user_permissions_user_id_users_id_fk": { - "name": "user_permissions_user_id_users_id_fk", - "tableFrom": "user_permissions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "is_confirmed": { - "name": "is_confirmed", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "is_staff": { - "name": "is_staff", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "users_channel_id_channels_id_fk": { - "name": "users_channel_id_channels_id_fk", - "tableFrom": "users", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.warehouses": { - "name": "warehouses", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "address": { - "name": "address", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "warehouses_channel_id_channels_id_fk": { - "name": "warehouses_channel_id_channels_id_fk", - "tableFrom": "warehouses", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.working_days": { - "name": "working_days", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(24)", - "primaryKey": true, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp(3)", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "day": { - "name": "day", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "open_hours": { - "name": "open_hours", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "open_minutes": { - "name": "open_minutes", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "close_hours": { - "name": "close_hours", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "close_minutes": { - "name": "close_minutes", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "channel_id": { - "name": "channel_id", - "type": "varchar(24)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "working_days_channel_id_channels_id_fk": { - "name": "working_days_channel_id_channels_id_fk", - "tableFrom": "working_days", - "tableTo": "channels", - "columnsFrom": [ - "channel_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/packages/database/migrations/meta/_journal.json b/packages/database/migrations/meta/_journal.json deleted file mode 100644 index dec93eed..00000000 --- a/packages/database/migrations/meta/_journal.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "7", - "dialect": "postgresql", - "entries": [ - { - "idx": 0, - "version": "7", - "when": 1738845365644, - "tag": "0000_aspiring_sprite", - "breakpoints": true - } - ] -} \ No newline at end of file diff --git a/packages/database/package.json b/packages/database/package.json deleted file mode 100644 index a5f8c79f..00000000 --- a/packages/database/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@next-orders/database", - "type": "module", - "version": "0.0.0", - "private": true, - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" - } - }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "migrations" - ], - "scripts": { - "build": "unbuild", - "db:generate": "drizzle-kit generate", - "db:migrate": "drizzle-kit migrate", - "db:studio": "drizzle-kit studio", - "clean": "rm -rf dist", - "clean:modules": "rm -rf node_modules", - "typecheck": "tsc --noEmit", - "postinstall": "pnpm build" - }, - "dependencies": { - "@paralleldrive/cuid2": "catalog:", - "drizzle-cuid2": "catalog:", - "drizzle-orm": "catalog:", - "pg": "catalog:" - }, - "devDependencies": { - "@types/node": "catalog:", - "@types/pg": "catalog:", - "dotenv": "catalog:", - "drizzle-kit": "catalog:", - "typescript": "catalog:", - "unbuild": "catalog:" - } -} diff --git a/packages/database/src/connection.ts b/packages/database/src/connection.ts deleted file mode 100644 index c3a27b69..00000000 --- a/packages/database/src/connection.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { NodePgDatabase } from 'drizzle-orm/node-postgres' -import { drizzle } from 'drizzle-orm/node-postgres' -import pg from 'pg' -import * as tables from './tables' - -export type Database = NodePgDatabase - -export function createConnection(connectionString: string): Database { - const pool = new pg.Pool({ connectionString }) - - return drizzle({ - client: pool, - schema: tables, - }) -} diff --git a/packages/database/src/database.ts b/packages/database/src/database.ts deleted file mode 100644 index 370d2190..00000000 --- a/packages/database/src/database.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { Database } from './connection' -import { resolve } from 'node:path' -import { migrate } from 'drizzle-orm/node-postgres/migrator' -import { createConnection } from './connection' - -let instance: Database | null = null - -export function useCreateDatabase(databaseURL: string) { - instance = createConnection(databaseURL) -} - -export async function useMigrateDatabase(migrationFolder: string) { - if (!instance) { - throw new Error('Database is not created') - } - - await migrate(instance, { - migrationsFolder: resolve(migrationFolder), - }) -} - -export function useDatabase(): Database { - if (!instance) { - throw new Error('Database is not created') - } - - return instance -} diff --git a/packages/database/src/index.ts b/packages/database/src/index.ts deleted file mode 100644 index dd940ce1..00000000 --- a/packages/database/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './database' -export { repository } from './repository' -export * as tables from './tables' -export type * from './types' - -export { createId } from '@paralleldrive/cuid2' diff --git a/packages/database/src/repository/channel.ts b/packages/database/src/repository/channel.ts deleted file mode 100644 index 67122d06..00000000 --- a/packages/database/src/repository/channel.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { ChannelDraft } from '../types' -import { eq, sql } from 'drizzle-orm' -import { useDatabase } from '../database' -import { channels } from '../tables' - -export class Channel { - static async find(id: string) { - return useDatabase().query.channels.findFirst({ - where: (channels, { eq }) => eq(channels.id, id), - with: { - menus: { - with: { - categories: { - with: { - products: { - with: { - variants: true, - category: true, - }, - }, - }, - }, - }, - }, - warehouses: true, - paymentMethods: true, - workingDays: true, - }, - }) - } - - static async create(data: ChannelDraft) { - const [channel] = await useDatabase().insert(channels).values(data).returning() - return channel - } - - static async patch(id: string, data: Partial) { - const [channel] = await useDatabase().update(channels).set({ - ...data, - updatedAt: sql`NOW()`, - }).where(eq(channels.id, id)).returning() - - return channel - } - - static async setAsUpdated(id: string) { - const [channel] = await useDatabase().update(channels).set({ updatedAt: sql`NOW()` }).where(eq(channels.id, id)).returning() - return channel - } -} diff --git a/packages/database/src/repository/checkout.ts b/packages/database/src/repository/checkout.ts deleted file mode 100644 index 8c144a50..00000000 --- a/packages/database/src/repository/checkout.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { CheckoutDraft } from '../types' -import { asc, desc, eq, sql } from 'drizzle-orm' -import { useDatabase } from '../database' -import { checkoutLines, checkouts } from '../tables' - -export class Checkout { - static async find(id: string) { - return useDatabase().query.checkouts.findFirst({ - where: (checkouts, { eq }) => eq(checkouts.id, id), - with: { - lines: { - with: { - productVariant: { - with: { - product: { - with: { - category: true, - }, - }, - }, - }, - }, - orderBy: [asc(checkoutLines.createdAt)], - }, - }, - }) - } - - static async findLatestFinished() { - return useDatabase().query.checkouts.findMany({ - where: (checkouts, { eq }) => eq(checkouts.status, 'FINISHED'), - limit: 30, - orderBy: [desc(checkouts.createdAt)], - with: { - lines: { - with: { - productVariant: { - with: { - product: { - with: { - category: true, - }, - }, - }, - }, - }, - orderBy: [asc(checkoutLines.createdAt)], - }, - }, - }) - } - - static async create(data: CheckoutDraft) { - const [checkout] = await useDatabase() - .insert(checkouts) - .values(data) - .returning() - return checkout - } - - static async patch(id: string, data: Partial) { - const [checkout] = await useDatabase() - .update(checkouts) - .set(data) - .where(eq(checkouts.id, id)) - .returning() - return checkout - } - - static async setAsFinished(id: string) { - const [checkout] = await useDatabase() - .update(checkouts) - .set({ status: 'FINISHED' }) - .where(eq(checkouts.id, id)) - .returning() - return checkout - } - - /** - * Recalculate total price for a given checkout and update the database. - * - * @param id - The ID of the checkout to recalculate. - */ - static async recalculate(id: string): Promise { - await useDatabase().transaction(async (tx) => { - const checkout = await tx.query.checkouts.findFirst({ - where: (checkouts, { eq }) => eq(checkouts.id, id), - with: { - lines: { - with: { - productVariant: true, - }, - }, - }, - }) - if (!checkout) { - throw new Error(`Checkout with id ${id} not found`) - } - - for (const line of checkout.lines) { - await tx.update(checkoutLines) - .set({ - totalPrice: line.quantity * line.productVariant.gross, - unitPrice: line.productVariant.gross, - }) - .where(eq(checkoutLines.id, line.id)) - } - - const totalPrice = checkout.lines.reduce((acc, line) => { - return acc + line.quantity * line.productVariant.gross - }, 0) - - await tx.update(checkouts) - .set({ - totalPrice, - updatedAt: sql`NOW()`, - }) - .where(eq(checkouts.id, checkout.id)) - }) - } -} diff --git a/packages/database/src/repository/checkoutLine.ts b/packages/database/src/repository/checkoutLine.ts deleted file mode 100644 index 26ae1376..00000000 --- a/packages/database/src/repository/checkoutLine.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { CheckoutLineDraft } from '../types' -import { eq, sql } from 'drizzle-orm' -import { useDatabase } from '../database' -import { checkoutLines } from '../tables' - -export class CheckoutLine { - static async create(data: CheckoutLineDraft) { - const [line] = await useDatabase().insert(checkoutLines).values(data).returning() - return line - } - - static async increase(id: string, amount: number = 1) { - const [line] = await useDatabase().update(checkoutLines).set({ - quantity: sql`${checkoutLines.quantity} + ${amount}`, - }).where(eq(checkoutLines.id, id)).returning() - return line - } - - static async reduce(id: string, amount: number = 1) { - const [line] = await useDatabase().update(checkoutLines).set({ - quantity: sql`${checkoutLines.quantity} - ${amount}`, - }).where(eq(checkoutLines.id, id)).returning() - - // If decremented to 0, remove line - if (line && line.quantity <= 0) { - await useDatabase().delete(checkoutLines).where(eq(checkoutLines.id, id)) - } - - return line - } -} diff --git a/packages/database/src/repository/checkoutReceiver.ts b/packages/database/src/repository/checkoutReceiver.ts deleted file mode 100644 index 132ded8b..00000000 --- a/packages/database/src/repository/checkoutReceiver.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { useDatabase } from '../database' - -export class CheckoutReceiver { - static async findAll(channelId: string) { - return useDatabase().query.checkoutReceivers.findMany({ - where: (checkoutReceivers, { eq }) => eq(checkoutReceivers.channelId, channelId), - }) - } -} diff --git a/packages/database/src/repository/index.ts b/packages/database/src/repository/index.ts deleted file mode 100644 index 9bcca853..00000000 --- a/packages/database/src/repository/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { useDatabase } from '../database' -import { Channel } from './channel' -import { Checkout } from './checkout' -import { CheckoutLine } from './checkoutLine' -import { CheckoutReceiver } from './checkoutReceiver' -import { Media } from './media' -import { Menu } from './menu' -import { MenuCategory } from './menuCategory' -import { PaymentMethod } from './paymentMethod' -import { Product } from './product' -import { ProductVariant } from './productVariant' -import { User } from './user' -import { UserCredential } from './userCredential' -import { UserPermission } from './userPermission' -import { Warehouse } from './warehouse' -import { WorkingDay } from './workingDay' - -class Repository { - readonly channel = Channel - readonly checkout = Checkout - readonly checkoutLine = CheckoutLine - readonly checkoutReceiver = CheckoutReceiver - readonly media = Media - readonly menu = Menu - readonly menuCategory = MenuCategory - readonly paymentMethod = PaymentMethod - readonly product = Product - readonly productVariant = ProductVariant - readonly user = User - readonly userCredential = UserCredential - readonly userPermission = UserPermission - readonly warehouse = Warehouse - readonly workingDay = WorkingDay - - async checkHealth(): Promise { - await useDatabase().query.channels.findFirst() - - return true - } -} - -export const repository = new Repository() diff --git a/packages/database/src/repository/media.ts b/packages/database/src/repository/media.ts deleted file mode 100644 index 9db0fd1c..00000000 --- a/packages/database/src/repository/media.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { MediaDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { medias } from '../tables' - -export class Media { - static async create(data: MediaDraft) { - const [media] = await useDatabase().insert(medias).values(data).returning() - return media - } - - static async delete(id: string) { - return useDatabase().delete(medias).where(eq(medias.id, id)).returning() - } -} diff --git a/packages/database/src/repository/menu.ts b/packages/database/src/repository/menu.ts deleted file mode 100644 index 4ad66681..00000000 --- a/packages/database/src/repository/menu.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { MenuDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { menus } from '../tables' - -export class Menu { - static async find(id: string) { - return useDatabase().query.menus.findFirst({ - where: (menus, { eq }) => eq(menus.id, id), - }) - } - - static async findActive(channelId: string, slug: string) { - return useDatabase().query.menus.findFirst({ - where: (menus, { eq, and }) => and( - eq(menus.channelId, channelId), - eq(menus.isActive, true), - ), - with: { - categories: { - where: (categories, { eq }) => eq(categories.slug, slug), - with: { - products: { - with: { - variants: true, - }, - }, - }, - }, - }, - }) - } - - static async create(data: MenuDraft) { - const [menu] = await useDatabase().insert(menus).values(data).returning() - return menu - } - - static async patch(id: string, data: Partial) { - const [menu] = await useDatabase().update(menus).set(data).where(eq(menus.id, id)).returning() - return menu - } - - static async setAsActive(id: string) { - // Off all menus - await useDatabase().update(menus).set({ isActive: false }) - - const [menu] = await useDatabase().update(menus).set({ isActive: true }).where(eq(menus.id, id)).returning() - return menu - } -} diff --git a/packages/database/src/repository/menuCategory.ts b/packages/database/src/repository/menuCategory.ts deleted file mode 100644 index 0078b428..00000000 --- a/packages/database/src/repository/menuCategory.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { MenuCategoryDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { menuCategories } from '../tables' - -export class MenuCategory { - static async create(data: MenuCategoryDraft) { - const [category] = await useDatabase().insert(menuCategories).values(data).returning() - return category - } - - static async patch(id: string, data: Partial) { - const [category] = await useDatabase().update(menuCategories).set(data).where(eq(menuCategories.id, id)).returning() - return category - } -} diff --git a/packages/database/src/repository/paymentMethod.ts b/packages/database/src/repository/paymentMethod.ts deleted file mode 100644 index 45ababf2..00000000 --- a/packages/database/src/repository/paymentMethod.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { PaymentMethodDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { paymentMethods } from '../tables' - -export class PaymentMethod { - static async create(data: PaymentMethodDraft) { - const [paymentMethod] = await useDatabase().insert(paymentMethods).values(data).returning() - return paymentMethod - } - - static async patch(id: string, data: Partial) { - const [paymentMethod] = await useDatabase().update(paymentMethods).set(data).where(eq(paymentMethods.id, id)).returning() - return paymentMethod - } - - static async delete(id: string) { - return useDatabase().delete(paymentMethods).where(eq(paymentMethods.id, id)).returning() - } -} diff --git a/packages/database/src/repository/product.ts b/packages/database/src/repository/product.ts deleted file mode 100644 index 92591620..00000000 --- a/packages/database/src/repository/product.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { ProductDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { products } from '../tables' - -export class Product { - static async find(id: string) { - return useDatabase().query.products.findFirst({ - where: (products, { eq }) => eq(products.id, id), - with: { - variants: true, - }, - }) - } - - static async findManyByChannelId(channelId: string) { - return useDatabase().query.products.findMany({ - where: (products, { eq }) => eq(products.channelId, channelId), - with: { - variants: true, - category: true, - }, - }) - } - - static async findBySlug(channelId: string, slug: string) { - return useDatabase().query.products.findFirst({ - where: (products, { eq, and }) => and( - eq(products.channelId, channelId), - eq(products.slug, slug), - ), - with: { - variants: true, - category: true, - }, - }) - } - - static async create(data: ProductDraft) { - const [product] = await useDatabase().insert(products).values(data).returning() - return product - } - - static async patch(id: string, data: Partial) { - const [product] = await useDatabase().update(products).set(data).where(eq(products.id, id)).returning() - return product - } - - static async delete(id: string) { - return useDatabase().delete(products).where(eq(products.id, id)).returning() - } -} diff --git a/packages/database/src/repository/productVariant.ts b/packages/database/src/repository/productVariant.ts deleted file mode 100644 index 8485cd14..00000000 --- a/packages/database/src/repository/productVariant.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { ProductVariantDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { productVariants } from '../tables' - -export class ProductVariant { - static async create(data: ProductVariantDraft) { - const [variant] = await useDatabase().insert(productVariants).values(data).returning() - return variant - } - - static async patch(id: string, data: Partial) { - const [variant] = await useDatabase().update(productVariants).set(data).where(eq(productVariants.id, id)).returning() - return variant - } - - static async delete(id: string) { - return useDatabase().delete(productVariants).where(eq(productVariants.id, id)).returning() - } -} diff --git a/packages/database/src/repository/user.ts b/packages/database/src/repository/user.ts deleted file mode 100644 index 8f7adf34..00000000 --- a/packages/database/src/repository/user.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { UserDraft } from '../types' -import { useDatabase } from '../database' -import { users } from '../tables' - -export class User { - static async find(id: string) { - return useDatabase().query.users.findFirst({ - where: (users, { eq }) => eq(users.id, id), - with: { - permissions: true, - }, - }) - } - - static async findMaster(channelId: string) { - const user = await useDatabase().query.users.findFirst({ - where: (users, { eq, and }) => and( - eq(users.channelId, channelId), - eq(users.isStaff, true), - ), - orderBy: (users, { asc }) => [asc(users.createdAt)], - with: { - permissions: true, - }, - }) - if (user?.permissions.find((permission) => permission.code === 'MASTER')) { - return user - } - } - - static async create(data: UserDraft) { - const [user] = await useDatabase().insert(users).values(data).returning() - return user - } -} diff --git a/packages/database/src/repository/userCredential.ts b/packages/database/src/repository/userCredential.ts deleted file mode 100644 index 2e22f6cf..00000000 --- a/packages/database/src/repository/userCredential.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { UserCredentialsDraft } from '../types' -import { useDatabase } from '../database' -import { userCredentials } from '../tables' - -export class UserCredential { - static async findByLogin(login: string) { - return useDatabase().query.userCredentials.findFirst({ - where: (credentials, { eq }) => eq(credentials.login, login), - }) - } - - static async create(data: UserCredentialsDraft) { - const [credential] = await useDatabase().insert(userCredentials).values(data).returning() - return credential - } -} diff --git a/packages/database/src/repository/userPermission.ts b/packages/database/src/repository/userPermission.ts deleted file mode 100644 index e07fc5aa..00000000 --- a/packages/database/src/repository/userPermission.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { UserPermissionDraft } from '../types' -import { useDatabase } from '../database' -import { userPermissions } from '../tables' - -export class UserPermission { - static async create(data: UserPermissionDraft) { - const [permission] = await useDatabase().insert(userPermissions).values(data).returning() - return permission - } -} diff --git a/packages/database/src/repository/warehouse.ts b/packages/database/src/repository/warehouse.ts deleted file mode 100644 index abe7e112..00000000 --- a/packages/database/src/repository/warehouse.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { WarehouseDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { warehouses } from '../tables' - -export class Warehouse { - static async find(id: string) { - return useDatabase().query.warehouses.findFirst({ - where: (warehouses, { eq }) => eq(warehouses.id, id), - }) - } - - static async create(data: WarehouseDraft) { - const [warehouse] = await useDatabase().insert(warehouses).values(data).returning() - return warehouse - } - - static async patch(id: string, data: Partial) { - const [warehouse] = await useDatabase().update(warehouses).set(data).where(eq(warehouses.id, id)).returning() - return warehouse - } -} diff --git a/packages/database/src/repository/workingDay.ts b/packages/database/src/repository/workingDay.ts deleted file mode 100644 index 5cf9da32..00000000 --- a/packages/database/src/repository/workingDay.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { WorkingDayDraft } from '../types' -import { eq } from 'drizzle-orm' -import { useDatabase } from '../database' -import { workingDays } from '../tables' - -export class WorkingDay { - static async findByDayAndChannelId(channelId: string, day: string) { - return useDatabase().query.workingDays.findFirst({ - where: (workingDays, { eq, and }) => and( - eq(workingDays.channelId, channelId), - eq(workingDays.day, day), - ), - }) - } - - static async patch(id: string, data: Partial) { - const [workingDay] = await useDatabase().update(workingDays).set(data).where(eq(workingDays.id, id)).returning() - return workingDay - } - - static async create(data: WorkingDayDraft) { - const [workingDay] = await useDatabase().insert(workingDays).values(data).returning() - return workingDay - } -} diff --git a/packages/database/src/tables.ts b/packages/database/src/tables.ts deleted file mode 100644 index 79c92728..00000000 --- a/packages/database/src/tables.ts +++ /dev/null @@ -1,354 +0,0 @@ -import { cuid2 } from 'drizzle-cuid2/postgres' -import { relations } from 'drizzle-orm' -import { boolean, doublePrecision, integer, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core' - -export const channels = pgTable('channels', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - slug: text('slug').notNull(), - name: text('name').notNull(), - description: text('description'), - conditions: text('conditions'), - phone: text('phone'), - countryCode: text('country_code').notNull(), - currencyCode: text('currency_code').notNull(), - timeZone: text('time_zone').notNull(), - isActive: boolean('is_active').notNull().default(true), - isDeliveryAvailable: boolean('is_delivery_available').notNull().default(true), - isPickupAvailable: boolean('is_pickup_available').notNull().default(true), - minAmountForDelivery: integer('min_amount_for_delivery'), -}) - -export const checkouts = pgTable('checkouts', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - status: text('status').notNull().default('CREATED'), - deliveryMethod: text('delivery_method').default(''), - paymentMethodId: text('payment_method_id').default(''), - shippingPrice: doublePrecision('shipping_price').notNull().default(0), - totalPrice: doublePrecision('total_price').notNull().default(0), - name: text('name').notNull().default(''), - phone: text('phone').notNull().default(''), - time: timestamp({ precision: 3, mode: 'string' }).notNull().defaultNow(), - timeType: text('time_type').notNull().default('ASAP'), - discount: doublePrecision('discount'), - warehouseId: text('warehouse_id'), - street: text('street').default(''), - flat: text('flat'), - doorphone: text('doorphone'), - entrance: text('entrance'), - floor: text('floor'), - addressNote: text('address_note'), - note: text('note'), - change: text('change'), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const checkoutLines = pgTable('checkout_lines', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - quantity: integer('quantity').notNull().default(1), - unitPrice: doublePrecision('unit_price').notNull().default(0), - undiscountedUnitPrice: doublePrecision('undiscounted_unit_price').notNull().default(0), - totalPrice: doublePrecision('total_price').notNull().default(0), - undiscountedTotalPrice: doublePrecision('undiscounted_total_price').notNull().default(0), - isGift: boolean('is_gift').notNull().default(false), - checkoutId: cuid2('checkout_id').notNull().references(() => checkouts.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), - productVariantId: cuid2('product_variant_id').notNull().references(() => productVariants.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const checkoutReceivers = pgTable('checkout_receivers', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - type: text('type').notNull(), - data: jsonb('data'), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const medias = pgTable('medias', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), -}) - -export const menus = pgTable('menus', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - slug: text('slug').notNull(), - name: text('name').notNull(), - isActive: boolean('is_active').notNull().default(false), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const menuCategories = pgTable('menu_categories', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - slug: text('slug').notNull(), - name: text('name').notNull(), - menuId: cuid2('menu_id').notNull().references(() => menus.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const paymentMethods = pgTable('payment_methods', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - name: text('name').notNull(), - type: text('type').notNull(), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const products = pgTable('products', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - slug: text('slug').notNull(), - name: text('name').notNull(), - description: text('description').notNull(), - isAvailableForPurchase: boolean('is_available_for_purchase').notNull().default(true), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), - categoryId: cuid2('category_id').notNull().references(() => menuCategories.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), - mediaId: cuid2('media_id').references(() => medias.id, { - onDelete: 'set null', - onUpdate: 'cascade', - }), -}) - -export const productVariants = pgTable('product_variants', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - name: text('name').notNull(), - weightUnit: text('weight_unit').notNull().default('G'), - weightValue: doublePrecision('weight_value').notNull(), - gross: doublePrecision('gross').notNull(), - net: doublePrecision('net'), - sku: text('sku'), - calories: doublePrecision('calories'), - carbohydrate: doublePrecision('carbohydrate'), - fat: doublePrecision('fat'), - protein: doublePrecision('protein'), - productId: cuid2('product_id').notNull().references(() => products.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const users = pgTable('users', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - isActive: boolean('is_active').notNull().default(true), - isConfirmed: boolean('is_confirmed').notNull().default(false), - isStaff: boolean('is_staff').notNull().default(false), - name: text('name'), - email: text('email'), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const userCredentials = pgTable('user_credentials', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - login: text('login').notNull().unique(), - passwordHash: text('password_hash').notNull(), - userId: cuid2('user_id').notNull().references(() => users.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const userPermissions = pgTable('user_permissions', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - code: text('code').notNull(), - userId: cuid2('user_id').notNull().references(() => users.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const warehouses = pgTable('warehouses', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - name: text('name').notNull(), - address: text('address').notNull(), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const workingDays = pgTable('working_days', { - id: cuid2('id').defaultRandom().primaryKey(), - createdAt: timestamp('created_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - updatedAt: timestamp('updated_at', { precision: 3, mode: 'string' }).notNull().defaultNow(), - day: text('day').notNull(), - openHours: integer('open_hours').notNull(), - openMinutes: integer('open_minutes').notNull(), - closeHours: integer('close_hours').notNull(), - closeMinutes: integer('close_minutes').notNull(), - isActive: boolean('is_active').notNull().default(true), - channelId: cuid2('channel_id').notNull().references(() => channels.id, { - onDelete: 'cascade', - onUpdate: 'cascade', - }), -}) - -export const channelsRelations = relations(channels, ({ many }) => ({ - paymentMethods: many(paymentMethods), - warehouses: many(warehouses), - menus: many(menus), - products: many(products), - checkouts: many(checkouts), - checkoutReceivers: many(checkoutReceivers), - users: many(users), - workingDays: many(workingDays), -})) - -export const checkoutsRelations = relations(checkouts, ({ many, one }) => ({ - lines: many(checkoutLines), - channel: one(channels, { - fields: [checkouts.channelId], - references: [channels.id], - }), -})) - -export const checkoutLinesRelations = relations(checkoutLines, ({ one }) => ({ - checkout: one(checkouts, { - fields: [checkoutLines.checkoutId], - references: [checkouts.id], - }), - productVariant: one(productVariants, { - fields: [checkoutLines.productVariantId], - references: [productVariants.id], - }), -})) - -export const checkoutReceiverRelations = relations(checkoutReceivers, ({ one }) => ({ - channel: one(channels, { - fields: [checkoutReceivers.channelId], - references: [channels.id], - }), -})) - -export const menusRelations = relations(menus, ({ many, one }) => ({ - categories: many(menuCategories), - channel: one(channels, { - fields: [menus.channelId], - references: [channels.id], - }), -})) - -export const menuCategoriesRelations = relations(menuCategories, ({ many, one }) => ({ - products: many(products), - menu: one(menus, { - fields: [menuCategories.menuId], - references: [menus.id], - }), -})) - -export const paymentMethodsRelations = relations(paymentMethods, ({ one }) => ({ - channel: one(channels, { - fields: [paymentMethods.channelId], - references: [channels.id], - }), -})) - -export const productsRelations = relations(products, ({ many, one }) => ({ - variants: many(productVariants), - media: one(medias, { - fields: [products.mediaId], - references: [medias.id], - }), - channel: one(channels, { - fields: [products.channelId], - references: [channels.id], - }), - category: one(menuCategories, { - fields: [products.categoryId], - references: [menuCategories.id], - }), -})) - -export const productVariantsRelations = relations(productVariants, ({ many, one }) => ({ - checkoutLines: many(checkoutLines), - product: one(products, { - fields: [productVariants.productId], - references: [products.id], - }), -})) - -export const usersRelations = relations(users, ({ many, one }) => ({ - credentials: many(userCredentials), - permissions: many(userPermissions), - channel: one(channels, { - fields: [users.channelId], - references: [channels.id], - }), -})) - -export const userCredentialsRelations = relations(userCredentials, ({ one }) => ({ - user: one(users, { - fields: [userCredentials.userId], - references: [users.id], - }), -})) - -export const userPermissionsRelations = relations(userPermissions, ({ one }) => ({ - user: one(users, { - fields: [userPermissions.userId], - references: [users.id], - }), -})) - -export const warehousesRelations = relations(warehouses, ({ one }) => ({ - channel: one(channels, { - fields: [warehouses.channelId], - references: [channels.id], - }), -})) - -export const workingDaysRelations = relations(workingDays, ({ one }) => ({ - channel: one(channels, { - fields: [workingDays.channelId], - references: [channels.id], - }), -})) diff --git a/packages/database/src/types.ts b/packages/database/src/types.ts deleted file mode 100644 index ad1a56aa..00000000 --- a/packages/database/src/types.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { InferInsertModel, InferSelectModel } from 'drizzle-orm' -import type * as tables from './tables' - -export type { Database } from './connection' - -export type Channel = InferSelectModel -export type ChannelDraft = InferInsertModel - -export type Checkout = InferSelectModel -export type CheckoutDraft = InferInsertModel - -export type CheckoutLine = InferSelectModel -export type CheckoutLineDraft = InferInsertModel - -export type CheckoutReceiver = InferSelectModel -export type CheckoutReceiverDraft = InferInsertModel - -export type Media = InferSelectModel -export type MediaDraft = InferInsertModel - -export type Menu = InferSelectModel -export type MenuDraft = InferInsertModel - -export type MenuCategory = InferSelectModel -export type MenuCategoryDraft = InferInsertModel - -export type PaymentMethod = InferSelectModel -export type PaymentMethodDraft = InferInsertModel - -export type Product = InferSelectModel -export type ProductDraft = InferInsertModel - -export type ProductVariant = InferSelectModel -export type ProductVariantDraft = InferInsertModel - -export type User = InferSelectModel -export type UserDraft = InferInsertModel - -export type UserCredentials = InferSelectModel -export type UserCredentialsDraft = InferInsertModel - -export type UserPermission = InferSelectModel -export type UserPermissionDraft = InferInsertModel - -export type Warehouse = InferSelectModel -export type WarehouseDraft = InferInsertModel - -export type WorkingDay = InferSelectModel -export type WorkingDayDraft = InferInsertModel diff --git a/packages/database/tsconfig.json b/packages/database/tsconfig.json deleted file mode 100644 index b666c0cc..00000000 --- a/packages/database/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "lib": [ - "ESNext", - "dom", - "dom.iterable", - "webworker" - ], - "moduleDetection": "force", - "useDefineForClassFields": true, - "module": "preserve", - "moduleResolution": "Bundler", - "resolveJsonModule": true, - "allowJs": true, - "strict": true, - "noImplicitOverride": true, - "noImplicitThis": true, - "noUncheckedIndexedAccess": true, - "noEmit": true, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "isolatedModules": true, - "verbatimModuleSyntax": true, - "skipLibCheck": true - }, - "exclude": [ - "./dist", - "./node_modules" - ] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44421404..6a895b42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,9 +72,6 @@ catalogs: '@types/nodemailer': specifier: ^6.4.17 version: 6.4.17 - '@types/pg': - specifier: ^8.11.11 - version: 8.11.11 '@vitejs/plugin-vue': specifier: ^5.2.1 version: 5.2.1 @@ -102,21 +99,9 @@ catalogs: bcrypt: specifier: ^5.1.1 version: 5.1.1 - dotenv: - specifier: ^16.4.7 - version: 16.4.7 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 - drizzle-cuid2: - specifier: ^2.0.0 - version: 2.0.0 - drizzle-kit: - specifier: ^0.30.4 - version: 0.30.4 - drizzle-orm: - specifier: ^0.39.3 - version: 0.39.3 eslint: specifier: ^9.20.1 version: 9.20.1 @@ -144,9 +129,6 @@ catalogs: nuxt-zod-i18n: specifier: ^1.11.5 version: 1.11.5 - pg: - specifier: ^8.13.3 - version: 8.13.3 pinia: specifier: ^3.0.1 version: 3.0.1 @@ -159,12 +141,6 @@ catalogs: semantic-release-monorepo: specifier: ^8.0.2 version: 8.0.2 - typescript: - specifier: ^5.7.3 - version: 5.7.3 - unbuild: - specifier: ^3.3.1 - version: 3.3.1 vite: specifier: ^6.1.1 version: 6.1.1 @@ -273,9 +249,6 @@ importers: '@next-orders/core': specifier: workspace:* version: link:../../packages/core - '@next-orders/database': - specifier: workspace:* - version: link:../../packages/database '@next-orders/ui': specifier: workspace:* version: link:../../packages/ui @@ -310,7 +283,7 @@ importers: version: 22.13.4 nuxt: specifier: 'catalog:' - version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) nuxt-auth-utils: specifier: 'catalog:' version: 0.5.16(bcrypt@5.1.1)(magicast@0.3.5) @@ -326,9 +299,6 @@ importers: '@dicebear/core': specifier: 'catalog:' version: 9.2.2 - '@next-orders/database': - specifier: workspace:* - version: link:../database '@nuxtjs/i18n': specifier: 'catalog:' version: 9.2.1(@vue/compiler-dom@3.5.13)(eslint@9.20.1(jiti@2.4.2))(magicast@0.3.5)(rollup@4.34.5)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) @@ -340,7 +310,7 @@ importers: version: 12.7.0(typescript@5.7.3) '@vueuse/nuxt': specifier: 'catalog:' - version: 12.7.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0))(typescript@5.7.3) + version: 12.7.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0))(typescript@5.7.3) aws4fetch: specifier: 'catalog:' version: 1.0.20 @@ -359,45 +329,11 @@ importers: version: 22.13.4 nuxt: specifier: 'catalog:' - version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) nuxt-auth-utils: specifier: 'catalog:' version: 0.5.16(bcrypt@5.1.1)(magicast@0.3.5) - packages/database: - dependencies: - '@paralleldrive/cuid2': - specifier: 'catalog:' - version: 2.2.2 - drizzle-cuid2: - specifier: 'catalog:' - version: 2.0.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)) - drizzle-orm: - specifier: 'catalog:' - version: 0.39.3(@types/pg@8.11.11)(pg@8.13.3) - pg: - specifier: 'catalog:' - version: 8.13.3 - devDependencies: - '@types/node': - specifier: 'catalog:' - version: 22.13.4 - '@types/pg': - specifier: 'catalog:' - version: 8.11.11 - dotenv: - specifier: 'catalog:' - version: 16.4.7 - drizzle-kit: - specifier: 'catalog:' - version: 0.30.4 - typescript: - specifier: 'catalog:' - version: 5.7.3 - unbuild: - specifier: 'catalog:' - version: 3.3.1(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3)) - packages/ui: dependencies: '@nuxt/ui': @@ -957,9 +893,6 @@ packages: peerDependencies: '@dicebear/core': ^9.0.0 - '@drizzle-team/brocli@0.10.2': - resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -971,308 +904,102 @@ packages: resolution: {integrity: sha512-+zZymuVLH6zVwXPtCAtC+bDymxmEwEqDftdAK+f407IF1bnX49anIxvBhCA1AqUIfD6egj1jM1vUnSuijjNyYg==} engines: {node: '>=18'} - '@esbuild-kit/core-utils@3.3.2': - resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - deprecated: 'Merged into tsx: https://tsx.is' - - '@esbuild-kit/esm-loader@2.6.5': - resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - deprecated: 'Merged into tsx: https://tsx.is' - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.24.2': resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.24.2': resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} @@ -1285,18 +1012,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} @@ -1309,90 +1024,30 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} @@ -2168,15 +1823,6 @@ packages: rollup: optional: true - '@rollup/plugin-node-resolve@16.0.0': - resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-replace@6.0.2': resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} engines: {node: '>=14.0.0'} @@ -2983,14 +2629,6 @@ packages: typescript: optional: true - '@vue/language-core@2.2.2': - resolution: {integrity: sha512-QotO41kurE5PLf3vrNgGTk3QswO2PdUFjBwNiOi7zMmGhwb25PSTh9hD1MCgKC06AVv+8sZQvlL3Do4TTVHSiQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/reactivity@3.5.13': resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} @@ -3137,9 +2775,6 @@ packages: alien-signals@0.4.14: resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - alien-signals@1.0.3: - resolution: {integrity: sha512-zQOh3wAYK5ujENxvBBR3CFGF/b6afaSzZ/c9yNhJ1ENrGHETvpUuKQsa93Qrclp0+PzTF93MaZ7scVp1uUozhA==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -3928,15 +3563,6 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - drizzle-cuid2@2.0.0: - resolution: {integrity: sha512-w41SoJKzeRLmzsbaD7ZNIWeQQgQgwVklxlFWWhLw4T6pCBJwWW3NLJIS6n0Dh/KlGm330dev/nnlPIk8Q/YXMg==} - peerDependencies: - drizzle-orm: '>=0.28.3' - - drizzle-kit@0.30.4: - resolution: {integrity: sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==} - hasBin: true - drizzle-orm@0.39.3: resolution: {integrity: sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw==} peerDependencies: @@ -4145,21 +3771,6 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} @@ -5060,10 +4671,6 @@ packages: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true @@ -5632,24 +5239,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdist@2.2.0: - resolution: {integrity: sha512-GfKwu4A2grXfhj2TZm4ydfzP515NaALqKaPq4WqaZ6NhEnD47BiIQPySoCTTvVqHxYcuqVkNdCXjYf9Bz1Y04Q==} - hasBin: true - peerDependencies: - sass: ^1.83.0 - typescript: '>=5.7.2' - vue: ^3.5.13 - vue-tsc: ^1.8.27 || ^2.0.21 - peerDependenciesMeta: - sass: - optional: true - typescript: - optional: true - vue: - optional: true - vue-tsc: - optional: true - mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} @@ -6213,9 +5802,6 @@ packages: peerDependencies: pg: '>=8.0' - pg-protocol@1.7.0: - resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} - pg-protocol@1.7.1: resolution: {integrity: sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==} @@ -6375,12 +5961,6 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-nested@7.0.2: - resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.2.14 - postcss-normalize-charset@7.0.0: resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} @@ -6725,13 +6305,6 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rollup-plugin-dts@6.1.1: - resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 - rollup-plugin-visualizer@5.14.0: resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} engines: {node: '>=18'} @@ -7331,15 +6904,6 @@ packages: ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - unbuild@3.3.1: - resolution: {integrity: sha512-/5OeeHmW1JlWEyQw3SPkB9BV16lzr6C5i8D+O17NLx6ETgvCZ3ZlyXfWkVVfG2YCsv8xAVQCqJNJtbEAGwHg7A==} - hasBin: true - peerDependencies: - typescript: ^5.7.3 - peerDependenciesMeta: - typescript: - optional: true - uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -7867,12 +7431,6 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue-tsc@2.2.2: - resolution: {integrity: sha512-1icPKkxAA5KTAaSwg0wVWdE48EdsH8fgvcbAiqojP4jXKl6LEM3soiW1aG/zrWrFt8Mw1ncG2vG1PvpZpVfehA==} - hasBin: true - peerDependencies: - typescript: '>=5.0.0' - vue@3.5.13: resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} peerDependencies: @@ -8618,8 +8176,6 @@ snapshots: dependencies: '@dicebear/core': 9.2.2 - '@drizzle-team/brocli@0.10.2': {} - '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 @@ -8640,223 +8196,78 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild-kit/core-utils@3.3.2': - dependencies: - esbuild: 0.18.20 - source-map-support: 0.5.21 - - '@esbuild-kit/esm-loader@2.6.5': - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.10.0 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.18.20': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.18.20': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.18.20': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.18.20': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.18.20': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.18.20': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.18.20': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.18.20': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.18.20': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.18.20': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.18.20': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.18.20': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.18.20': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.18.20': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.18.20': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true - '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.18.20': - optional: true - - '@esbuild/linux-x64@0.19.12': - optional: true - '@esbuild/linux-x64@0.24.2': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.18.20': - optional: true - - '@esbuild/netbsd-x64@0.19.12': - optional: true - '@esbuild/netbsd-x64@0.24.2': optional: true '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.18.20': - optional: true - - '@esbuild/openbsd-x64@0.19.12': - optional: true - '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.18.20': - optional: true - - '@esbuild/sunos-x64@0.19.12': - optional: true - '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.18.20': - optional: true - - '@esbuild/win32-arm64@0.19.12': - optional: true - '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.18.20': - optional: true - - '@esbuild/win32-ia32@0.19.12': - optional: true - '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.18.20': - optional: true - - '@esbuild/win32-x64@0.19.12': - optional: true - '@esbuild/win32-x64@0.24.2': optional: true @@ -10130,16 +9541,6 @@ snapshots: optionalDependencies: rollup: 4.34.5 - '@rollup/plugin-node-resolve@16.0.0(rollup@4.34.5)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.34.5 - '@rollup/plugin-replace@6.0.2(rollup@4.34.5)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.34.5) @@ -10554,8 +9955,9 @@ snapshots: '@types/pg@8.11.11': dependencies: '@types/node': 22.13.4 - pg-protocol: 1.7.0 + pg-protocol: 1.7.1 pg-types: 4.0.2 + optional: true '@types/pluralize@0.0.33': {} @@ -11165,20 +10567,6 @@ snapshots: optionalDependencies: typescript: 5.7.3 - '@vue/language-core@2.2.2(typescript@5.7.3)': - dependencies: - '@volar/language-core': 2.4.11 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 1.0.3 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.7.3 - optional: true - '@vue/reactivity@3.5.13': dependencies: '@vue/shared': 3.5.13 @@ -11242,19 +10630,6 @@ snapshots: '@vueuse/metadata@12.7.0': {} - '@vueuse/nuxt@12.7.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0))(typescript@5.7.3)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@vueuse/core': 12.7.0(typescript@5.7.3) - '@vueuse/metadata': 12.7.0 - local-pkg: 1.0.0 - nuxt: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) - vue: 3.5.13(typescript@5.7.3) - transitivePeerDependencies: - - magicast - - supports-color - - typescript - '@vueuse/nuxt@12.7.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@22.13.4)(aws4fetch@1.0.20)(db0@0.2.3(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)))(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3))(eslint@9.20.1(jiti@2.4.2))(ioredis@5.5.0)(lightningcss@1.29.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.5)(terser@5.38.1)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0))(typescript@5.7.3)': dependencies: '@nuxt/kit': 3.15.4(magicast@0.3.5) @@ -11346,9 +10721,6 @@ snapshots: alien-signals@0.4.14: {} - alien-signals@1.0.3: - optional: true - ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -12081,24 +11453,11 @@ snapshots: dotenv@16.4.7: {} - drizzle-cuid2@2.0.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3)): - dependencies: - '@paralleldrive/cuid2': 2.2.2 - drizzle-orm: 0.39.3(@types/pg@8.11.11)(pg@8.13.3) - - drizzle-kit@0.30.4: - dependencies: - '@drizzle-team/brocli': 0.10.2 - '@esbuild-kit/esm-loader': 2.6.5 - esbuild: 0.19.12 - esbuild-register: 3.6.0(esbuild@0.19.12) - transitivePeerDependencies: - - supports-color - drizzle-orm@0.39.3(@types/pg@8.11.11)(pg@8.13.3): optionalDependencies: '@types/pg': 8.11.11 pg: 8.13.3 + optional: true duplexer2@0.1.4: dependencies: @@ -12198,64 +11557,6 @@ snapshots: es-module-lexer@1.6.0: {} - esbuild-register@3.6.0(esbuild@0.19.12): - dependencies: - debug: 4.4.0(supports-color@9.4.0) - esbuild: 0.19.12 - transitivePeerDependencies: - - supports-color - - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - esbuild@0.24.2: optionalDependencies: '@esbuild/aix-ppc64': 0.24.2 @@ -13344,8 +12645,6 @@ snapshots: java-properties@1.0.2: {} - jiti@1.21.7: {} - jiti@2.4.2: {} jose@5.9.6: {} @@ -14049,26 +13348,6 @@ snapshots: mkdirp@3.0.1: {} - mkdist@2.2.0(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3)): - dependencies: - autoprefixer: 10.4.20(postcss@8.5.1) - citty: 0.1.6 - cssnano: 7.0.6(postcss@8.5.1) - defu: 6.1.4 - esbuild: 0.24.2 - jiti: 1.21.7 - mlly: 1.7.4 - pathe: 1.1.2 - pkg-types: 1.3.1 - postcss: 8.5.1 - postcss-nested: 7.0.2(postcss@8.5.1) - semver: 7.7.1 - tinyglobby: 0.2.10 - optionalDependencies: - typescript: 5.7.3 - vue: 3.5.13(typescript@5.7.3) - vue-tsc: 2.2.2(typescript@5.7.3) - mlly@1.7.4: dependencies: acorn: 8.14.0 @@ -14612,7 +13891,8 @@ snapshots: object-assign@4.1.1: {} - obuf@1.1.2: {} + obuf@1.1.2: + optional: true ofetch@1.4.1: dependencies: @@ -14853,19 +14133,22 @@ snapshots: pg-cloudflare@1.1.1: optional: true - pg-connection-string@2.7.0: {} + pg-connection-string@2.7.0: + optional: true - pg-int8@1.0.1: {} + pg-int8@1.0.1: + optional: true - pg-numeric@1.0.2: {} + pg-numeric@1.0.2: + optional: true pg-pool@3.7.1(pg@8.13.3): dependencies: pg: 8.13.3 + optional: true - pg-protocol@1.7.0: {} - - pg-protocol@1.7.1: {} + pg-protocol@1.7.1: + optional: true pg-types@2.2.0: dependencies: @@ -14874,6 +14157,7 @@ snapshots: postgres-bytea: 1.0.0 postgres-date: 1.0.7 postgres-interval: 1.2.0 + optional: true pg-types@4.0.2: dependencies: @@ -14884,6 +14168,7 @@ snapshots: postgres-date: 2.1.0 postgres-interval: 3.0.0 postgres-range: 1.1.4 + optional: true pg@8.13.3: dependencies: @@ -14894,10 +14179,12 @@ snapshots: pgpass: 1.0.5 optionalDependencies: pg-cloudflare: 1.1.1 + optional: true pgpass@1.0.5: dependencies: split2: 4.2.0 + optional: true picocolors@1.1.1: {} @@ -15019,11 +14306,6 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.1.2 - postcss-nested@7.0.2(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.1.0 - postcss-normalize-charset@7.0.0(postcss@8.5.1): dependencies: postcss: 8.5.1 @@ -15121,27 +14403,36 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres-array@2.0.0: {} + postgres-array@2.0.0: + optional: true - postgres-array@3.0.2: {} + postgres-array@3.0.2: + optional: true - postgres-bytea@1.0.0: {} + postgres-bytea@1.0.0: + optional: true postgres-bytea@3.0.0: dependencies: obuf: 1.1.2 + optional: true - postgres-date@1.0.7: {} + postgres-date@1.0.7: + optional: true - postgres-date@2.1.0: {} + postgres-date@2.1.0: + optional: true postgres-interval@1.2.0: dependencies: xtend: 4.0.2 + optional: true - postgres-interval@3.0.0: {} + postgres-interval@3.0.0: + optional: true - postgres-range@1.1.4: {} + postgres-range@1.1.4: + optional: true prelude-ls@1.2.1: {} @@ -15370,14 +14661,6 @@ snapshots: dependencies: glob: 10.4.5 - rollup-plugin-dts@6.1.1(rollup@4.34.5)(typescript@5.7.3): - dependencies: - magic-string: 0.30.17 - rollup: 4.34.5 - typescript: 5.7.3 - optionalDependencies: - '@babel/code-frame': 7.26.2 - rollup-plugin-visualizer@5.14.0(rollup@4.34.5): dependencies: open: 8.4.2 @@ -16033,39 +15316,6 @@ snapshots: ultrahtml@1.5.3: {} - unbuild@3.3.1(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3)): - dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.34.5) - '@rollup/plugin-commonjs': 28.0.2(rollup@4.34.5) - '@rollup/plugin-json': 6.1.0(rollup@4.34.5) - '@rollup/plugin-node-resolve': 16.0.0(rollup@4.34.5) - '@rollup/plugin-replace': 6.0.2(rollup@4.34.5) - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) - citty: 0.1.6 - consola: 3.4.0 - defu: 6.1.4 - esbuild: 0.24.2 - hookable: 5.5.3 - jiti: 2.4.2 - magic-string: 0.30.17 - mkdist: 2.2.0(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3)) - mlly: 1.7.4 - pathe: 2.0.2 - pkg-types: 1.3.1 - pretty-bytes: 6.1.1 - rollup: 4.34.5 - rollup-plugin-dts: 6.1.1(rollup@4.34.5)(typescript@5.7.3) - scule: 1.3.0 - tinyglobby: 0.2.10 - untyped: 1.5.2 - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - sass - - supports-color - - vue - - vue-tsc - uncrypto@0.1.3: {} unctx@2.4.1: @@ -16705,13 +15955,6 @@ snapshots: '@vue/language-core': 2.2.0(typescript@5.7.3) typescript: 5.7.3 - vue-tsc@2.2.2(typescript@5.7.3): - dependencies: - '@volar/typescript': 2.4.11 - '@vue/language-core': 2.2.2(typescript@5.7.3) - typescript: 5.7.3 - optional: true - vue@3.5.13(typescript@5.7.3): dependencies: '@vue/compiler-dom': 3.5.13