diff --git a/.prettierrc b/.prettierrc index f2a56ee..b6cceea 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,7 +2,8 @@ "useTabs": true, "tabWidth": 2, "singleQuote": true, - "trailingComma": "none", + "trailingComma": "all", + "bracketSpacing": true, "printWidth": 100, "plugins": ["prettier-plugin-svelte"], "pluginSearchDirs": ["."], diff --git a/drizzle.config.ts b/drizzle.config.ts index dd39ff9..00c4ad5 100644 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -11,10 +11,10 @@ export default defineConfig({ user: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE || 'boredgame', - ssl: true + ssl: process.env.DATABASE_HOST !== 'localhost' }, // Print all statements verbose: true, // Always as for confirmation strict: true -}); \ No newline at end of file +}); diff --git a/drizzle/0000_oval_wolverine.sql b/drizzle/0000_oval_wolverine.sql deleted file mode 100644 index 1b053cc..0000000 --- a/drizzle/0000_oval_wolverine.sql +++ /dev/null @@ -1,233 +0,0 @@ -CREATE TABLE IF NOT EXISTS "artists" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "external_id" integer, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "artists_to_games" ( - "artist_id" varchar(255), - "game_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "categories" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "external_id" integer, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "categories_to_games" ( - "category_id" varchar(255), - "game_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "collection_items" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "collection_id" varchar(255) NOT NULL, - "game_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "collections" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "user_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "designers" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "external_id" integer, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "designers_to_games" ( - "designer_id" varchar(255), - "game_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "expansions" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "base_game_id" varchar(255) NOT NULL, - "game_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "games" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "description" text, - "year_published" integer, - "min_players" integer, - "max_players" integer, - "playtime" integer, - "min_playtime" integer, - "max_playtime" integer, - "min_age" integer, - "image_url" varchar(255), - "thumb_url" varchar(255), - "url" varchar(255), - "external_id" integer, - "last_sync_at" timestamp with time zone, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)), - CONSTRAINT "games_external_id_unique" UNIQUE("external_id") -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "mechanics" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "external_id" integer, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "mechanics_to_games" ( - "mechanic_id" varchar(255), - "game_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "publishers" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - "slug" varchar(255), - "external_id" integer, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "publishers_to_games" ( - "publisher_id" varchar(255), - "game_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "roles" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "name" varchar(255), - CONSTRAINT "roles_name_unique" UNIQUE("name") -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "sessions" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "user_id" varchar(255) NOT NULL, - "expires_at" timestamp with time zone NOT NULL, - "ip_country" varchar(255), - "ip_address" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "user_roles" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "user_id" varchar(255) NOT NULL, - "role_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "users" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "username" varchar(255), - "hashed_password" varchar(255), - "email" varchar(255), - "first_name" varchar(255), - "last_name" varchar(255), - "verified" boolean DEFAULT false, - "receive_email" boolean DEFAULT false, - "theme" varchar(255) DEFAULT 'system', - "created_at" timestamp DEFAULT (now(6)), - "updated_at" timestamp DEFAULT (now(6)), - CONSTRAINT "users_username_unique" UNIQUE("username"), - CONSTRAINT "users_email_unique" UNIQUE("email") -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "wishlist_items" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "wishlist_id" varchar(255) NOT NULL, - "game_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "wishlists" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "user_id" varchar(255) NOT NULL, - "created_at" timestamp with time zone DEFAULT (now(6)), - "updated_at" timestamp with time zone DEFAULT (now(6)) -); ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "collection_items" ADD CONSTRAINT "collection_items_collection_id_collections_id_fk" FOREIGN KEY ("collection_id") REFERENCES "collections"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "collection_items" ADD CONSTRAINT "collection_items_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "collections" ADD CONSTRAINT "collections_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions" ADD CONSTRAINT "expansions_base_game_id_games_id_fk" FOREIGN KEY ("base_game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions" ADD CONSTRAINT "expansions_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_role_id_roles_id_fk" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "wishlist_items" ADD CONSTRAINT "wishlist_items_wishlist_id_wishlists_id_fk" FOREIGN KEY ("wishlist_id") REFERENCES "wishlists"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "wishlist_items" ADD CONSTRAINT "wishlist_items_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "wishlists" ADD CONSTRAINT "wishlists_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/0000_tricky_hitman.sql b/drizzle/0000_tricky_hitman.sql new file mode 100644 index 0000000..5507d36 --- /dev/null +++ b/drizzle/0000_tricky_hitman.sql @@ -0,0 +1,365 @@ +DO $$ BEGIN + CREATE TYPE "external_id_type" AS ENUM('game', 'category', 'mechanic', 'publisher', 'designer', 'artist'); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "categories" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "name" text, + "slug" text, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "categories_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "categories_to_external_ids" ( + "category_id" uuid NOT NULL, + "external_id" uuid NOT NULL, + CONSTRAINT "categories_to_external_ids_category_id_external_id_pk" PRIMARY KEY("category_id","external_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "categories_to_games" ( + "category_id" uuid NOT NULL, + "game_id" uuid NOT NULL, + CONSTRAINT "categories_to_games_category_id_game_id_pk" PRIMARY KEY("category_id","game_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "collection_items" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "collection_id" text NOT NULL, + "game_id" text NOT NULL, + "times_played" integer DEFAULT 0, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "collection_items_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "collections" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "user_id" text NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "collections_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "expansions" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "base_game_id" text NOT NULL, + "game_id" text NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "expansions_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "external_ids" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "type" "external_id_type" NOT NULL, + "external_id" text NOT NULL, + CONSTRAINT "external_ids_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "games" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "name" text, + "slug" text, + "description" text, + "year_published" integer, + "min_players" integer, + "max_players" integer, + "playtime" integer, + "min_playtime" integer, + "max_playtime" integer, + "min_age" integer, + "image_url" text, + "thumb_url" text, + "url" text, + "text_searchable_index" "tsvector", + "last_sync_at" timestamp (6) with time zone, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "games_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "games_to_external_ids" ( + "game_id" uuid NOT NULL, + "external_id" uuid NOT NULL, + CONSTRAINT "games_to_external_ids_game_id_external_id_pk" PRIMARY KEY("game_id","external_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "mechanics" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "name" text, + "slug" text, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "mechanics_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "mechanics_to_external_ids" ( + "mechanic_id" uuid NOT NULL, + "external_id" uuid NOT NULL, + CONSTRAINT "mechanics_to_external_ids_mechanic_id_external_id_pk" PRIMARY KEY("mechanic_id","external_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "mechanics_to_games" ( + "mechanic_id" uuid NOT NULL, + "game_id" uuid NOT NULL, + CONSTRAINT "mechanics_to_games_mechanic_id_game_id_pk" PRIMARY KEY("mechanic_id","game_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "password_reset_tokens" ( + "id" text PRIMARY KEY NOT NULL, + "user_id" text NOT NULL, + "expires_at" timestamp (6) with time zone, + "created_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "publishers" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "name" text, + "slug" text, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "publishers_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "publishers_to_external_ids" ( + "publisher_id" uuid NOT NULL, + "external_id" uuid NOT NULL, + CONSTRAINT "publishers_to_external_ids_publisher_id_external_id_pk" PRIMARY KEY("publisher_id","external_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "publishers_to_games" ( + "publisher_id" uuid NOT NULL, + "game_id" uuid NOT NULL, + CONSTRAINT "publishers_to_games_publisher_id_game_id_pk" PRIMARY KEY("publisher_id","game_id") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "roles" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "name" text, + CONSTRAINT "roles_cuid_unique" UNIQUE("cuid"), + CONSTRAINT "roles_name_unique" UNIQUE("name") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "sessions" ( + "id" text PRIMARY KEY NOT NULL, + "user_id" text NOT NULL, + "expires_at" timestamp with time zone NOT NULL, + "ip_country" text, + "ip_address" text +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "user_roles" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "user_id" text NOT NULL, + "role_id" text NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "user_roles_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "users" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "username" text, + "hashed_password" text, + "email" text, + "first_name" text, + "last_name" text, + "verified" boolean DEFAULT false, + "receive_email" boolean DEFAULT false, + "theme" text DEFAULT 'system', + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "users_cuid_unique" UNIQUE("cuid"), + CONSTRAINT "users_username_unique" UNIQUE("username"), + CONSTRAINT "users_email_unique" UNIQUE("email") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "wishlist_items" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "wishlist_id" text NOT NULL, + "game_id" text NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "wishlist_items_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "wishlists" ( + "id" uuid PRIMARY KEY NOT NULL, + "cuid" text, + "user_id" text NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL, + CONSTRAINT "wishlists_cuid_unique" UNIQUE("cuid") +); +--> statement-breakpoint +CREATE INDEX IF NOT EXISTS "text_searchable_idx" ON "games" ("text_searchable_index");--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "categories_to_games" ADD CONSTRAINT "categories_to_games_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "categories_to_games" ADD CONSTRAINT "categories_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "collection_items" ADD CONSTRAINT "collection_items_collection_id_collections_id_fk" FOREIGN KEY ("collection_id") REFERENCES "collections"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "collection_items" ADD CONSTRAINT "collection_items_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "collections" ADD CONSTRAINT "collections_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "expansions" ADD CONSTRAINT "expansions_base_game_id_games_id_fk" FOREIGN KEY ("base_game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "expansions" ADD CONSTRAINT "expansions_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_mechanic_id_mechanics_id_fk" FOREIGN KEY ("mechanic_id") REFERENCES "mechanics"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "mechanics_to_games" ADD CONSTRAINT "mechanics_to_games_mechanic_id_mechanics_id_fk" FOREIGN KEY ("mechanic_id") REFERENCES "mechanics"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "mechanics_to_games" ADD CONSTRAINT "mechanics_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "password_reset_tokens" ADD CONSTRAINT "password_reset_tokens_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_publisher_id_publishers_id_fk" FOREIGN KEY ("publisher_id") REFERENCES "publishers"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "publishers_to_games" ADD CONSTRAINT "publishers_to_games_publisher_id_publishers_id_fk" FOREIGN KEY ("publisher_id") REFERENCES "publishers"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "publishers_to_games" ADD CONSTRAINT "publishers_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_role_id_roles_id_fk" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "wishlist_items" ADD CONSTRAINT "wishlist_items_wishlist_id_wishlists_id_fk" FOREIGN KEY ("wishlist_id") REFERENCES "wishlists"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "wishlist_items" ADD CONSTRAINT "wishlist_items_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "wishlists" ADD CONSTRAINT "wishlists_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; diff --git a/drizzle/0001_giant_tomorrow_man.sql b/drizzle/0001_giant_tomorrow_man.sql deleted file mode 100644 index f893c21..0000000 --- a/drizzle/0001_giant_tomorrow_man.sql +++ /dev/null @@ -1,51 +0,0 @@ -ALTER TABLE "artists" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "artists" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "artists" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "artists" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "last_sync_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "updated_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "created_at" SET DEFAULT (now());--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "updated_at" SET DEFAULT (now()); \ No newline at end of file diff --git a/drizzle/0001_numerous_dragon_man.sql b/drizzle/0001_numerous_dragon_man.sql new file mode 100644 index 0000000..32e4b50 --- /dev/null +++ b/drizzle/0001_numerous_dragon_man.sql @@ -0,0 +1,6 @@ +ALTER TABLE "collection_items" ALTER COLUMN "collection_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "collection_items" ALTER COLUMN "game_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "expansions" ALTER COLUMN "base_game_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "expansions" ALTER COLUMN "game_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "wishlist_items" ALTER COLUMN "wishlist_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "wishlist_items" ALTER COLUMN "game_id" SET DATA TYPE uuid; \ No newline at end of file diff --git a/drizzle/0002_sour_silverclaw.sql b/drizzle/0002_sour_silverclaw.sql deleted file mode 100644 index cd443f3..0000000 --- a/drizzle/0002_sour_silverclaw.sql +++ /dev/null @@ -1,27 +0,0 @@ -ALTER TABLE "artists" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "artists" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "categories" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "collection_items" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "collections" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "designers" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "expansions" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "games" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "mechanics" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "publishers" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "user_roles" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "wishlist_items" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "wishlists" ALTER COLUMN "updated_at" SET DEFAULT now();--> statement-breakpoint -ALTER TABLE "games" ADD COLUMN "text_searchable_index" "tsvector"; \ No newline at end of file diff --git a/drizzle/0002_thick_lyja.sql b/drizzle/0002_thick_lyja.sql new file mode 100644 index 0000000..43b529b --- /dev/null +++ b/drizzle/0002_thick_lyja.sql @@ -0,0 +1,5 @@ +ALTER TABLE "collections" ALTER COLUMN "user_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "password_reset_tokens" ALTER COLUMN "user_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "sessions" ALTER COLUMN "user_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "user_roles" ALTER COLUMN "user_id" SET DATA TYPE uuid;--> statement-breakpoint +ALTER TABLE "wishlists" ALTER COLUMN "user_id" SET DATA TYPE uuid; \ No newline at end of file diff --git a/drizzle/0003_mushy_madame_masque.sql b/drizzle/0003_mushy_madame_masque.sql new file mode 100644 index 0000000..aa115b1 --- /dev/null +++ b/drizzle/0003_mushy_madame_masque.sql @@ -0,0 +1 @@ +ALTER TABLE "user_roles" ALTER COLUMN "role_id" SET DATA TYPE uuid; \ No newline at end of file diff --git a/drizzle/0003_thick_tinkerer.sql b/drizzle/0003_thick_tinkerer.sql deleted file mode 100644 index 9aa98ab..0000000 --- a/drizzle/0003_thick_tinkerer.sql +++ /dev/null @@ -1 +0,0 @@ -CREATE INDEX IF NOT EXISTS "text_searchable_idx" ON "games" ("text_searchable_index"); \ No newline at end of file diff --git a/drizzle/0004_fancy_umar.sql b/drizzle/0004_fancy_umar.sql deleted file mode 100644 index 0881bb3..0000000 --- a/drizzle/0004_fancy_umar.sql +++ /dev/null @@ -1,30 +0,0 @@ -DO $$ BEGIN - CREATE TYPE "external_id_type" AS ENUM('game', 'category', 'mechanic', 'publisher', 'designer', 'artist'); -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "external_ids" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "type" varchar(255), - "external_id" varchar(255) -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "game_external_ids" ( - "game_id" varchar(255) NOT NULL, - "external_id" varchar(255) NOT NULL -); ---> statement-breakpoint -ALTER TABLE "games" DROP CONSTRAINT "games_external_id_unique";--> statement-breakpoint -ALTER TABLE "games" DROP COLUMN IF EXISTS "external_id";--> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "game_external_ids" ADD CONSTRAINT "game_external_ids_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "game_external_ids" ADD CONSTRAINT "game_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/0004_glossy_enchantress.sql b/drizzle/0004_glossy_enchantress.sql new file mode 100644 index 0000000..0210e3d --- /dev/null +++ b/drizzle/0004_glossy_enchantress.sql @@ -0,0 +1,13 @@ +ALTER TABLE "categories" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "collection_items" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "collections" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "expansions" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "external_ids" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "games" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "mechanics" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "publishers" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "roles" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "user_roles" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "users" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "wishlist_items" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint +ALTER TABLE "wishlists" ALTER COLUMN "id" SET DEFAULT gen_random_uuid(); \ No newline at end of file diff --git a/drizzle/0005_light_captain_marvel.sql b/drizzle/0005_light_captain_marvel.sql new file mode 100644 index 0000000..c1f1c04 --- /dev/null +++ b/drizzle/0005_light_captain_marvel.sql @@ -0,0 +1,2 @@ +ALTER TABLE "roles" ALTER COLUMN "cuid" SET NOT NULL;--> statement-breakpoint +ALTER TABLE "roles" ALTER COLUMN "name" SET NOT NULL; \ No newline at end of file diff --git a/drizzle/0005_uneven_lifeguard.sql b/drizzle/0005_uneven_lifeguard.sql deleted file mode 100644 index 10c6129..0000000 --- a/drizzle/0005_uneven_lifeguard.sql +++ /dev/null @@ -1,16 +0,0 @@ -ALTER TABLE "game_external_ids" RENAME TO "games_to_external_ids";--> statement-breakpoint -ALTER TABLE "games_to_external_ids" DROP CONSTRAINT "game_external_ids_game_id_games_id_fk"; ---> statement-breakpoint -ALTER TABLE "games_to_external_ids" DROP CONSTRAINT "game_external_ids_external_id_external_ids_id_fk"; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/0006_light_corsair.sql b/drizzle/0006_light_corsair.sql deleted file mode 100644 index ee9f17e..0000000 --- a/drizzle/0006_light_corsair.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE "external_ids" ALTER COLUMN "type" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "external_ids" ALTER COLUMN "external_id" SET NOT NULL; \ No newline at end of file diff --git a/drizzle/0006_wild_stone_men.sql b/drizzle/0006_wild_stone_men.sql new file mode 100644 index 0000000..0a66941 --- /dev/null +++ b/drizzle/0006_wild_stone_men.sql @@ -0,0 +1 @@ +ALTER TABLE "user_roles" ADD COLUMN "default" boolean DEFAULT false; \ No newline at end of file diff --git a/drizzle/0007_large_miss_america.sql b/drizzle/0007_large_miss_america.sql new file mode 100644 index 0000000..58df6d0 --- /dev/null +++ b/drizzle/0007_large_miss_america.sql @@ -0,0 +1 @@ +ALTER TABLE "user_roles" RENAME COLUMN "default" TO "primary"; \ No newline at end of file diff --git a/drizzle/0007_same_valeria_richards.sql b/drizzle/0007_same_valeria_richards.sql deleted file mode 100644 index 2805de8..0000000 --- a/drizzle/0007_same_valeria_richards.sql +++ /dev/null @@ -1,71 +0,0 @@ -CREATE TABLE IF NOT EXISTS "categories_to_external_ids" ( - "category_id" varchar(255) NOT NULL, - "external_id" varchar(255) NOT NULL -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "expansions_to_external_ids" ( - "expansion_id" varchar(255) NOT NULL, - "external_id" varchar(255) NOT NULL -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "mechanics_to_external_ids" ( - "mechanic_id" varchar(255) NOT NULL, - "external_id" varchar(255) NOT NULL -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "publishers_to_external_ids" ( - "publisher_id" varchar(255) NOT NULL, - "external_id" varchar(255) NOT NULL -); ---> statement-breakpoint -DROP TABLE "artists";--> statement-breakpoint -DROP TABLE "artists_to_games";--> statement-breakpoint -DROP TABLE "designers";--> statement-breakpoint -DROP TABLE "designers_to_games";--> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions_to_external_ids" ADD CONSTRAINT "expansions_to_external_ids_expansion_id_expansions_id_fk" FOREIGN KEY ("expansion_id") REFERENCES "expansions"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions_to_external_ids" ADD CONSTRAINT "expansions_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_mechanic_id_mechanics_id_fk" FOREIGN KEY ("mechanic_id") REFERENCES "mechanics"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_publisher_id_publishers_id_fk" FOREIGN KEY ("publisher_id") REFERENCES "publishers"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_external_id_external_ids_id_fk" FOREIGN KEY ("external_id") REFERENCES "external_ids"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/0008_amusing_franklin_richards.sql b/drizzle/0008_amusing_franklin_richards.sql new file mode 100644 index 0000000..3239973 --- /dev/null +++ b/drizzle/0008_amusing_franklin_richards.sql @@ -0,0 +1 @@ +ALTER TABLE "users" ADD COLUMN "two_factor_secret" text; \ No newline at end of file diff --git a/drizzle/0008_complete_manta.sql b/drizzle/0008_complete_manta.sql deleted file mode 100644 index d7ef37c..0000000 --- a/drizzle/0008_complete_manta.sql +++ /dev/null @@ -1,7 +0,0 @@ -DO $$ BEGIN - CREATE TYPE "type" AS ENUM('game', 'category', 'mechanic', 'publisher', 'designer', 'artist'); -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -ALTER TABLE "external_ids" ALTER COLUMN "type" SET DATA TYPE type; \ No newline at end of file diff --git a/drizzle/0009_equal_christian_walker.sql b/drizzle/0009_equal_christian_walker.sql deleted file mode 100644 index ef25bd1..0000000 --- a/drizzle/0009_equal_christian_walker.sql +++ /dev/null @@ -1,7 +0,0 @@ -DO $$ BEGIN - CREATE TYPE "external_id_type" AS ENUM('game', 'category', 'mechanic', 'publisher', 'designer', 'artist'); -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -ALTER TABLE "external_ids" ALTER COLUMN "type" SET DATA TYPE external_id_type; \ No newline at end of file diff --git a/drizzle/0009_gray_carlie_cooper.sql b/drizzle/0009_gray_carlie_cooper.sql new file mode 100644 index 0000000..868957f --- /dev/null +++ b/drizzle/0009_gray_carlie_cooper.sql @@ -0,0 +1,2 @@ +ALTER TABLE "users" ALTER COLUMN "two_factor_secret" SET DEFAULT '';--> statement-breakpoint +ALTER TABLE "users" ADD COLUMN "two_factor_enabled" boolean DEFAULT false; \ No newline at end of file diff --git a/drizzle/0010_flat_mister_sinister.sql b/drizzle/0010_flat_mister_sinister.sql deleted file mode 100644 index c4599de..0000000 --- a/drizzle/0010_flat_mister_sinister.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "collection_items" ADD COLUMN "times_played" integer DEFAULT 0; \ No newline at end of file diff --git a/drizzle/0010_wakeful_metal_master.sql b/drizzle/0010_wakeful_metal_master.sql new file mode 100644 index 0000000..5fc2bab --- /dev/null +++ b/drizzle/0010_wakeful_metal_master.sql @@ -0,0 +1,14 @@ +CREATE TABLE IF NOT EXISTS "recovery_codes" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "user_id" uuid NOT NULL, + "code" text NOT NULL, + "used" boolean DEFAULT false, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "recovery_codes" ADD CONSTRAINT "recovery_codes_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; diff --git a/drizzle/0011_gigantic_mister_sinister.sql b/drizzle/0011_gigantic_mister_sinister.sql deleted file mode 100644 index 36c84c5..0000000 --- a/drizzle/0011_gigantic_mister_sinister.sql +++ /dev/null @@ -1,97 +0,0 @@ -ALTER TABLE "categories_to_external_ids" DROP CONSTRAINT "categories_to_external_ids_category_id_categories_id_fk"; ---> statement-breakpoint -ALTER TABLE "expansions" DROP CONSTRAINT "expansions_base_game_id_games_id_fk"; ---> statement-breakpoint -ALTER TABLE "expansions_to_external_ids" DROP CONSTRAINT "expansions_to_external_ids_expansion_id_expansions_id_fk"; ---> statement-breakpoint -ALTER TABLE "games_to_external_ids" DROP CONSTRAINT "games_to_external_ids_game_id_games_id_fk"; ---> statement-breakpoint -ALTER TABLE "mechanics_to_external_ids" DROP CONSTRAINT "mechanics_to_external_ids_mechanic_id_mechanics_id_fk"; ---> statement-breakpoint -ALTER TABLE "publishers_to_external_ids" DROP CONSTRAINT "publishers_to_external_ids_publisher_id_publishers_id_fk"; ---> statement-breakpoint -ALTER TABLE "categories_to_games" ALTER COLUMN "category_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "categories_to_games" ALTER COLUMN "game_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "mechanics_to_games" ALTER COLUMN "mechanic_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "mechanics_to_games" ALTER COLUMN "game_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "publishers_to_games" ALTER COLUMN "publisher_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "publishers_to_games" ALTER COLUMN "game_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_category_id_external_id_pk" PRIMARY KEY("category_id","external_id");--> statement-breakpoint -ALTER TABLE "categories_to_games" ADD CONSTRAINT "categories_to_games_category_id_game_id_pk" PRIMARY KEY("category_id","game_id");--> statement-breakpoint -ALTER TABLE "expansions_to_external_ids" ADD CONSTRAINT "expansions_to_external_ids_expansion_id_external_id_pk" PRIMARY KEY("expansion_id","external_id");--> statement-breakpoint -ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_game_id_external_id_pk" PRIMARY KEY("game_id","external_id");--> statement-breakpoint -ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_mechanic_id_external_id_pk" PRIMARY KEY("mechanic_id","external_id");--> statement-breakpoint -ALTER TABLE "mechanics_to_games" ADD CONSTRAINT "mechanics_to_games_mechanic_id_game_id_pk" PRIMARY KEY("mechanic_id","game_id");--> statement-breakpoint -ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_publisher_id_external_id_pk" PRIMARY KEY("publisher_id","external_id");--> statement-breakpoint -ALTER TABLE "publishers_to_games" ADD CONSTRAINT "publishers_to_games_publisher_id_game_id_pk" PRIMARY KEY("publisher_id","game_id");--> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "categories_to_external_ids" ADD CONSTRAINT "categories_to_external_ids_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "categories_to_games" ADD CONSTRAINT "categories_to_games_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "categories_to_games" ADD CONSTRAINT "categories_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions" ADD CONSTRAINT "expansions_base_game_id_games_id_fk" FOREIGN KEY ("base_game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "expansions_to_external_ids" ADD CONSTRAINT "expansions_to_external_ids_expansion_id_expansions_id_fk" FOREIGN KEY ("expansion_id") REFERENCES "expansions"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "games_to_external_ids" ADD CONSTRAINT "games_to_external_ids_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "mechanics_to_external_ids" ADD CONSTRAINT "mechanics_to_external_ids_mechanic_id_mechanics_id_fk" FOREIGN KEY ("mechanic_id") REFERENCES "mechanics"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "mechanics_to_games" ADD CONSTRAINT "mechanics_to_games_mechanic_id_mechanics_id_fk" FOREIGN KEY ("mechanic_id") REFERENCES "mechanics"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "mechanics_to_games" ADD CONSTRAINT "mechanics_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "publishers_to_external_ids" ADD CONSTRAINT "publishers_to_external_ids_publisher_id_publishers_id_fk" FOREIGN KEY ("publisher_id") REFERENCES "publishers"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "publishers_to_games" ADD CONSTRAINT "publishers_to_games_publisher_id_publishers_id_fk" FOREIGN KEY ("publisher_id") REFERENCES "publishers"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "publishers_to_games" ADD CONSTRAINT "publishers_to_games_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "games"("id") ON DELETE restrict ON UPDATE cascade; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/0012_dizzy_lethal_legion.sql b/drizzle/0012_dizzy_lethal_legion.sql deleted file mode 100644 index 4764795..0000000 --- a/drizzle/0012_dizzy_lethal_legion.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE "users" ALTER COLUMN "created_at" SET DATA TYPE timestamp (6) with time zone;--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "updated_at" SET DATA TYPE timestamp (6) with time zone; \ No newline at end of file diff --git a/drizzle/0013_clever_monster_badoon.sql b/drizzle/0013_clever_monster_badoon.sql deleted file mode 100644 index 334a5e4..0000000 --- a/drizzle/0013_clever_monster_badoon.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE "categories" DROP COLUMN IF EXISTS "external_id";--> statement-breakpoint -ALTER TABLE "mechanics" DROP COLUMN IF EXISTS "external_id";--> statement-breakpoint -ALTER TABLE "publishers" DROP COLUMN IF EXISTS "external_id"; \ No newline at end of file diff --git a/drizzle/0014_organic_morlocks.sql b/drizzle/0014_organic_morlocks.sql deleted file mode 100644 index c0b6604..0000000 --- a/drizzle/0014_organic_morlocks.sql +++ /dev/null @@ -1 +0,0 @@ -DROP TABLE "expansions_to_external_ids"; \ No newline at end of file diff --git a/drizzle/0015_awesome_gabe_jones.sql b/drizzle/0015_awesome_gabe_jones.sql deleted file mode 100644 index e70a04f..0000000 --- a/drizzle/0015_awesome_gabe_jones.sql +++ /dev/null @@ -1,12 +0,0 @@ -CREATE TABLE IF NOT EXISTS "password_reset_tokens" ( - "id" varchar(255) PRIMARY KEY NOT NULL, - "user_id" varchar(255) NOT NULL, - "expires_at" timestamp (6) with time zone, - "created_at" timestamp (6) with time zone DEFAULT now() -); ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "password_reset_tokens" ADD CONSTRAINT "password_reset_tokens_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json index 0a3baf1..f021098 100644 --- a/drizzle/meta/0000_snapshot.json +++ b/drizzle/meta/0000_snapshot.json @@ -1,125 +1,120 @@ { - "id": "620f89bd-01b9-4591-94e6-23a7bc63cdc3", + "id": "176e5b1f-d146-4604-ab17-b16052da13c0", "prevId": "00000000-0000-0000-0000-000000000000", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now(6))" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now(6))" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +123,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,35 +180,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, - "default": "(now(6))" + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -211,7 +254,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,29 +270,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -261,77 +318,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now(6))" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,35 +334,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -382,8 +383,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +396,62 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "external_ids": { + "name": "external_ids", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "external_id_type", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -408,19 +459,25 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -474,108 +531,238 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, - "external_id": { - "name": "external_id", - "type": "integer", + "text_searchable_index": { + "name": "text_searchable_index", + "type": "tsvector", "primaryKey": false, "notNull": false }, "last_sync_at": { "name": "last_sync_at", - "type": "timestamp with time zone", + "type": "timestamp (6) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "text_searchable_idx": { + "name": "text_searchable_idx", + "columns": [ + "text_searchable_index" + ], + "isUnique": false } }, - "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { - "games_external_id_unique": { - "name": "games_external_id_unique", + "games_cuid_unique": { + "name": "games_cuid_unique", "nullsNotDistinct": false, "columns": [ - "external_id" + "cuid" ] } } }, + "games_to_external_ids": { + "name": "games_to_external_ids", + "schema": "", + "columns": { + "game_id": { + "name": "game_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "games_to_external_ids_game_id_games_id_fk": { + "name": "games_to_external_ids_game_id_games_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "games_to_external_ids_external_id_external_ids_id_fk": { + "name": "games_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] + } + }, + "uniqueConstraints": {} + }, "mechanics": { "name": "mechanics", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -584,19 +771,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -606,46 +877,111 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -654,20 +990,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -676,13 +1047,19 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -691,6 +1068,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -706,13 +1090,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, @@ -724,13 +1108,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -760,35 +1144,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -821,7 +1211,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -829,37 +1227,43 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -879,7 +1283,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -888,21 +1292,28 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -925,35 +1336,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -986,7 +1403,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -994,29 +1419,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now(6))" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -1036,10 +1467,30 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + } + }, + "enums": { + "external_id_type": { + "name": "external_id_type", + "values": { + "game": "game", + "category": "category", + "mechanic": "mechanic", + "publisher": "publisher", + "designer": "designer", + "artist": "artist" + } } }, - "enums": {}, "schemas": {}, "_meta": { "columns": {}, diff --git a/drizzle/meta/0001_snapshot.json b/drizzle/meta/0001_snapshot.json index 7f90628..129d9a9 100644 --- a/drizzle/meta/0001_snapshot.json +++ b/drizzle/meta/0001_snapshot.json @@ -1,125 +1,120 @@ { - "id": "99b2283f-80a5-44c6-be3b-b1fcd2a5818d", - "prevId": "620f89bd-01b9-4591-94e6-23a7bc63cdc3", + "id": "7fd9b34f-059f-41a9-9a4c-f9769825233d", + "prevId": "176e5b1f-d146-4604-ab17-b16052da13c0", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now())" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now())" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +123,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,35 +180,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, - "default": "(now())" + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -211,7 +254,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,29 +270,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -261,77 +318,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now())" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "(now())" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,35 +334,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -382,8 +383,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +396,62 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "external_ids": { + "name": "external_ids", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "external_id_type", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -408,19 +459,25 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -474,25 +531,25 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, - "external_id": { - "name": "external_id", - "type": "integer", + "text_searchable_index": { + "name": "text_searchable_index", + "type": "tsvector", "primaryKey": false, "notNull": false }, @@ -504,78 +561,208 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "text_searchable_idx": { + "name": "text_searchable_idx", + "columns": [ + "text_searchable_index" + ], + "isUnique": false } }, - "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { - "games_external_id_unique": { - "name": "games_external_id_unique", + "games_cuid_unique": { + "name": "games_cuid_unique", "nullsNotDistinct": false, "columns": [ - "external_id" + "cuid" ] } } }, + "games_to_external_ids": { + "name": "games_to_external_ids", + "schema": "", + "columns": { + "game_id": { + "name": "game_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "games_to_external_ids_game_id_games_id_fk": { + "name": "games_to_external_ids_game_id_games_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "games_to_external_ids_external_id_external_ids_id_fk": { + "name": "games_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] + } + }, + "uniqueConstraints": {} + }, "mechanics": { "name": "mechanics", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -584,19 +771,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -606,46 +877,111 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -654,20 +990,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -676,13 +1047,19 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -691,6 +1068,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -706,13 +1090,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, @@ -724,13 +1108,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -760,35 +1144,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -821,7 +1211,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -829,37 +1227,43 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -879,7 +1283,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -888,21 +1292,28 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -925,35 +1336,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -986,7 +1403,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -994,29 +1419,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, - "default": "(now())" + "notNull": true, + "default": "now()" } }, "indexes": {}, @@ -1036,10 +1467,30 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + } + }, + "enums": { + "external_id_type": { + "name": "external_id_type", + "values": { + "game": "game", + "category": "category", + "mechanic": "mechanic", + "publisher": "publisher", + "designer": "designer", + "artist": "artist" + } } }, - "enums": {}, "schemas": {}, "_meta": { "columns": {}, diff --git a/drizzle/meta/0002_snapshot.json b/drizzle/meta/0002_snapshot.json index 696c724..aa00b2e 100644 --- a/drizzle/meta/0002_snapshot.json +++ b/drizzle/meta/0002_snapshot.json @@ -1,125 +1,120 @@ { - "id": "efbcf295-4499-4d80-9026-a0d8627b0e35", - "prevId": "99b2283f-80a5-44c6-be3b-b1fcd2a5818d", + "id": "e088433f-589d-4c15-953e-3b32e85e658f", + "prevId": "7fd9b34f-059f-41a9-9a4c-f9769825233d", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +123,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,34 +180,47 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -211,7 +254,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,28 +270,34 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -261,77 +318,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,34 +334,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -382,8 +383,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +396,62 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "external_ids": { + "name": "external_ids", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "external_id_type", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -408,19 +459,25 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -474,19 +531,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -496,12 +553,6 @@ "primaryKey": false, "notNull": false }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, "last_sync_at": { "name": "last_sync_at", "type": "timestamp (6) with time zone", @@ -510,78 +561,208 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, - "indexes": {}, + "indexes": { + "text_searchable_idx": { + "name": "text_searchable_idx", + "columns": [ + "text_searchable_index" + ], + "isUnique": false + } + }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { - "games_external_id_unique": { - "name": "games_external_id_unique", + "games_cuid_unique": { + "name": "games_cuid_unique", "nullsNotDistinct": false, "columns": [ - "external_id" + "cuid" ] } } }, + "games_to_external_ids": { + "name": "games_to_external_ids", + "schema": "", + "columns": { + "game_id": { + "name": "game_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "games_to_external_ids_game_id_games_id_fk": { + "name": "games_to_external_ids_game_id_games_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "games_to_external_ids_external_id_external_ids_id_fk": { + "name": "games_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] + } + }, + "uniqueConstraints": {} + }, "mechanics": { "name": "mechanics", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -590,19 +771,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -612,46 +877,111 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -660,20 +990,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -682,13 +1047,19 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -697,6 +1068,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -712,13 +1090,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -730,13 +1108,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -766,34 +1144,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -827,7 +1211,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -835,37 +1227,43 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -885,7 +1283,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -894,14 +1292,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -909,6 +1307,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -931,34 +1336,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -992,7 +1403,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1000,28 +1419,34 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1042,10 +1467,30 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + } + }, + "enums": { + "external_id_type": { + "name": "external_id_type", + "values": { + "game": "game", + "category": "category", + "mechanic": "mechanic", + "publisher": "publisher", + "designer": "designer", + "artist": "artist" + } } }, - "enums": {}, "schemas": {}, "_meta": { "columns": {}, diff --git a/drizzle/meta/0003_snapshot.json b/drizzle/meta/0003_snapshot.json index 1d4401d..ac6731c 100644 --- a/drizzle/meta/0003_snapshot.json +++ b/drizzle/meta/0003_snapshot.json @@ -1,125 +1,120 @@ { - "id": "425a2ccd-b74a-4e51-8c80-1a6387cc6c5d", - "prevId": "efbcf295-4499-4d80-9026-a0d8627b0e35", + "id": "6f94b828-2e63-475a-b641-b5848972d8da", + "prevId": "e088433f-589d-4c15-953e-3b32e85e658f", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +123,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,34 +180,47 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -211,7 +254,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,28 +270,34 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -261,77 +318,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,34 +334,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -382,8 +383,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +396,62 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "external_ids": { + "name": "external_ids", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "external_id_type", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -408,19 +459,25 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -474,19 +531,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -496,12 +553,6 @@ "primaryKey": false, "notNull": false }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, "last_sync_at": { "name": "last_sync_at", "type": "timestamp (6) with time zone", @@ -510,16 +561,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -535,61 +586,183 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { - "games_external_id_unique": { - "name": "games_external_id_unique", + "games_cuid_unique": { + "name": "games_cuid_unique", "nullsNotDistinct": false, "columns": [ - "external_id" + "cuid" ] } } }, + "games_to_external_ids": { + "name": "games_to_external_ids", + "schema": "", + "columns": { + "game_id": { + "name": "game_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "games_to_external_ids_game_id_games_id_fk": { + "name": "games_to_external_ids_game_id_games_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "games_to_external_ids_external_id_external_ids_id_fk": { + "name": "games_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] + } + }, + "uniqueConstraints": {} + }, "mechanics": { "name": "mechanics", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -598,19 +771,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -620,46 +877,111 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -668,20 +990,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -690,13 +1047,19 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -705,6 +1068,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -720,13 +1090,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -738,13 +1108,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -774,34 +1144,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -835,7 +1211,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -843,37 +1227,43 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -893,7 +1283,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -902,14 +1292,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -917,6 +1307,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -939,34 +1336,40 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1000,7 +1403,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1008,28 +1419,34 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, "notNull": true }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false + }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1050,10 +1467,30 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + } + }, + "enums": { + "external_id_type": { + "name": "external_id_type", + "values": { + "game": "game", + "category": "category", + "mechanic": "mechanic", + "publisher": "publisher", + "designer": "designer", + "artist": "artist" + } } }, - "enums": {}, "schemas": {}, "_meta": { "columns": {}, diff --git a/drizzle/meta/0004_snapshot.json b/drizzle/meta/0004_snapshot.json index bc86d53..a0aeee6 100644 --- a/drizzle/meta/0004_snapshot.json +++ b/drizzle/meta/0004_snapshot.json @@ -1,125 +1,121 @@ { - "id": "40c111ed-60fd-4ca8-88df-7617bff20155", - "prevId": "425a2ccd-b74a-4e51-8c80-1a6387cc6c5d", + "id": "66b9eca1-d3d6-4967-a773-f2f2a37bad6c", + "prevId": "6f94b828-2e63-475a-b641-b5848972d8da", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -211,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -261,77 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -382,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "external_ids": { "name": "external_ids", @@ -408,76 +421,42 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", - "type": "varchar(255)", + "type": "external_id_type", "primaryKey": false, - "notNull": false + "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "game_external_ids": { - "name": "game_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": { - "game_external_ids_game_id_games_id_fk": { - "name": "game_external_ids_game_id_games_id_fk", - "tableFrom": "game_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "game_external_ids_external_id_external_ids_id_fk": { - "name": "game_external_ids_external_id_external_ids_id_fk", - "tableFrom": "game_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "games": { "name": "games", @@ -485,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -551,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -581,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -605,6 +591,71 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "games_to_external_ids": { + "name": "games_to_external_ids", + "schema": "", + "columns": { + "game_id": { + "name": "game_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "games_to_external_ids_game_id_games_id_fk": { + "name": "games_to_external_ids_game_id_games_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "games_to_external_ids_external_id_external_ids_id_fk": { + "name": "games_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "games_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics": { @@ -613,46 +664,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -661,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -683,46 +884,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -731,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -753,13 +1055,20 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -768,6 +1077,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -783,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -801,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -837,34 +1153,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -898,7 +1221,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -906,37 +1237,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -956,7 +1294,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -965,14 +1303,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -980,6 +1318,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1002,34 +1347,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1063,7 +1415,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1071,28 +1431,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1113,7 +1480,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0005_snapshot.json b/drizzle/meta/0005_snapshot.json index af293b8..588d4ef 100644 --- a/drizzle/meta/0005_snapshot.json +++ b/drizzle/meta/0005_snapshot.json @@ -1,125 +1,121 @@ { - "id": "a7cae337-1c11-4c7f-b15f-45ceb42c7256", - "prevId": "40c111ed-60fd-4ca8-88df-7617bff20155", + "id": "8477f734-8e39-4378-a856-e20db5bfba14", + "prevId": "66b9eca1-d3d6-4967-a773-f2f2a37bad6c", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -211,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -261,77 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -382,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "external_ids": { "name": "external_ids", @@ -408,27 +421,42 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", - "type": "varchar(255)", + "type": "external_id_type", "primaryKey": false, - "notNull": false + "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -436,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -502,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -532,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -556,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -564,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -587,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -600,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -613,46 +664,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -661,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -683,46 +884,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -731,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -753,21 +1055,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -783,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -801,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -837,34 +1153,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -898,7 +1221,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -906,37 +1237,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -956,7 +1294,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -965,14 +1303,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -980,6 +1318,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1002,34 +1347,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1063,7 +1415,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1071,28 +1431,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1113,7 +1480,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0006_snapshot.json b/drizzle/meta/0006_snapshot.json index bd720da..96e7d18 100644 --- a/drizzle/meta/0006_snapshot.json +++ b/drizzle/meta/0006_snapshot.json @@ -1,125 +1,121 @@ { - "id": "713ce980-a770-4f82-8414-a7bd9923262e", - "prevId": "a7cae337-1c11-4c7f-b15f-45ceb42c7256", + "id": "89e76f6f-5f69-44d2-9753-25576c106002", + "prevId": "8477f734-8e39-4378-a856-e20db5bfba14", "version": "5", "dialect": "pg", "tables": { - "artists": { - "name": "artists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "artists_to_games": { - "name": "artists_to_games", - "schema": "", - "columns": { - "artist_id": { - "name": "artist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "categories": { "name": "categories", "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "categories_to_external_ids": { + "name": "categories_to_external_ids", + "schema": "", + "columns": { + "category_id": { + "name": "category_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "categories_to_external_ids_category_id_categories_id_fk": { + "name": "categories_to_external_ids_category_id_categories_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_external_ids_external_id_external_ids_id_fk": { + "name": "categories_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "categories_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "categories_to_games": { @@ -128,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -150,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -211,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -219,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -261,77 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers": { - "name": "designers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "designers_to_games": { - "name": "designers_to_games", - "schema": "", - "columns": { - "designer_id": { - "name": "designer_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "expansions": { "name": "expansions", @@ -339,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -382,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -395,12 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "external_ids": { "name": "external_ids", @@ -408,19 +421,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", - "type": "varchar(255)", + "type": "external_id_type", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true } @@ -428,7 +448,15 @@ "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -436,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -502,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -532,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -556,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -564,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -587,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -600,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -613,46 +664,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "mechanics_to_external_ids": { + "name": "mechanics_to_external_ids", + "schema": "", + "columns": { + "mechanic_id": { + "name": "mechanic_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_external_ids_external_id_external_ids_id_fk": { + "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "mechanics_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -661,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -683,46 +884,112 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } + }, + "publishers_to_external_ids": { + "name": "publishers_to_external_ids", + "schema": "", + "columns": { + "publisher_id": { + "name": "publisher_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "external_id": { + "name": "external_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "publishers_to_external_ids_publisher_id_publishers_id_fk": { + "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_external_ids_external_id_external_ids_id_fk": { + "name": "publishers_to_external_ids_external_id_external_ids_id_fk", + "tableFrom": "publishers_to_external_ids", + "tableTo": "external_ids", + "columnsFrom": [ + "external_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] + } + }, "uniqueConstraints": {} }, "publishers_to_games": { @@ -731,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -753,21 +1055,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -783,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -801,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -837,34 +1153,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "default": { + "name": "default", + "type": "boolean", "primaryKey": false, "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -898,7 +1228,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -906,37 +1244,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -956,7 +1301,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -965,14 +1310,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -980,6 +1325,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1002,34 +1354,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1063,7 +1422,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1071,28 +1438,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1113,7 +1487,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0007_snapshot.json b/drizzle/meta/0007_snapshot.json index f4c3326..f31d70f 100644 --- a/drizzle/meta/0007_snapshot.json +++ b/drizzle/meta/0007_snapshot.json @@ -1,6 +1,6 @@ { - "id": "8dc4605d-a330-4ccb-950d-d5f1471d9ab8", - "prevId": "713ce980-a770-4f82-8414-a7bd9923262e", + "id": "70ee75d5-d697-49e0-9821-d3a1ac83aaef", + "prevId": "89e76f6f-5f69-44d2-9753-25576c106002", "version": "5", "dialect": "pg", "tables": { @@ -10,47 +10,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "categories_to_external_ids": { "name": "categories_to_external_ids", @@ -58,13 +67,13 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -81,8 +90,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "categories_to_external_ids_external_id_external_ids_id_fk": { "name": "categories_to_external_ids_external_id_external_ids_id_fk", @@ -94,11 +103,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "categories_to_games": { @@ -107,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -129,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -190,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -198,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -240,7 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "expansions": { "name": "expansions", @@ -248,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -291,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -304,61 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "external_ids": { "name": "external_ids", @@ -366,19 +421,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", - "type": "varchar(255)", + "type": "external_id_type", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true } @@ -386,7 +448,15 @@ "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -394,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -460,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -490,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -514,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -522,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -545,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -558,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -571,47 +664,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "mechanics_to_external_ids": { "name": "mechanics_to_external_ids", @@ -619,13 +721,13 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -642,8 +744,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "mechanics_to_external_ids_external_id_external_ids_id_fk": { "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", @@ -655,11 +757,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -668,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -690,47 +884,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "publishers_to_external_ids": { "name": "publishers_to_external_ids", @@ -738,13 +941,13 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -761,8 +964,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "publishers_to_external_ids_external_id_external_ids_id_fk": { "name": "publishers_to_external_ids_external_id_external_ids_id_fk", @@ -774,11 +977,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "publishers_to_games": { @@ -787,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -809,21 +1055,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -839,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -857,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -893,34 +1153,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "primary": { + "name": "primary", + "type": "boolean", "primaryKey": false, "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -954,7 +1228,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -962,37 +1244,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -1012,7 +1301,7 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" @@ -1021,14 +1310,14 @@ "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1036,6 +1325,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1058,34 +1354,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1119,7 +1422,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1127,28 +1438,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1169,7 +1487,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0008_snapshot.json b/drizzle/meta/0008_snapshot.json index 1592db1..97fc28d 100644 --- a/drizzle/meta/0008_snapshot.json +++ b/drizzle/meta/0008_snapshot.json @@ -1,6 +1,6 @@ { - "id": "59566a68-510c-4b15-9ce5-7ee99b685378", - "prevId": "8dc4605d-a330-4ccb-950d-d5f1471d9ab8", + "id": "0b2ae1c1-86b0-4925-af3e-24d0c095fd7b", + "prevId": "70ee75d5-d697-49e0-9821-d3a1ac83aaef", "version": "5", "dialect": "pg", "tables": { @@ -10,47 +10,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "categories_to_external_ids": { "name": "categories_to_external_ids", @@ -58,13 +67,13 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -81,8 +90,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "categories_to_external_ids_external_id_external_ids_id_fk": { "name": "categories_to_external_ids_external_id_external_ids_id_fk", @@ -94,11 +103,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "categories_to_games": { @@ -107,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -129,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -190,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -198,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -240,7 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "expansions": { "name": "expansions", @@ -248,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -291,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -304,61 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "external_ids": { "name": "external_ids", @@ -366,19 +421,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", - "type": "type", + "type": "external_id_type", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true } @@ -386,7 +448,15 @@ "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -394,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -460,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -490,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -514,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -522,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -545,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -558,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -571,47 +664,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "mechanics_to_external_ids": { "name": "mechanics_to_external_ids", @@ -619,13 +721,13 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -642,8 +744,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "mechanics_to_external_ids_external_id_external_ids_id_fk": { "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", @@ -655,11 +757,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -668,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -690,47 +884,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "publishers_to_external_ids": { "name": "publishers_to_external_ids", @@ -738,13 +941,13 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -761,8 +964,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "publishers_to_external_ids_external_id_external_ids_id_fk": { "name": "publishers_to_external_ids_external_id_external_ids_id_fk", @@ -774,11 +977,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "publishers_to_games": { @@ -787,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -809,21 +1055,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -839,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -857,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -893,34 +1153,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "primary": { + "name": "primary", + "type": "boolean", "primaryKey": false, "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -954,7 +1228,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -962,37 +1244,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -1012,23 +1301,29 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" }, + "two_factor_secret": { + "name": "two_factor_secret", + "type": "text", + "primaryKey": false, + "notNull": false + }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1036,6 +1331,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1058,34 +1360,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1119,7 +1428,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1127,28 +1444,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1169,12 +1493,20 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { - "type": { - "name": "type", + "external_id_type": { + "name": "external_id_type", "values": { "game": "game", "category": "category", diff --git a/drizzle/meta/0009_snapshot.json b/drizzle/meta/0009_snapshot.json index 8b7a36b..72d7d38 100644 --- a/drizzle/meta/0009_snapshot.json +++ b/drizzle/meta/0009_snapshot.json @@ -1,6 +1,6 @@ { - "id": "5d25f562-1d4b-4274-84ea-6d15dcf7fd74", - "prevId": "59566a68-510c-4b15-9ce5-7ee99b685378", + "id": "2cd87f0c-6fe2-4809-903d-e6c443da604a", + "prevId": "0b2ae1c1-86b0-4925-af3e-24d0c095fd7b", "version": "5", "dialect": "pg", "tables": { @@ -10,47 +10,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "categories_to_external_ids": { "name": "categories_to_external_ids", @@ -58,13 +67,13 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -81,8 +90,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "categories_to_external_ids_external_id_external_ids_id_fk": { "name": "categories_to_external_ids_external_id_external_ids_id_fk", @@ -94,11 +103,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "categories_to_games": { @@ -107,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -129,34 +181,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "times_played": { + "name": "times_played", + "type": "integer", "primaryKey": false, "notNull": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -190,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -198,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -240,7 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "expansions": { "name": "expansions", @@ -248,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -291,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -304,61 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "external_ids": { "name": "external_ids", @@ -366,9 +421,16 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", @@ -378,7 +440,7 @@ }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true } @@ -386,7 +448,15 @@ "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -394,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -460,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -490,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -514,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -522,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -545,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -558,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -571,47 +664,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "mechanics_to_external_ids": { "name": "mechanics_to_external_ids", @@ -619,13 +721,13 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -642,8 +744,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "mechanics_to_external_ids_external_id_external_ids_id_fk": { "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", @@ -655,11 +757,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -668,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -690,47 +884,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "publishers_to_external_ids": { "name": "publishers_to_external_ids", @@ -738,13 +941,13 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -761,8 +964,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "publishers_to_external_ids_external_id_external_ids_id_fk": { "name": "publishers_to_external_ids_external_id_external_ids_id_fk", @@ -774,11 +977,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "publishers_to_games": { @@ -787,20 +998,55 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "roles": { @@ -809,21 +1055,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -839,13 +1099,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -857,13 +1117,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -893,34 +1153,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "primary": { + "name": "primary", + "type": "boolean", "primaryKey": false, "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -954,7 +1228,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -962,37 +1244,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -1012,23 +1301,37 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" }, + "two_factor_secret": { + "name": "two_factor_secret", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "two_factor_enabled": { + "name": "two_factor_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1036,6 +1339,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1058,34 +1368,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1119,7 +1436,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1127,28 +1452,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1169,7 +1501,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0010_snapshot.json b/drizzle/meta/0010_snapshot.json index 3f16465..9eefbd1 100644 --- a/drizzle/meta/0010_snapshot.json +++ b/drizzle/meta/0010_snapshot.json @@ -1,6 +1,6 @@ { - "id": "cc27c22a-1208-4b61-b2b1-07f09147fde3", - "prevId": "5d25f562-1d4b-4274-84ea-6d15dcf7fd74", + "id": "74c910fb-38f9-44d8-bd22-b36a517d7b8b", + "prevId": "2cd87f0c-6fe2-4809-903d-e6c443da604a", "version": "5", "dialect": "pg", "tables": { @@ -10,47 +10,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "categories_cuid_unique": { + "name": "categories_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "categories_to_external_ids": { "name": "categories_to_external_ids", @@ -58,13 +67,13 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -81,8 +90,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "categories_to_external_ids_external_id_external_ids_id_fk": { "name": "categories_to_external_ids_external_id_external_ids_id_fk", @@ -94,11 +103,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_external_ids_category_id_external_id_pk": { + "name": "categories_to_external_ids_category_id_external_id_pk", + "columns": [ + "category_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "categories_to_games": { @@ -107,20 +124,55 @@ "columns": { "category_id": { "name": "category_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, + "foreignKeys": { + "categories_to_games_category_id_categories_id_fk": { + "name": "categories_to_games_category_id_categories_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "categories_to_games_game_id_games_id_fk": { + "name": "categories_to_games_game_id_games_id_fk", + "tableFrom": "categories_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "categories_to_games_category_id_game_id_pk": { + "name": "categories_to_games_category_id_game_id_pk", + "columns": [ + "category_id", + "game_id" + ] + } + }, "uniqueConstraints": {} }, "collection_items": { @@ -129,19 +181,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "collection_id": { "name": "collection_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -154,16 +213,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -197,7 +256,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collection_items_cuid_unique": { + "name": "collection_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "collections": { "name": "collections", @@ -205,28 +272,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -247,7 +321,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "collections_cuid_unique": { + "name": "collections_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "expansions": { "name": "expansions", @@ -255,34 +337,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "base_game_id": { "name": "base_game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -298,8 +387,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "expansions_game_id_games_id_fk": { "name": "expansions_game_id_games_id_fk", @@ -311,61 +400,20 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true + "uniqueConstraints": { + "expansions_cuid_unique": { + "name": "expansions_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} + } }, "external_ids": { "name": "external_ids", @@ -373,9 +421,16 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "type": { "name": "type", @@ -385,7 +440,7 @@ }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": true } @@ -393,7 +448,15 @@ "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "external_ids_cuid_unique": { + "name": "external_ids_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games": { "name": "games", @@ -401,19 +464,26 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -467,19 +537,19 @@ }, "image_url": { "name": "image_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "thumb_url": { "name": "thumb_url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "url": { "name": "url", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -497,16 +567,16 @@ }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -521,7 +591,15 @@ }, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "games_cuid_unique": { + "name": "games_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "games_to_external_ids": { "name": "games_to_external_ids", @@ -529,13 +607,13 @@ "columns": { "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -552,8 +630,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "games_to_external_ids_external_id_external_ids_id_fk": { "name": "games_to_external_ids_external_id_external_ids_id_fk", @@ -565,11 +643,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "games_to_external_ids_game_id_external_id_pk": { + "name": "games_to_external_ids_game_id_external_id_pk", + "columns": [ + "game_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics": { @@ -578,47 +664,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "mechanics_cuid_unique": { + "name": "mechanics_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "mechanics_to_external_ids": { "name": "mechanics_to_external_ids", @@ -626,13 +721,13 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -649,8 +744,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "mechanics_to_external_ids_external_id_external_ids_id_fk": { "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", @@ -662,11 +757,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_external_ids_mechanic_id_external_id_pk": { + "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", + "columns": [ + "mechanic_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "mechanics_to_games": { @@ -675,19 +778,103 @@ "columns": { "mechanic_id": { "name": "mechanic_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "mechanics_to_games_mechanic_id_mechanics_id_fk": { + "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "mechanics", + "columnsFrom": [ + "mechanic_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "mechanics_to_games_game_id_games_id_fk": { + "name": "mechanics_to_games_game_id_games_id_fk", + "tableFrom": "mechanics_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "mechanics_to_games_mechanic_id_game_id_pk": { + "name": "mechanics_to_games_mechanic_id_game_id_pk", + "columns": [ + "mechanic_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "password_reset_tokens": { + "name": "password_reset_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp (6) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "password_reset_tokens_user_id_users_id_fk": { + "name": "password_reset_tokens_user_id_users_id_fk", + "tableFrom": "password_reset_tokens", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -697,47 +884,56 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "slug": { "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", + "type": "text", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "publishers_cuid_unique": { + "name": "publishers_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "publishers_to_external_ids": { "name": "publishers_to_external_ids", @@ -745,13 +941,13 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "external_id": { "name": "external_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true } @@ -768,8 +964,8 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" }, "publishers_to_external_ids_external_id_external_ids_id_fk": { "name": "publishers_to_external_ids_external_id_external_ids_id_fk", @@ -781,11 +977,19 @@ "columnsTo": [ "id" ], - "onDelete": "cascade", - "onUpdate": "no action" + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_external_ids_publisher_id_external_id_pk": { + "name": "publishers_to_external_ids_publisher_id_external_id_pk", + "columns": [ + "publisher_id", + "external_id" + ] } }, - "compositePrimaryKeys": {}, "uniqueConstraints": {} }, "publishers_to_games": { @@ -794,19 +998,118 @@ "columns": { "publisher_id": { "name": "publisher_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "publishers_to_games_publisher_id_publishers_id_fk": { + "name": "publishers_to_games_publisher_id_publishers_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "publishers", + "columnsFrom": [ + "publisher_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + }, + "publishers_to_games_game_id_games_id_fk": { + "name": "publishers_to_games_game_id_games_id_fk", + "tableFrom": "publishers_to_games", + "tableTo": "games", + "columnsFrom": [ + "game_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "publishers_to_games_publisher_id_game_id_pk": { + "name": "publishers_to_games_publisher_id_game_id_pk", + "columns": [ + "publisher_id", + "game_id" + ] + } + }, + "uniqueConstraints": {} + }, + "recovery_codes": { + "name": "recovery_codes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "code": { + "name": "code", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "used": { + "name": "used", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "recovery_codes_user_id_users_id_fk": { + "name": "recovery_codes_user_id_users_id_fk", + "tableFrom": "recovery_codes", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {} }, @@ -816,21 +1119,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, "notNull": true }, "name": { "name": "name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": true } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "roles_cuid_unique": { + "name": "roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "roles_name_unique": { "name": "roles_name_unique", "nullsNotDistinct": false, @@ -846,13 +1163,13 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "text", "primaryKey": true, "notNull": true }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, @@ -864,13 +1181,13 @@ }, "ip_country": { "name": "ip_country", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false } @@ -900,34 +1217,48 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "role_id": { "name": "role_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", + "primary": { + "name": "primary", + "type": "boolean", "primaryKey": false, "notNull": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -961,7 +1292,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "user_roles_cuid_unique": { + "name": "user_roles_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "users": { "name": "users", @@ -969,37 +1308,44 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "username": { "name": "username", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "hashed_password": { "name": "hashed_password", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, "last_name": { "name": "last_name", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false }, @@ -1019,23 +1365,37 @@ }, "theme": { "name": "theme", - "type": "varchar(255)", + "type": "text", "primaryKey": false, "notNull": false, "default": "'system'" }, + "two_factor_secret": { + "name": "two_factor_secret", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "two_factor_enabled": { + "name": "two_factor_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, "created_at": { "name": "created_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1043,6 +1403,13 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": { + "users_cuid_unique": { + "name": "users_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + }, "users_username_unique": { "name": "users_username_unique", "nullsNotDistinct": false, @@ -1065,34 +1432,41 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "wishlist_id": { "name": "wishlist_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "game_id": { "name": "game_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1126,7 +1500,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlist_items_cuid_unique": { + "name": "wishlist_items_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } }, "wishlists": { "name": "wishlists", @@ -1134,28 +1516,35 @@ "columns": { "id": { "name": "id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": true, - "notNull": true + "notNull": true, + "default": "gen_random_uuid()" + }, + "cuid": { + "name": "cuid", + "type": "text", + "primaryKey": false, + "notNull": false }, "user_id": { "name": "user_id", - "type": "varchar(255)", + "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", - "type": "timestamp (6) with time zone", + "type": "timestamp", "primaryKey": false, - "notNull": false, + "notNull": true, "default": "now()" } }, @@ -1176,7 +1565,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "wishlists_cuid_unique": { + "name": "wishlists_cuid_unique", + "nullsNotDistinct": false, + "columns": [ + "cuid" + ] + } + } } }, "enums": { diff --git a/drizzle/meta/0011_snapshot.json b/drizzle/meta/0011_snapshot.json deleted file mode 100644 index d87bab7..0000000 --- a/drizzle/meta/0011_snapshot.json +++ /dev/null @@ -1,1346 +0,0 @@ -{ - "id": "e0ba3399-0ff3-4e9e-921f-3d6617354bc8", - "prevId": "cc27c22a-1208-4b61-b2b1-07f09147fde3", - "version": "5", - "dialect": "pg", - "tables": { - "categories": { - "name": "categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "categories_to_external_ids": { - "name": "categories_to_external_ids", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_external_ids_category_id_categories_id_fk": { - "name": "categories_to_external_ids_category_id_categories_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_external_ids_external_id_external_ids_id_fk": { - "name": "categories_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_external_ids_category_id_external_id_pk": { - "name": "categories_to_external_ids_category_id_external_id_pk", - "columns": [ - "category_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "categories_to_games": { - "name": "categories_to_games", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_games_category_id_categories_id_fk": { - "name": "categories_to_games_category_id_categories_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_games_game_id_games_id_fk": { - "name": "categories_to_games_game_id_games_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_games_category_id_game_id_pk": { - "name": "categories_to_games_category_id_game_id_pk", - "columns": [ - "category_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "collection_items": { - "name": "collection_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "collection_id": { - "name": "collection_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "times_played": { - "name": "times_played", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collection_items_collection_id_collections_id_fk": { - "name": "collection_items_collection_id_collections_id_fk", - "tableFrom": "collection_items", - "tableTo": "collections", - "columnsFrom": [ - "collection_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "collection_items_game_id_games_id_fk": { - "name": "collection_items_game_id_games_id_fk", - "tableFrom": "collection_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "collections": { - "name": "collections", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collections_user_id_users_id_fk": { - "name": "collections_user_id_users_id_fk", - "tableFrom": "collections", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions": { - "name": "expansions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "base_game_id": { - "name": "base_game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_base_game_id_games_id_fk": { - "name": "expansions_base_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "base_game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_game_id_games_id_fk": { - "name": "expansions_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "expansions_to_external_ids_expansion_id_external_id_pk": { - "name": "expansions_to_external_ids_expansion_id_external_id_pk", - "columns": [ - "expansion_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "external_ids": { - "name": "external_ids", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "external_id_type", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games": { - "name": "games", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "year_published": { - "name": "year_published", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_players": { - "name": "min_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_players": { - "name": "max_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "playtime": { - "name": "playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_playtime": { - "name": "min_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_playtime": { - "name": "max_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_age": { - "name": "min_age", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_url": { - "name": "image_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "thumb_url": { - "name": "thumb_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "text_searchable_index": { - "name": "text_searchable_index", - "type": "tsvector", - "primaryKey": false, - "notNull": false - }, - "last_sync_at": { - "name": "last_sync_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "text_searchable_idx": { - "name": "text_searchable_idx", - "columns": [ - "text_searchable_index" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games_to_external_ids": { - "name": "games_to_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "games_to_external_ids_game_id_games_id_fk": { - "name": "games_to_external_ids_game_id_games_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "games_to_external_ids_external_id_external_ids_id_fk": { - "name": "games_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "games_to_external_ids_game_id_external_id_pk": { - "name": "games_to_external_ids_game_id_external_id_pk", - "columns": [ - "game_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics": { - "name": "mechanics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "mechanics_to_external_ids": { - "name": "mechanics_to_external_ids", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_external_ids_external_id_external_ids_id_fk": { - "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_external_ids_mechanic_id_external_id_pk": { - "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", - "columns": [ - "mechanic_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics_to_games": { - "name": "mechanics_to_games", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_games_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_games_game_id_games_id_fk": { - "name": "mechanics_to_games_game_id_games_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_games_mechanic_id_game_id_pk": { - "name": "mechanics_to_games_mechanic_id_game_id_pk", - "columns": [ - "mechanic_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers": { - "name": "publishers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers_to_external_ids": { - "name": "publishers_to_external_ids", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_external_ids_publisher_id_publishers_id_fk": { - "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_external_ids_external_id_external_ids_id_fk": { - "name": "publishers_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_external_ids_publisher_id_external_id_pk": { - "name": "publishers_to_external_ids_publisher_id_external_id_pk", - "columns": [ - "publisher_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers_to_games": { - "name": "publishers_to_games", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_games_publisher_id_publishers_id_fk": { - "name": "publishers_to_games_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_games_game_id_games_id_fk": { - "name": "publishers_to_games_game_id_games_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_games_publisher_id_game_id_pk": { - "name": "publishers_to_games_publisher_id_game_id_pk", - "columns": [ - "publisher_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - } - }, - "sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ip_country": { - "name": "ip_country", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "hashed_password": { - "name": "hashed_password", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "first_name": { - "name": "first_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "last_name": { - "name": "last_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "verified": { - "name": "verified", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "receive_email": { - "name": "receive_email", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "theme": { - "name": "theme", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false, - "default": "'system'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - }, - "users_email_unique": { - "name": "users_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - } - } - }, - "wishlist_items": { - "name": "wishlist_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "wishlist_id": { - "name": "wishlist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlist_items_wishlist_id_wishlists_id_fk": { - "name": "wishlist_items_wishlist_id_wishlists_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "wishlists", - "columnsFrom": [ - "wishlist_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "wishlist_items_game_id_games_id_fk": { - "name": "wishlist_items_game_id_games_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "wishlists": { - "name": "wishlists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlists_user_id_users_id_fk": { - "name": "wishlists_user_id_users_id_fk", - "tableFrom": "wishlists", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "external_id_type": { - "name": "external_id_type", - "values": { - "game": "game", - "category": "category", - "mechanic": "mechanic", - "publisher": "publisher", - "designer": "designer", - "artist": "artist" - } - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0012_snapshot.json b/drizzle/meta/0012_snapshot.json deleted file mode 100644 index 93d28fa..0000000 --- a/drizzle/meta/0012_snapshot.json +++ /dev/null @@ -1,1346 +0,0 @@ -{ - "id": "58f18282-0b26-4fee-a68d-08867b5729df", - "prevId": "e0ba3399-0ff3-4e9e-921f-3d6617354bc8", - "version": "5", - "dialect": "pg", - "tables": { - "categories": { - "name": "categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "categories_to_external_ids": { - "name": "categories_to_external_ids", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_external_ids_category_id_categories_id_fk": { - "name": "categories_to_external_ids_category_id_categories_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_external_ids_external_id_external_ids_id_fk": { - "name": "categories_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_external_ids_category_id_external_id_pk": { - "name": "categories_to_external_ids_category_id_external_id_pk", - "columns": [ - "category_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "categories_to_games": { - "name": "categories_to_games", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_games_category_id_categories_id_fk": { - "name": "categories_to_games_category_id_categories_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_games_game_id_games_id_fk": { - "name": "categories_to_games_game_id_games_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_games_category_id_game_id_pk": { - "name": "categories_to_games_category_id_game_id_pk", - "columns": [ - "category_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "collection_items": { - "name": "collection_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "collection_id": { - "name": "collection_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "times_played": { - "name": "times_played", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collection_items_collection_id_collections_id_fk": { - "name": "collection_items_collection_id_collections_id_fk", - "tableFrom": "collection_items", - "tableTo": "collections", - "columnsFrom": [ - "collection_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "collection_items_game_id_games_id_fk": { - "name": "collection_items_game_id_games_id_fk", - "tableFrom": "collection_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "collections": { - "name": "collections", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collections_user_id_users_id_fk": { - "name": "collections_user_id_users_id_fk", - "tableFrom": "collections", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions": { - "name": "expansions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "base_game_id": { - "name": "base_game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_base_game_id_games_id_fk": { - "name": "expansions_base_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "base_game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_game_id_games_id_fk": { - "name": "expansions_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "expansions_to_external_ids_expansion_id_external_id_pk": { - "name": "expansions_to_external_ids_expansion_id_external_id_pk", - "columns": [ - "expansion_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "external_ids": { - "name": "external_ids", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "external_id_type", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games": { - "name": "games", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "year_published": { - "name": "year_published", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_players": { - "name": "min_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_players": { - "name": "max_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "playtime": { - "name": "playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_playtime": { - "name": "min_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_playtime": { - "name": "max_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_age": { - "name": "min_age", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_url": { - "name": "image_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "thumb_url": { - "name": "thumb_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "text_searchable_index": { - "name": "text_searchable_index", - "type": "tsvector", - "primaryKey": false, - "notNull": false - }, - "last_sync_at": { - "name": "last_sync_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "text_searchable_idx": { - "name": "text_searchable_idx", - "columns": [ - "text_searchable_index" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games_to_external_ids": { - "name": "games_to_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "games_to_external_ids_game_id_games_id_fk": { - "name": "games_to_external_ids_game_id_games_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "games_to_external_ids_external_id_external_ids_id_fk": { - "name": "games_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "games_to_external_ids_game_id_external_id_pk": { - "name": "games_to_external_ids_game_id_external_id_pk", - "columns": [ - "game_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics": { - "name": "mechanics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "mechanics_to_external_ids": { - "name": "mechanics_to_external_ids", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_external_ids_external_id_external_ids_id_fk": { - "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_external_ids_mechanic_id_external_id_pk": { - "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", - "columns": [ - "mechanic_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics_to_games": { - "name": "mechanics_to_games", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_games_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_games_game_id_games_id_fk": { - "name": "mechanics_to_games_game_id_games_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_games_mechanic_id_game_id_pk": { - "name": "mechanics_to_games_mechanic_id_game_id_pk", - "columns": [ - "mechanic_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers": { - "name": "publishers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers_to_external_ids": { - "name": "publishers_to_external_ids", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_external_ids_publisher_id_publishers_id_fk": { - "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_external_ids_external_id_external_ids_id_fk": { - "name": "publishers_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_external_ids_publisher_id_external_id_pk": { - "name": "publishers_to_external_ids_publisher_id_external_id_pk", - "columns": [ - "publisher_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers_to_games": { - "name": "publishers_to_games", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_games_publisher_id_publishers_id_fk": { - "name": "publishers_to_games_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_games_game_id_games_id_fk": { - "name": "publishers_to_games_game_id_games_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_games_publisher_id_game_id_pk": { - "name": "publishers_to_games_publisher_id_game_id_pk", - "columns": [ - "publisher_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - } - }, - "sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ip_country": { - "name": "ip_country", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "hashed_password": { - "name": "hashed_password", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "first_name": { - "name": "first_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "last_name": { - "name": "last_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "verified": { - "name": "verified", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "receive_email": { - "name": "receive_email", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "theme": { - "name": "theme", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false, - "default": "'system'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - }, - "users_email_unique": { - "name": "users_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - } - } - }, - "wishlist_items": { - "name": "wishlist_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "wishlist_id": { - "name": "wishlist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlist_items_wishlist_id_wishlists_id_fk": { - "name": "wishlist_items_wishlist_id_wishlists_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "wishlists", - "columnsFrom": [ - "wishlist_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "wishlist_items_game_id_games_id_fk": { - "name": "wishlist_items_game_id_games_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "wishlists": { - "name": "wishlists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlists_user_id_users_id_fk": { - "name": "wishlists_user_id_users_id_fk", - "tableFrom": "wishlists", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "external_id_type": { - "name": "external_id_type", - "values": { - "game": "game", - "category": "category", - "mechanic": "mechanic", - "publisher": "publisher", - "designer": "designer", - "artist": "artist" - } - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0013_snapshot.json b/drizzle/meta/0013_snapshot.json deleted file mode 100644 index 6f8cea3..0000000 --- a/drizzle/meta/0013_snapshot.json +++ /dev/null @@ -1,1328 +0,0 @@ -{ - "id": "453ae1fd-7b1f-4256-8323-cdb2da05902a", - "prevId": "58f18282-0b26-4fee-a68d-08867b5729df", - "version": "5", - "dialect": "pg", - "tables": { - "categories": { - "name": "categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "categories_to_external_ids": { - "name": "categories_to_external_ids", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_external_ids_category_id_categories_id_fk": { - "name": "categories_to_external_ids_category_id_categories_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_external_ids_external_id_external_ids_id_fk": { - "name": "categories_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_external_ids_category_id_external_id_pk": { - "name": "categories_to_external_ids_category_id_external_id_pk", - "columns": [ - "category_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "categories_to_games": { - "name": "categories_to_games", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_games_category_id_categories_id_fk": { - "name": "categories_to_games_category_id_categories_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_games_game_id_games_id_fk": { - "name": "categories_to_games_game_id_games_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_games_category_id_game_id_pk": { - "name": "categories_to_games_category_id_game_id_pk", - "columns": [ - "category_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "collection_items": { - "name": "collection_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "collection_id": { - "name": "collection_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "times_played": { - "name": "times_played", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collection_items_collection_id_collections_id_fk": { - "name": "collection_items_collection_id_collections_id_fk", - "tableFrom": "collection_items", - "tableTo": "collections", - "columnsFrom": [ - "collection_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "collection_items_game_id_games_id_fk": { - "name": "collection_items_game_id_games_id_fk", - "tableFrom": "collection_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "collections": { - "name": "collections", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collections_user_id_users_id_fk": { - "name": "collections_user_id_users_id_fk", - "tableFrom": "collections", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions": { - "name": "expansions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "base_game_id": { - "name": "base_game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_base_game_id_games_id_fk": { - "name": "expansions_base_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "base_game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_game_id_games_id_fk": { - "name": "expansions_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions_to_external_ids": { - "name": "expansions_to_external_ids", - "schema": "", - "columns": { - "expansion_id": { - "name": "expansion_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_to_external_ids_expansion_id_expansions_id_fk": { - "name": "expansions_to_external_ids_expansion_id_expansions_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "expansions", - "columnsFrom": [ - "expansion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_to_external_ids_external_id_external_ids_id_fk": { - "name": "expansions_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "expansions_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "expansions_to_external_ids_expansion_id_external_id_pk": { - "name": "expansions_to_external_ids_expansion_id_external_id_pk", - "columns": [ - "expansion_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "external_ids": { - "name": "external_ids", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "external_id_type", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games": { - "name": "games", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "year_published": { - "name": "year_published", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_players": { - "name": "min_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_players": { - "name": "max_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "playtime": { - "name": "playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_playtime": { - "name": "min_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_playtime": { - "name": "max_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_age": { - "name": "min_age", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_url": { - "name": "image_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "thumb_url": { - "name": "thumb_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "text_searchable_index": { - "name": "text_searchable_index", - "type": "tsvector", - "primaryKey": false, - "notNull": false - }, - "last_sync_at": { - "name": "last_sync_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "text_searchable_idx": { - "name": "text_searchable_idx", - "columns": [ - "text_searchable_index" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games_to_external_ids": { - "name": "games_to_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "games_to_external_ids_game_id_games_id_fk": { - "name": "games_to_external_ids_game_id_games_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "games_to_external_ids_external_id_external_ids_id_fk": { - "name": "games_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "games_to_external_ids_game_id_external_id_pk": { - "name": "games_to_external_ids_game_id_external_id_pk", - "columns": [ - "game_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics": { - "name": "mechanics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "mechanics_to_external_ids": { - "name": "mechanics_to_external_ids", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_external_ids_external_id_external_ids_id_fk": { - "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_external_ids_mechanic_id_external_id_pk": { - "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", - "columns": [ - "mechanic_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics_to_games": { - "name": "mechanics_to_games", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_games_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_games_game_id_games_id_fk": { - "name": "mechanics_to_games_game_id_games_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_games_mechanic_id_game_id_pk": { - "name": "mechanics_to_games_mechanic_id_game_id_pk", - "columns": [ - "mechanic_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers": { - "name": "publishers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers_to_external_ids": { - "name": "publishers_to_external_ids", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_external_ids_publisher_id_publishers_id_fk": { - "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_external_ids_external_id_external_ids_id_fk": { - "name": "publishers_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_external_ids_publisher_id_external_id_pk": { - "name": "publishers_to_external_ids_publisher_id_external_id_pk", - "columns": [ - "publisher_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers_to_games": { - "name": "publishers_to_games", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_games_publisher_id_publishers_id_fk": { - "name": "publishers_to_games_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_games_game_id_games_id_fk": { - "name": "publishers_to_games_game_id_games_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_games_publisher_id_game_id_pk": { - "name": "publishers_to_games_publisher_id_game_id_pk", - "columns": [ - "publisher_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - } - }, - "sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ip_country": { - "name": "ip_country", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "hashed_password": { - "name": "hashed_password", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "first_name": { - "name": "first_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "last_name": { - "name": "last_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "verified": { - "name": "verified", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "receive_email": { - "name": "receive_email", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "theme": { - "name": "theme", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false, - "default": "'system'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - }, - "users_email_unique": { - "name": "users_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - } - } - }, - "wishlist_items": { - "name": "wishlist_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "wishlist_id": { - "name": "wishlist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlist_items_wishlist_id_wishlists_id_fk": { - "name": "wishlist_items_wishlist_id_wishlists_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "wishlists", - "columnsFrom": [ - "wishlist_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "wishlist_items_game_id_games_id_fk": { - "name": "wishlist_items_game_id_games_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "wishlists": { - "name": "wishlists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlists_user_id_users_id_fk": { - "name": "wishlists_user_id_users_id_fk", - "tableFrom": "wishlists", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "external_id_type": { - "name": "external_id_type", - "values": { - "game": "game", - "category": "category", - "mechanic": "mechanic", - "publisher": "publisher", - "designer": "designer", - "artist": "artist" - } - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0014_snapshot.json b/drizzle/meta/0014_snapshot.json deleted file mode 100644 index 8d11ec3..0000000 --- a/drizzle/meta/0014_snapshot.json +++ /dev/null @@ -1,1271 +0,0 @@ -{ - "id": "2743a62f-6523-44af-8c31-b69fe40c749f", - "prevId": "453ae1fd-7b1f-4256-8323-cdb2da05902a", - "version": "5", - "dialect": "pg", - "tables": { - "categories": { - "name": "categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "categories_to_external_ids": { - "name": "categories_to_external_ids", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_external_ids_category_id_categories_id_fk": { - "name": "categories_to_external_ids_category_id_categories_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_external_ids_external_id_external_ids_id_fk": { - "name": "categories_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_external_ids_category_id_external_id_pk": { - "name": "categories_to_external_ids_category_id_external_id_pk", - "columns": [ - "category_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "categories_to_games": { - "name": "categories_to_games", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_games_category_id_categories_id_fk": { - "name": "categories_to_games_category_id_categories_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_games_game_id_games_id_fk": { - "name": "categories_to_games_game_id_games_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_games_category_id_game_id_pk": { - "name": "categories_to_games_category_id_game_id_pk", - "columns": [ - "category_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "collection_items": { - "name": "collection_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "collection_id": { - "name": "collection_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "times_played": { - "name": "times_played", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collection_items_collection_id_collections_id_fk": { - "name": "collection_items_collection_id_collections_id_fk", - "tableFrom": "collection_items", - "tableTo": "collections", - "columnsFrom": [ - "collection_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "collection_items_game_id_games_id_fk": { - "name": "collection_items_game_id_games_id_fk", - "tableFrom": "collection_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "collections": { - "name": "collections", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collections_user_id_users_id_fk": { - "name": "collections_user_id_users_id_fk", - "tableFrom": "collections", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions": { - "name": "expansions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "base_game_id": { - "name": "base_game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_base_game_id_games_id_fk": { - "name": "expansions_base_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "base_game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_game_id_games_id_fk": { - "name": "expansions_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "external_ids": { - "name": "external_ids", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "external_id_type", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games": { - "name": "games", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "year_published": { - "name": "year_published", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_players": { - "name": "min_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_players": { - "name": "max_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "playtime": { - "name": "playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_playtime": { - "name": "min_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_playtime": { - "name": "max_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_age": { - "name": "min_age", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_url": { - "name": "image_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "thumb_url": { - "name": "thumb_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "text_searchable_index": { - "name": "text_searchable_index", - "type": "tsvector", - "primaryKey": false, - "notNull": false - }, - "last_sync_at": { - "name": "last_sync_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "text_searchable_idx": { - "name": "text_searchable_idx", - "columns": [ - "text_searchable_index" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games_to_external_ids": { - "name": "games_to_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "games_to_external_ids_game_id_games_id_fk": { - "name": "games_to_external_ids_game_id_games_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "games_to_external_ids_external_id_external_ids_id_fk": { - "name": "games_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "games_to_external_ids_game_id_external_id_pk": { - "name": "games_to_external_ids_game_id_external_id_pk", - "columns": [ - "game_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics": { - "name": "mechanics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "mechanics_to_external_ids": { - "name": "mechanics_to_external_ids", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_external_ids_external_id_external_ids_id_fk": { - "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_external_ids_mechanic_id_external_id_pk": { - "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", - "columns": [ - "mechanic_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics_to_games": { - "name": "mechanics_to_games", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_games_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_games_game_id_games_id_fk": { - "name": "mechanics_to_games_game_id_games_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_games_mechanic_id_game_id_pk": { - "name": "mechanics_to_games_mechanic_id_game_id_pk", - "columns": [ - "mechanic_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers": { - "name": "publishers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers_to_external_ids": { - "name": "publishers_to_external_ids", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_external_ids_publisher_id_publishers_id_fk": { - "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_external_ids_external_id_external_ids_id_fk": { - "name": "publishers_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_external_ids_publisher_id_external_id_pk": { - "name": "publishers_to_external_ids_publisher_id_external_id_pk", - "columns": [ - "publisher_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers_to_games": { - "name": "publishers_to_games", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_games_publisher_id_publishers_id_fk": { - "name": "publishers_to_games_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_games_game_id_games_id_fk": { - "name": "publishers_to_games_game_id_games_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_games_publisher_id_game_id_pk": { - "name": "publishers_to_games_publisher_id_game_id_pk", - "columns": [ - "publisher_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - } - }, - "sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ip_country": { - "name": "ip_country", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "hashed_password": { - "name": "hashed_password", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "first_name": { - "name": "first_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "last_name": { - "name": "last_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "verified": { - "name": "verified", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "receive_email": { - "name": "receive_email", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "theme": { - "name": "theme", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false, - "default": "'system'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - }, - "users_email_unique": { - "name": "users_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - } - } - }, - "wishlist_items": { - "name": "wishlist_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "wishlist_id": { - "name": "wishlist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlist_items_wishlist_id_wishlists_id_fk": { - "name": "wishlist_items_wishlist_id_wishlists_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "wishlists", - "columnsFrom": [ - "wishlist_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "wishlist_items_game_id_games_id_fk": { - "name": "wishlist_items_game_id_games_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "wishlists": { - "name": "wishlists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlists_user_id_users_id_fk": { - "name": "wishlists_user_id_users_id_fk", - "tableFrom": "wishlists", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "external_id_type": { - "name": "external_id_type", - "values": { - "game": "game", - "category": "category", - "mechanic": "mechanic", - "publisher": "publisher", - "designer": "designer", - "artist": "artist" - } - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0015_snapshot.json b/drizzle/meta/0015_snapshot.json deleted file mode 100644 index 066805e..0000000 --- a/drizzle/meta/0015_snapshot.json +++ /dev/null @@ -1,1320 +0,0 @@ -{ - "id": "5922694c-19d2-4103-a9e4-487dc742753b", - "prevId": "2743a62f-6523-44af-8c31-b69fe40c749f", - "version": "5", - "dialect": "pg", - "tables": { - "categories": { - "name": "categories", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "categories_to_external_ids": { - "name": "categories_to_external_ids", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_external_ids_category_id_categories_id_fk": { - "name": "categories_to_external_ids_category_id_categories_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_external_ids_external_id_external_ids_id_fk": { - "name": "categories_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "categories_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_external_ids_category_id_external_id_pk": { - "name": "categories_to_external_ids_category_id_external_id_pk", - "columns": [ - "category_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "categories_to_games": { - "name": "categories_to_games", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "categories_to_games_category_id_categories_id_fk": { - "name": "categories_to_games_category_id_categories_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "categories_to_games_game_id_games_id_fk": { - "name": "categories_to_games_game_id_games_id_fk", - "tableFrom": "categories_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "categories_to_games_category_id_game_id_pk": { - "name": "categories_to_games_category_id_game_id_pk", - "columns": [ - "category_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "collection_items": { - "name": "collection_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "collection_id": { - "name": "collection_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "times_played": { - "name": "times_played", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collection_items_collection_id_collections_id_fk": { - "name": "collection_items_collection_id_collections_id_fk", - "tableFrom": "collection_items", - "tableTo": "collections", - "columnsFrom": [ - "collection_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "collection_items_game_id_games_id_fk": { - "name": "collection_items_game_id_games_id_fk", - "tableFrom": "collection_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "collections": { - "name": "collections", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "collections_user_id_users_id_fk": { - "name": "collections_user_id_users_id_fk", - "tableFrom": "collections", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "expansions": { - "name": "expansions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "base_game_id": { - "name": "base_game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "expansions_base_game_id_games_id_fk": { - "name": "expansions_base_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "base_game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "expansions_game_id_games_id_fk": { - "name": "expansions_game_id_games_id_fk", - "tableFrom": "expansions", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "external_ids": { - "name": "external_ids", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "type": { - "name": "type", - "type": "external_id_type", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games": { - "name": "games", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "year_published": { - "name": "year_published", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_players": { - "name": "min_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_players": { - "name": "max_players", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "playtime": { - "name": "playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_playtime": { - "name": "min_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "max_playtime": { - "name": "max_playtime", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "min_age": { - "name": "min_age", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "image_url": { - "name": "image_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "thumb_url": { - "name": "thumb_url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "text_searchable_index": { - "name": "text_searchable_index", - "type": "tsvector", - "primaryKey": false, - "notNull": false - }, - "last_sync_at": { - "name": "last_sync_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": { - "text_searchable_idx": { - "name": "text_searchable_idx", - "columns": [ - "text_searchable_index" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "games_to_external_ids": { - "name": "games_to_external_ids", - "schema": "", - "columns": { - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "games_to_external_ids_game_id_games_id_fk": { - "name": "games_to_external_ids_game_id_games_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "games_to_external_ids_external_id_external_ids_id_fk": { - "name": "games_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "games_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "games_to_external_ids_game_id_external_id_pk": { - "name": "games_to_external_ids_game_id_external_id_pk", - "columns": [ - "game_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics": { - "name": "mechanics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "mechanics_to_external_ids": { - "name": "mechanics_to_external_ids", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_external_ids_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_external_ids_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_external_ids_external_id_external_ids_id_fk": { - "name": "mechanics_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "mechanics_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_external_ids_mechanic_id_external_id_pk": { - "name": "mechanics_to_external_ids_mechanic_id_external_id_pk", - "columns": [ - "mechanic_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "mechanics_to_games": { - "name": "mechanics_to_games", - "schema": "", - "columns": { - "mechanic_id": { - "name": "mechanic_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "mechanics_to_games_mechanic_id_mechanics_id_fk": { - "name": "mechanics_to_games_mechanic_id_mechanics_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "mechanics", - "columnsFrom": [ - "mechanic_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "mechanics_to_games_game_id_games_id_fk": { - "name": "mechanics_to_games_game_id_games_id_fk", - "tableFrom": "mechanics_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "mechanics_to_games_mechanic_id_game_id_pk": { - "name": "mechanics_to_games_mechanic_id_game_id_pk", - "columns": [ - "mechanic_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "password_reset_tokens": { - "name": "password_reset_tokens", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "password_reset_tokens_user_id_users_id_fk": { - "name": "password_reset_tokens_user_id_users_id_fk", - "tableFrom": "password_reset_tokens", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers": { - "name": "publishers", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "slug": { - "name": "slug", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "publishers_to_external_ids": { - "name": "publishers_to_external_ids", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "external_id": { - "name": "external_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_external_ids_publisher_id_publishers_id_fk": { - "name": "publishers_to_external_ids_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_external_ids_external_id_external_ids_id_fk": { - "name": "publishers_to_external_ids_external_id_external_ids_id_fk", - "tableFrom": "publishers_to_external_ids", - "tableTo": "external_ids", - "columnsFrom": [ - "external_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_external_ids_publisher_id_external_id_pk": { - "name": "publishers_to_external_ids_publisher_id_external_id_pk", - "columns": [ - "publisher_id", - "external_id" - ] - } - }, - "uniqueConstraints": {} - }, - "publishers_to_games": { - "name": "publishers_to_games", - "schema": "", - "columns": { - "publisher_id": { - "name": "publisher_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "publishers_to_games_publisher_id_publishers_id_fk": { - "name": "publishers_to_games_publisher_id_publishers_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "publishers", - "columnsFrom": [ - "publisher_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - }, - "publishers_to_games_game_id_games_id_fk": { - "name": "publishers_to_games_game_id_games_id_fk", - "tableFrom": "publishers_to_games", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "restrict", - "onUpdate": "cascade" - } - }, - "compositePrimaryKeys": { - "publishers_to_games_publisher_id_game_id_pk": { - "name": "publishers_to_games_publisher_id_game_id_pk", - "columns": [ - "publisher_id", - "game_id" - ] - } - }, - "uniqueConstraints": {} - }, - "roles": { - "name": "roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "roles_name_unique": { - "name": "roles_name_unique", - "nullsNotDistinct": false, - "columns": [ - "name" - ] - } - } - }, - "sessions": { - "name": "sessions", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ip_country": { - "name": "ip_country", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "ip_address": { - "name": "ip_address", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_roles": { - "name": "user_roles", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "role_id": { - "name": "role_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_roles_user_id_users_id_fk": { - "name": "user_roles_user_id_users_id_fk", - "tableFrom": "user_roles", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_roles_role_id_roles_id_fk": { - "name": "user_roles_role_id_roles_id_fk", - "tableFrom": "user_roles", - "tableTo": "roles", - "columnsFrom": [ - "role_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "username": { - "name": "username", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "hashed_password": { - "name": "hashed_password", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "email": { - "name": "email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "first_name": { - "name": "first_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "last_name": { - "name": "last_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "verified": { - "name": "verified", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "receive_email": { - "name": "receive_email", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "theme": { - "name": "theme", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false, - "default": "'system'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_username_unique": { - "name": "users_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - }, - "users_email_unique": { - "name": "users_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - } - } - }, - "wishlist_items": { - "name": "wishlist_items", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "wishlist_id": { - "name": "wishlist_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "game_id": { - "name": "game_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlist_items_wishlist_id_wishlists_id_fk": { - "name": "wishlist_items_wishlist_id_wishlists_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "wishlists", - "columnsFrom": [ - "wishlist_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "wishlist_items_game_id_games_id_fk": { - "name": "wishlist_items_game_id_games_id_fk", - "tableFrom": "wishlist_items", - "tableTo": "games", - "columnsFrom": [ - "game_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "wishlists": { - "name": "wishlists", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp (6) with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "wishlists_user_id_users_id_fk": { - "name": "wishlists_user_id_users_id_fk", - "tableFrom": "wishlists", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "external_id_type": { - "name": "external_id_type", - "values": { - "game": "game", - "category": "category", - "mechanic": "mechanic", - "publisher": "publisher", - "designer": "designer", - "artist": "artist" - } - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 370dbcd..3987f28 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -5,113 +5,78 @@ { "idx": 0, "version": "5", - "when": 1707437865821, - "tag": "0000_oval_wolverine", + "when": 1710268038944, + "tag": "0000_tricky_hitman", "breakpoints": true }, { "idx": 1, "version": "5", - "when": 1707438055782, - "tag": "0001_giant_tomorrow_man", + "when": 1710268191378, + "tag": "0001_numerous_dragon_man", "breakpoints": true }, { "idx": 2, "version": "5", - "when": 1707524139123, - "tag": "0002_sour_silverclaw", + "when": 1710268300740, + "tag": "0002_thick_lyja", "breakpoints": true }, { "idx": 3, "version": "5", - "when": 1707526808124, - "tag": "0003_thick_tinkerer", + "when": 1710268371021, + "tag": "0003_mushy_madame_masque", "breakpoints": true }, { "idx": 4, "version": "5", - "when": 1707932397672, - "tag": "0004_fancy_umar", + "when": 1710277583673, + "tag": "0004_glossy_enchantress", "breakpoints": true }, { "idx": 5, "version": "5", - "when": 1707932466413, - "tag": "0005_uneven_lifeguard", + "when": 1710366724519, + "tag": "0005_light_captain_marvel", "breakpoints": true }, { "idx": 6, "version": "5", - "when": 1707932522909, - "tag": "0006_light_corsair", + "when": 1710905422967, + "tag": "0006_wild_stone_men", "breakpoints": true }, { "idx": 7, "version": "5", - "when": 1707951501716, - "tag": "0007_same_valeria_richards", + "when": 1710905572670, + "tag": "0007_large_miss_america", "breakpoints": true }, { "idx": 8, "version": "5", - "when": 1708105454143, - "tag": "0008_complete_manta", + "when": 1711757183163, + "tag": "0008_amusing_franklin_richards", "breakpoints": true }, { "idx": 9, "version": "5", - "when": 1708105890146, - "tag": "0009_equal_christian_walker", + "when": 1711868447607, + "tag": "0009_gray_carlie_cooper", "breakpoints": true }, { "idx": 10, "version": "5", - "when": 1708243232524, - "tag": "0010_flat_mister_sinister", - "breakpoints": true - }, - { - "idx": 11, - "version": "5", - "when": 1708330668971, - "tag": "0011_gigantic_mister_sinister", - "breakpoints": true - }, - { - "idx": 12, - "version": "5", - "when": 1708330799655, - "tag": "0012_dizzy_lethal_legion", - "breakpoints": true - }, - { - "idx": 13, - "version": "5", - "when": 1708453431550, - "tag": "0013_clever_monster_badoon", - "breakpoints": true - }, - { - "idx": 14, - "version": "5", - "when": 1708479971410, - "tag": "0014_organic_morlocks", - "breakpoints": true - }, - { - "idx": 15, - "version": "5", - "when": 1709344835732, - "tag": "0015_awesome_gabe_jones", + "when": 1712271520175, + "tag": "0010_wakeful_metal_master", "breakpoints": true } ] diff --git a/package.json b/package.json index 685d5d9..3ba3a05 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,11 @@ "private": "true", "scripts": { "dev": "NODE_OPTIONS=\"--inspect\" vite dev --host", - "build": "prisma generate && vite build", + "build": "vite build", "package": "svelte-kit package", "preview": "vite preview", "test": "playwright test", "test:ui": "svelte-kit sync && playwright test --ui", - "postinstall": "prisma generate", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "test:unit": "vitest", @@ -21,56 +20,53 @@ "seed": "tsx ./src/seed.ts", "push": "drizzle-kit push:pg" }, - "prisma": { - "seed": "node --loader ts-node/esm prisma/seed.ts" - }, "devDependencies": { "@melt-ui/pp": "^0.3.0", - "@melt-ui/svelte": "^0.75.2", - "@playwright/test": "^1.42.0", - "@resvg/resvg-js": "^2.6.0", - "@sveltejs/adapter-auto": "^3.1.1", - "@sveltejs/enhanced-img": "^0.1.8", - "@sveltejs/kit": "^2.5.2", + "@melt-ui/svelte": "^0.76.3", + "@playwright/test": "^1.43.0", + "@resvg/resvg-js": "^2.6.2", + "@sveltejs/adapter-auto": "^3.2.0", + "@sveltejs/enhanced-img": "^0.1.9", + "@sveltejs/kit": "^2.5.5", "@sveltejs/vite-plugin-svelte": "^3.0.2", "@types/cookie": "^0.6.0", - "@types/node": "^20.11.24", - "@types/pg": "^8.11.2", + "@types/node": "^20.12.6", + "@types/pg": "^8.11.5", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "autoprefixer": "^10.4.18", + "autoprefixer": "^10.4.19", "dotenv": "^16.4.5", "drizzle-kit": "^0.20.14", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.35.1", + "eslint-plugin-svelte": "^2.36.0", "just-clone": "^6.2.0", "just-debounce-it": "^3.2.0", - "postcss": "^8.4.35", - "postcss-import": "^16.0.1", + "postcss": "^8.4.38", + "postcss-import": "^16.1.0", "postcss-load-config": "^5.0.3", - "postcss-preset-env": "^9.4.0", + "postcss-preset-env": "^9.5.4", "prettier": "^3.2.5", "prettier-plugin-svelte": "^3.2.2", - "prisma": "^5.9.1", - "sass": "^1.71.1", + "sass": "^1.74.1", "satori": "^0.10.13", "satori-html": "^0.3.2", "svelte": "^4.2.12", - "svelte-check": "^3.6.6", - "svelte-meta-tags": "^3.1.1", + "svelte-check": "^3.6.9", + "svelte-headless-table": "^0.18.2", + "svelte-meta-tags": "^3.1.2", "svelte-preprocess": "^5.1.3", "svelte-sequential-preprocessor": "^2.0.1", - "sveltekit-flash-message": "^2.4.2", + "sveltekit-flash-message": "^2.4.4", "sveltekit-rate-limiter": "^0.4.3", - "sveltekit-superforms": "^2.7.0", - "tailwindcss": "^3.4.1", + "sveltekit-superforms": "^2.12.4", + "tailwindcss": "^3.4.3", "ts-node": "^10.9.2", "tslib": "^2.6.1", - "tsx": "^4.7.1", - "typescript": "^5.3.3", - "vite": "^5.1.5", - "vitest": "^1.3.1", + "tsx": "^4.7.2", + "typescript": "^5.4.4", + "vite": "^5.2.8", + "vitest": "^1.4.0", "zod": "^3.22.4" }, "type": "module", @@ -82,43 +78,41 @@ "@fontsource/fira-mono": "^5.0.12", "@iconify-icons/line-md": "^1.2.26", "@iconify-icons/mdi": "^1.2.47", - "@lucia-auth/adapter-drizzle": "^1.0.2", - "@lucia-auth/adapter-prisma": "4.0.0", + "@lucia-auth/adapter-drizzle": "^1.0.7", "@lukeed/uuid": "^2.0.1", "@neondatabase/serverless": "^0.9.0", "@paralleldrive/cuid2": "^2.2.2", "@planetscale/database": "^1.16.0", - "@prisma/client": "^5.9.1", "@sentry/sveltekit": "^7.100.1", - "@sveltejs/adapter-vercel": "^5.1.0", + "@sveltejs/adapter-vercel": "^5.2.0", "@types/feather-icons": "^4.29.4", "@vercel/og": "^0.5.20", - "bits-ui": "^0.19.3", + "bits-ui": "^0.19.7", "boardgamegeekclient": "^1.9.1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "cookie": "^0.6.0", - "drizzle-orm": "^0.29.4", + "drizzle-orm": "^0.30.7", "feather-icons": "^4.29.1", "formsnap": "^0.5.1", "html-entities": "^2.5.2", "iconify-icon": "^2.0.0", + "just-capitalize": "^3.2.0", "just-kebab-case": "^4.2.0", "loader": "^2.1.1", - "lucia": "3.0.1", - "lucide-svelte": "^0.344.0", - "mysql2": "^3.9.2", - "nanoid": "^5.0.6", - "open-props": "^1.6.20", - "oslo": "^1.1.3", - "pg": "^8.11.3", - "postgres": "^3.4.3", + "lucia": "3.1.1", + "lucide-svelte": "^0.358.0", + "open-props": "^1.7.2", + "oslo": "^1.2.0", + "pg": "^8.11.5", + "postgres": "^3.4.4", + "qrcode": "^1.5.3", "radix-svelte": "^0.9.0", "svelte-french-toast": "^1.2.0", "svelte-lazy-loader": "^1.0.0", - "tailwind-merge": "^2.2.1", - "tailwind-variants": "^0.2.0", + "tailwind-merge": "^2.2.2", + "tailwind-variants": "^0.2.1", "tailwindcss-animate": "^1.0.6", - "zod-to-json-schema": "^3.22.4" + "zod-to-json-schema": "^3.22.5" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc7b27d..3324c92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,11 +15,8 @@ dependencies: specifier: ^1.2.47 version: 1.2.48 '@lucia-auth/adapter-drizzle': - specifier: ^1.0.2 - version: 1.0.2(lucia@3.0.1) - '@lucia-auth/adapter-prisma': - specifier: 4.0.0 - version: 4.0.0(@prisma/client@5.9.1)(lucia@3.0.1) + specifier: ^1.0.7 + version: 1.0.7(lucia@3.1.1) '@lukeed/uuid': specifier: ^2.0.1 version: 2.0.1 @@ -32,15 +29,12 @@ dependencies: '@planetscale/database': specifier: ^1.16.0 version: 1.16.0 - '@prisma/client': - specifier: ^5.9.1 - version: 5.9.1(prisma@5.9.1) '@sentry/sveltekit': specifier: ^7.100.1 - version: 7.100.1(@sveltejs/kit@2.5.2)(svelte@4.2.12) + version: 7.100.1(@sveltejs/kit@2.5.5)(svelte@4.2.12) '@sveltejs/adapter-vercel': - specifier: ^5.1.0 - version: 5.1.0(@sveltejs/kit@2.5.2) + specifier: ^5.2.0 + version: 5.2.0(@sveltejs/kit@2.5.5) '@types/feather-icons': specifier: ^4.29.4 version: 4.29.4 @@ -48,8 +42,8 @@ dependencies: specifier: ^0.5.20 version: 0.5.20 bits-ui: - specifier: ^0.19.3 - version: 0.19.3(svelte@4.2.12) + specifier: ^0.19.7 + version: 0.19.7(svelte@4.2.12) boardgamegeekclient: specifier: ^1.9.1 version: 1.9.1 @@ -63,20 +57,23 @@ dependencies: specifier: ^0.6.0 version: 0.6.0 drizzle-orm: - specifier: ^0.29.4 - version: 0.29.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.2)(mysql2@3.9.2)(pg@8.11.3)(postgres@3.4.3) + specifier: ^0.30.7 + version: 0.30.7(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.5)(pg@8.11.5)(postgres@3.4.4) feather-icons: specifier: ^4.29.1 version: 4.29.1 formsnap: specifier: ^0.5.1 - version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.7.0) + version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.12.4) html-entities: specifier: ^2.5.2 version: 2.5.2 iconify-icon: specifier: ^2.0.0 version: 2.0.0 + just-capitalize: + specifier: ^3.2.0 + version: 3.2.0 just-kebab-case: specifier: ^4.2.0 version: 4.2.0 @@ -84,29 +81,26 @@ dependencies: specifier: ^2.1.1 version: 2.1.1 lucia: - specifier: 3.0.1 - version: 3.0.1 + specifier: 3.1.1 + version: 3.1.1 lucide-svelte: - specifier: ^0.344.0 - version: 0.344.0(svelte@4.2.12) - mysql2: - specifier: ^3.9.2 - version: 3.9.2 - nanoid: - specifier: ^5.0.6 - version: 5.0.6 + specifier: ^0.358.0 + version: 0.358.0(svelte@4.2.12) open-props: - specifier: ^1.6.20 - version: 1.6.20 + specifier: ^1.7.2 + version: 1.7.2 oslo: - specifier: ^1.1.3 - version: 1.1.3 + specifier: ^1.2.0 + version: 1.2.0 pg: - specifier: ^8.11.3 - version: 8.11.3 + specifier: ^8.11.5 + version: 8.11.5 postgres: - specifier: ^3.4.3 - version: 3.4.3 + specifier: ^3.4.4 + version: 3.4.4 + qrcode: + specifier: ^1.5.3 + version: 1.5.3 radix-svelte: specifier: ^0.9.0 version: 0.9.0(svelte@4.2.12) @@ -117,61 +111,61 @@ dependencies: specifier: ^1.0.0 version: 1.0.0 tailwind-merge: - specifier: ^2.2.1 - version: 2.2.1 + specifier: ^2.2.2 + version: 2.2.2 tailwind-variants: - specifier: ^0.2.0 - version: 0.2.0(tailwindcss@3.4.1) + specifier: ^0.2.1 + version: 0.2.1(tailwindcss@3.4.3) tailwindcss-animate: specifier: ^1.0.6 - version: 1.0.7(tailwindcss@3.4.1) + version: 1.0.7(tailwindcss@3.4.3) zod-to-json-schema: - specifier: ^3.22.4 - version: 3.22.4(zod@3.22.4) + specifier: ^3.22.5 + version: 3.22.5(zod@3.22.4) devDependencies: '@melt-ui/pp': specifier: ^0.3.0 - version: 0.3.0(@melt-ui/svelte@0.75.2)(svelte@4.2.12) + version: 0.3.0(@melt-ui/svelte@0.76.3)(svelte@4.2.12) '@melt-ui/svelte': - specifier: ^0.75.2 - version: 0.75.2(svelte@4.2.12) + specifier: ^0.76.3 + version: 0.76.3(svelte@4.2.12) '@playwright/test': - specifier: ^1.42.0 - version: 1.42.0 + specifier: ^1.43.0 + version: 1.43.0 '@resvg/resvg-js': - specifier: ^2.6.0 - version: 2.6.0 + specifier: ^2.6.2 + version: 2.6.2 '@sveltejs/adapter-auto': - specifier: ^3.1.1 - version: 3.1.1(@sveltejs/kit@2.5.2) + specifier: ^3.2.0 + version: 3.2.0(@sveltejs/kit@2.5.5) '@sveltejs/enhanced-img': - specifier: ^0.1.8 - version: 0.1.8(svelte@4.2.12) + specifier: ^0.1.9 + version: 0.1.9(svelte@4.2.12) '@sveltejs/kit': - specifier: ^2.5.2 - version: 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + specifier: ^2.5.5 + version: 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.2 - version: 3.0.2(svelte@4.2.12)(vite@5.1.5) + version: 3.0.2(svelte@4.2.12)(vite@5.2.8) '@types/cookie': specifier: ^0.6.0 version: 0.6.0 '@types/node': - specifier: ^20.11.24 - version: 20.11.24 + specifier: ^20.12.6 + version: 20.12.6 '@types/pg': - specifier: ^8.11.2 - version: 8.11.2 + specifier: ^8.11.5 + version: 8.11.5 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.4) '@typescript-eslint/parser': specifier: ^6.21.0 - version: 6.21.0(eslint@8.57.0)(typescript@5.3.3) + version: 6.21.0(eslint@8.57.0)(typescript@5.4.4) autoprefixer: - specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.35) + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.38) dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -185,8 +179,8 @@ devDependencies: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.35.1(eslint@8.57.0)(svelte@4.2.12)(ts-node@10.9.2) + specifier: ^2.36.0 + version: 2.36.0(eslint@8.57.0)(svelte@4.2.12)(ts-node@10.9.2) just-clone: specifier: ^6.2.0 version: 6.2.0 @@ -194,29 +188,26 @@ devDependencies: specifier: ^3.2.0 version: 3.2.0 postcss: - specifier: ^8.4.35 - version: 8.4.35 + specifier: ^8.4.38 + version: 8.4.38 postcss-import: - specifier: ^16.0.1 - version: 16.0.1(postcss@8.4.35) + specifier: ^16.1.0 + version: 16.1.0(postcss@8.4.38) postcss-load-config: specifier: ^5.0.3 - version: 5.0.3(postcss@8.4.35) + version: 5.0.3(postcss@8.4.38) postcss-preset-env: - specifier: ^9.4.0 - version: 9.4.0(postcss@8.4.35) + specifier: ^9.5.4 + version: 9.5.4(postcss@8.4.38) prettier: specifier: ^3.2.5 version: 3.2.5 prettier-plugin-svelte: specifier: ^3.2.2 version: 3.2.2(prettier@3.2.5)(svelte@4.2.12) - prisma: - specifier: ^5.9.1 - version: 5.9.1 sass: - specifier: ^1.71.1 - version: 1.71.1 + specifier: ^1.74.1 + version: 1.74.1 satori: specifier: ^0.10.13 version: 0.10.13 @@ -227,47 +218,50 @@ devDependencies: specifier: ^4.2.12 version: 4.2.12 svelte-check: - specifier: ^3.6.6 - version: 3.6.6(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12) + specifier: ^3.6.9 + version: 3.6.9(postcss-load-config@5.0.3)(postcss@8.4.38)(sass@1.74.1)(svelte@4.2.12) + svelte-headless-table: + specifier: ^0.18.2 + version: 0.18.2(svelte@4.2.12) svelte-meta-tags: - specifier: ^3.1.1 - version: 3.1.1(svelte@4.2.12)(typescript@5.3.3) + specifier: ^3.1.2 + version: 3.1.2(svelte@4.2.12)(typescript@5.4.4) svelte-preprocess: specifier: ^5.1.3 - version: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) + version: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.38)(sass@1.74.1)(svelte@4.2.12)(typescript@5.4.4) svelte-sequential-preprocessor: specifier: ^2.0.1 version: 2.0.1 sveltekit-flash-message: - specifier: ^2.4.2 - version: 2.4.2(@sveltejs/kit@2.5.2)(svelte@4.2.12) + specifier: ^2.4.4 + version: 2.4.4(@sveltejs/kit@2.5.5)(svelte@4.2.12) sveltekit-rate-limiter: specifier: ^0.4.3 - version: 0.4.3(@sveltejs/kit@2.5.2) + version: 0.4.3(@sveltejs/kit@2.5.5) sveltekit-superforms: - specifier: ^2.7.0 - version: 2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12) + specifier: ^2.12.4 + version: 2.12.4(@sveltejs/kit@2.5.5)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12) tailwindcss: - specifier: ^3.4.1 - version: 3.4.1(ts-node@10.9.2) + specifier: ^3.4.3 + version: 3.4.3(ts-node@10.9.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.11.24)(typescript@5.3.3) + version: 10.9.2(@types/node@20.12.6)(typescript@5.4.4) tslib: specifier: ^2.6.1 version: 2.6.2 tsx: - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.7.2 + version: 4.7.2 typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.4 + version: 5.4.4 vite: - specifier: ^5.1.5 - version: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + specifier: ^5.2.8 + version: 5.2.8(@types/node@20.12.6)(sass@1.74.1) vitest: - specifier: ^1.3.1 - version: 1.3.1(@types/node@20.11.24)(sass@1.71.1) + specifier: ^1.4.0 + version: 1.4.0(@types/node@20.12.6)(sass@1.74.1) zod: specifier: ^3.22.4 version: 3.22.4 @@ -308,8 +302,8 @@ packages: '@babel/types': 7.23.0 dev: false - /@babel/runtime@7.23.9: - resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -330,420 +324,429 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.9 - /@csstools/cascade-layer-name-parser@1.0.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-xHxXavWvXB5nAA9IvZtjEzkONM3hPXpxqYK4cEw60LcqPiFjq7ZlEFxOyYFPrG4UdANKtnucNtRVDy7frjq6AA==} + /@csstools/cascade-layer-name-parser@1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/color-helpers@4.0.0: - resolution: {integrity: sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w==} + /@csstools/color-helpers@4.1.0: + resolution: {integrity: sha512-pWRKF6cDwget8HowIIf2MqEmqIca/cf8/jO4b3PRtUF5EfQXYMtBIKycXB4yXTCUmwLKOoRZAzh/hjnc7ywOIg==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/css-calc@1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-+7bUzB5I4cI97tKmBJA8ilTl/YRo6VAOdlrnd/4x2NyK60nvYurGKa5TZpE1zcgIrTC97iJRE0/V65feyFytuw==} + /@csstools/css-calc@1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-color-parser@1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-5GEkuuUxD5dael3xoWjyf7gAPAi4pwm8X8JW/nUMhxntGY4Wo4Lp7vKlex4V5ZgTfAoov14rZFsZyOantdTatg==} + /@csstools/css-color-parser@1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-pQPUPo32HW3/NuZxrwr3VJHE+vGqSTVI5gK4jGbuJ7eOFUrsTmZikXcVdInCVWOvuxK5xbCzwDWoTlZUCAKN+A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/color-helpers': 4.0.0 - '@csstools/css-calc': 1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/color-helpers': 4.1.0 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-parser-algorithms@2.6.0(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==} + /@csstools/css-parser-algorithms@2.6.1(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-tokenizer@2.2.3: - resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} + /@csstools/css-tokenizer@2.2.4: + resolution: {integrity: sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser@2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==} + /@csstools/media-query-list-parser@2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/postcss-cascade-layers@4.0.3(postcss@8.4.35): - resolution: {integrity: sha512-RbkQoOH23yGhWVetgBTwFgIOHEyU2tKMN7blTz/YAKKabR6tr9pP7mYS23Q9snFY2hr8WSaV8Le64KdM9BtUSA==} + /@csstools/postcss-cascade-layers@4.0.4(postcss@8.4.38): + resolution: {integrity: sha512-MKErv8lpEwVmAcAwidY1Kfd3oWrh2Q14kxHs9xn26XzjP/PrcdngWq63lJsZeMlBY7o+WlEOeE+FP6zPzeY2uw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-color-function@3.0.10(postcss@8.4.35): - resolution: {integrity: sha512-jxiXmSl4ZYX8KewFjL5ef6of9uW73VkaHeDb2tqb5q4ZDPYxjusNX1KJ8UXY8+7ydqS5QBo42tVMrSMGy+rDmw==} + /@csstools/postcss-color-function@3.0.13(postcss@8.4.38): + resolution: {integrity: sha512-gM24cIPU45HSPJ2zllz7VKjS1OKQS1sKOMI7Wsw8gFyXSGAGrxhYo++McylOqOXd8ecMaKxKQMUJqJVibvJYig==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-color-mix-function@2.0.10(postcss@8.4.35): - resolution: {integrity: sha512-zeD856+FDCUjB077pPS+Z9OnTQnqpiJrao3TW+sasCb/gJ3vZCX7sRSRFsRUo0/MntTtJu9hkKv9eMkFmfjydA==} + /@csstools/postcss-color-mix-function@2.0.13(postcss@8.4.38): + resolution: {integrity: sha512-mD8IIfGVeWkN1H1wfCqYePOg4cDnVrOXm4P0OlYcvKriq6sImGCGShv/2D88q6s3iUlLXfUBES+DUjLVjDMhnw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-exponential-functions@1.0.4(postcss@8.4.35): - resolution: {integrity: sha512-frMf0CFVnZoGEKAHlxLy3s4g/tpjyFn5+A+h895UJNm9Uc+ewGT7+EeK7Kh9IHH4pD4FkaGW1vOQtER00PLurQ==} + /@csstools/postcss-exponential-functions@1.0.5(postcss@8.4.38): + resolution: {integrity: sha512-7S7I7KgwHWQYzJJAoIjRtUf7DQs1dxipeg1A6ikZr0PYapNJX7UHz0evlpE67SQqYj1xBs70gpG7xUv3uLp4PA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.35 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 dev: true - /@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.35): + /@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.38): resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gamut-mapping@1.0.3(postcss@8.4.35): - resolution: {integrity: sha512-P0+ude1KyCy9LXOe2pHJmpcXK4q/OQbr2Sn2wQSssMw0rALGmny2MfHiCqEu8n6mf2cN6lWDZdzY8enBk8WHXQ==} + /@csstools/postcss-gamut-mapping@1.0.6(postcss@8.4.38): + resolution: {integrity: sha512-qGFpHU9cRf9qqkbHh9cWMTlBtGi/ujPgP/znQdwkbB4TgDR1ddI5wRRrksBsx64sfoUSlIEd70bxXzD9FtfdLg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 dev: true - /@csstools/postcss-gradients-interpolation-method@4.0.10(postcss@8.4.35): - resolution: {integrity: sha512-PwKOxVuX8lo52bPtPeKjaIp6oH2EzhcBxCndRcvGZKsqZYQ35k9A5G4yihZ+wp7PoxPqDNiXuhQsvQG2lqMpOA==} + /@csstools/postcss-gradients-interpolation-method@4.0.14(postcss@8.4.38): + resolution: {integrity: sha512-VMWC3xtpchHJoRBb/fs1gJR/5nHopX+0GwwmgdCI1DjROtfWUKIW0nv8occ922Gv0/Lk93XBtYBv8JttVBMZUQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-hwb-function@3.0.9(postcss@8.4.35): - resolution: {integrity: sha512-S3/Z+mGHWIKAex7DLsHFDiku5lBEK34avT2My6sGPNCXB38TZjrKI0rd7JdN9oulem5sn+CU7oONyIftui24oQ==} + /@csstools/postcss-hwb-function@3.0.12(postcss@8.4.38): + resolution: {integrity: sha512-90kIs+FsM6isAXLVoFHTTl4h0J6g1J1M6ahpIjAs6/k7a2A9FB/q+l0MHpLre0ZiPlBf2y3e1j4L+79vml7kJw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-ic-unit@3.0.4(postcss@8.4.35): - resolution: {integrity: sha512-OB6ojl33/TQHhjVx1NI+n3EnYbdUM6Q/mSUv3WFATdcz7IrH/CmBaZt7P1R6j1Xdp58thIa6jm4Je7saGs+2AA==} + /@csstools/postcss-ic-unit@3.0.6(postcss@8.4.38): + resolution: {integrity: sha512-fHaU9C/sZPauXMrzPitZ/xbACbvxbkPpHoUgB9Kw5evtsBWdVkVrajOyiT9qX7/c+G1yjApoQjP1fQatldsy9w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-initial@1.0.1(postcss@8.4.35): + /@csstools/postcss-initial@1.0.1(postcss@8.4.38): resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /@csstools/postcss-is-pseudo-class@4.0.5(postcss@8.4.35): - resolution: {integrity: sha512-qG3MI7IN3KY9UwdaE9E7G7sFydscVW7nAj5OGwaBP9tQPEEVdxXTGI+l1ZW5EUpZFSj+u3q/22fH5+8HI72+Bg==} + /@csstools/postcss-is-pseudo-class@4.0.6(postcss@8.4.38): + resolution: {integrity: sha512-HilOhAsMpFheMYkuaREZx+CGa4hsG6kQdzwXSsuqKDFzYz2eIMP213+3dH/vUbPXaWrzqLKr8m3i0dgYPoh7vg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-light-dark-function@1.0.0(postcss@8.4.35): - resolution: {integrity: sha512-KHo633V16DGo6tmpr1ARAwO73CPBNmDI3PfSQYe7ZBMiv60WEizbcEroK75fHjxKYJ4tj9uCCzp5sYG4cEUqqw==} + /@csstools/postcss-light-dark-function@1.0.3(postcss@8.4.38): + resolution: {integrity: sha512-izW8hvhOqJlarLcGXO5PSylW9pQS3fytmhRdx2/e1oZFi15vs7ZShOHcREHJ3FfGdYqDA10cP9uhH0A3hmm1Rw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.35): + /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.38): resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.35): + /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.38): resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.35): + /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.38): resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.35): + /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.38): resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@2.0.6(postcss@8.4.35): - resolution: {integrity: sha512-6hV0ngZh8J7HqNY3kyt+z5ABN/XE18qvrU7ne4YSkKfltrWDnQgGiW/Q+h7bdQz8/W5juAefcdCCAJUIBE7erg==} + /@csstools/postcss-logical-viewport-units@2.0.7(postcss@8.4.38): + resolution: {integrity: sha512-L4G3zsp/bnU0+WXUyysihCUH14LkfMgUJsS9vKz3vCYbVobOTqQRoNXnEPpyNp8WYyolLqAWbGGJhVu8J6u2OQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-tokenizer': 2.2.3 - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-media-minmax@1.1.3(postcss@8.4.35): - resolution: {integrity: sha512-W9AFRQSLvT+Dxtp20AewzGTUxzkJ21XSKzqRALwQdAv0uJGXkR76qgdhkoX0L/tcV4gXtgDfVtGYL/x2Nz/M5Q==} + /@csstools/postcss-media-minmax@1.1.4(postcss@8.4.38): + resolution: {integrity: sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.35 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.6(postcss@8.4.35): - resolution: {integrity: sha512-awc2qenSDvx6r+w6G9xxENp+LsbvHC8mMMV23KYmk4pR3YL8JxeKPDSiDhmqd93FQ9nNNDc/CaCQEcvP+GV4rw==} + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.7(postcss@8.4.38): + resolution: {integrity: sha512-HBDAQw1K0NilcHGMUHv8jzf2mpOtcWTVKtuY3AeZ5TS1uyWWNVi5/yuA/tREPLU9WifNdqHQ+rfbsV/8zTIkTg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.35 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 dev: true - /@csstools/postcss-nested-calc@3.0.2(postcss@8.4.35): + /@csstools/postcss-nested-calc@3.0.2(postcss@8.4.38): resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.35): + /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.38): resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@3.0.10(postcss@8.4.35): - resolution: {integrity: sha512-s9trs1c+gUMtaTtwrrIpdVQkUbRuwi6bQ9rBHaqwt4kd3kEnEYfP85uLY1inFx6Rt8OM2XVg3PSYbfnFSAO51A==} + /@csstools/postcss-oklab-function@3.0.13(postcss@8.4.38): + resolution: {integrity: sha512-xbzMmukDFAwCt2+279io7ZiamZj87s6cnU3UgKB3G+NMpRX9A6uvN8xlnTLCe384hqg6hix5vlOmwkxqACb5pg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-progressive-custom-properties@3.1.0(postcss@8.4.35): - resolution: {integrity: sha512-Mfb1T1BHa6pktLI+poMEHI7Q+VYvAsdwJZPFsSkIB2ZUsawCiPxXLw06BKSVPITxFlaY/FEUzfpyOTfX9YCE2w==} + /@csstools/postcss-progressive-custom-properties@3.2.0(postcss@8.4.38): + resolution: {integrity: sha512-BZlirVxCRgKlE7yVme+Xvif72eTn1MYXj8oZ4Knb+jwaH4u3AN1DjbhM7j86RP5vvuAOexJ4JwfifYYKWMN/QQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@2.0.10(postcss@8.4.35): - resolution: {integrity: sha512-IkTIk9Eq2VegSN4lgsljGY8boyfX3l3Pw58e+R9oyPe/Ye7r3NwuiQ3w0nkXoQ+RC+d240V6n7eZme2mEPqQvg==} + /@csstools/postcss-relative-color-syntax@2.0.13(postcss@8.4.38): + resolution: {integrity: sha512-mENWPNcHdiEYtjHFfZP9U1jNukQgFpSQ7wvTvwiadK3qgNBiSl0vMSinM9kKsGsJLTHQ0LEAqWLHurU52I4Jeg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.35): + /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.38): resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-stepped-value-functions@3.0.5(postcss@8.4.35): - resolution: {integrity: sha512-B8K8RaTrYVZLxbNzVUvFO3SlCDJDaUTAO7KRth05fa7f01ufPvb6ztdBuxSoRwOtmNp8iROxPJHOemWo2kBBtA==} + /@csstools/postcss-stepped-value-functions@3.0.6(postcss@8.4.38): + resolution: {integrity: sha512-rnyp8tWRuBXERTHVdB5hjUlif5dQgPcyN+BX55wUnYpZ3LN9QPfK2Z3/HUZymwyou8Gg6vhd6X2W+g1pLq1jYg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.35 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 dev: true - /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.35): - resolution: {integrity: sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ==} + /@csstools/postcss-text-decoration-shorthand@3.0.5(postcss@8.4.38): + resolution: {integrity: sha512-qKxXpD0TYINkUtWDN1RHdeWKtZCzEv5j3UMT/ZGqyY27icwCFw7iKO0bUeLSHjYFBqhurCWvoOsa9REqLdrNDw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 4.0.0 - postcss: 8.4.35 + '@csstools/color-helpers': 4.1.0 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@3.0.5(postcss@8.4.35): - resolution: {integrity: sha512-RhBfQ0TsBudyPuoo8pXKdfQuUiQxMU/Sc5GyV57bWk93JbUHXq6b4CdPx+B/tHUeFKvocVJn/e2jbu96rh0d3Q==} + /@csstools/postcss-trigonometric-functions@3.0.6(postcss@8.4.38): + resolution: {integrity: sha512-i5Zd0bMJooZAn+ZcDmPij2WCkcOJJJ6opzK+QeDjxbMrYmoGQl0CY8FDHdeQyBF1Nly+Q0Fq3S7QfdNLKBBaCg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.7(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.35 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 dev: true - /@csstools/postcss-unset-value@3.0.1(postcss@8.4.35): + /@csstools/postcss-unset-value@3.0.1(postcss@8.4.38): resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15): - resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} + /@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 dependencies: - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/utilities@1.0.0(postcss@8.4.35): + /@csstools/selector-specificity@3.0.3(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.16 + dev: true + + /@csstools/utilities@1.0.0(postcss@8.4.38): resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true /@drizzle-team/studio@0.0.39: @@ -760,6 +763,14 @@ packages: dev: false optional: true + /@emnapi/core@1.1.1: + resolution: {integrity: sha512-eu4KjHfXg3I+UUR7vSuwZXpRo4c8h4Rtb5Lu2F7Z4JqJFl/eidquONEBiRs6viXKpWBC3BaJBy68xGJ2j56idw==} + requiresBuild: true + dependencies: + tslib: 2.6.2 + dev: false + optional: true + /@emnapi/runtime@0.45.0: resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} requiresBuild: true @@ -767,6 +778,14 @@ packages: tslib: 2.6.2 optional: true + /@emnapi/runtime@1.1.1: + resolution: {integrity: sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==} + requiresBuild: true + dependencies: + tslib: 2.6.2 + dev: false + optional: true + /@esbuild-kit/core-utils@3.3.2: resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} dependencies: @@ -787,6 +806,7 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true + dev: true optional: true /@esbuild/aix-ppc64@0.19.12: @@ -795,10 +815,11 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true + dev: false optional: true - /@esbuild/aix-ppc64@0.20.1: - resolution: {integrity: sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -820,6 +841,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm64@0.19.12: @@ -828,10 +850,11 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: false optional: true - /@esbuild/android-arm64@0.20.1: - resolution: {integrity: sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==} + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -853,6 +876,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm@0.19.12: @@ -861,10 +885,11 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: false optional: true - /@esbuild/android-arm@0.20.1: - resolution: {integrity: sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==} + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -886,6 +911,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-x64@0.19.12: @@ -894,10 +920,11 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: false optional: true - /@esbuild/android-x64@0.20.1: - resolution: {integrity: sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==} + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -919,6 +946,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-arm64@0.19.12: @@ -927,10 +955,11 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: false optional: true - /@esbuild/darwin-arm64@0.20.1: - resolution: {integrity: sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==} + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -952,6 +981,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64@0.19.12: @@ -960,10 +990,11 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: false optional: true - /@esbuild/darwin-x64@0.20.1: - resolution: {integrity: sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==} + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -985,6 +1016,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64@0.19.12: @@ -993,10 +1025,11 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: false optional: true - /@esbuild/freebsd-arm64@0.20.1: - resolution: {integrity: sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==} + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1018,6 +1051,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64@0.19.12: @@ -1026,10 +1060,11 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: false optional: true - /@esbuild/freebsd-x64@0.20.1: - resolution: {integrity: sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==} + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1051,6 +1086,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64@0.19.12: @@ -1059,10 +1095,11 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-arm64@0.20.1: - resolution: {integrity: sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==} + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1084,6 +1121,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm@0.19.12: @@ -1092,10 +1130,11 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-arm@0.20.1: - resolution: {integrity: sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==} + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1117,6 +1156,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32@0.19.12: @@ -1125,10 +1165,11 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-ia32@0.20.1: - resolution: {integrity: sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==} + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1150,6 +1191,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64@0.19.12: @@ -1158,10 +1200,11 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-loong64@0.20.1: - resolution: {integrity: sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==} + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1183,6 +1226,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el@0.19.12: @@ -1191,10 +1235,11 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-mips64el@0.20.1: - resolution: {integrity: sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==} + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1216,6 +1261,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64@0.19.12: @@ -1224,10 +1270,11 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-ppc64@0.20.1: - resolution: {integrity: sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==} + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1249,6 +1296,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64@0.19.12: @@ -1257,10 +1305,11 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-riscv64@0.20.1: - resolution: {integrity: sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==} + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1282,6 +1331,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x@0.19.12: @@ -1290,10 +1340,11 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-s390x@0.20.1: - resolution: {integrity: sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==} + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1315,6 +1366,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-x64@0.19.12: @@ -1323,10 +1375,11 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true - /@esbuild/linux-x64@0.20.1: - resolution: {integrity: sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==} + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1348,6 +1401,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64@0.19.12: @@ -1356,10 +1410,11 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: false optional: true - /@esbuild/netbsd-x64@0.20.1: - resolution: {integrity: sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==} + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1381,6 +1436,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64@0.19.12: @@ -1389,10 +1445,11 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: false optional: true - /@esbuild/openbsd-x64@0.20.1: - resolution: {integrity: sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==} + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1414,6 +1471,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64@0.19.12: @@ -1422,10 +1480,11 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: false optional: true - /@esbuild/sunos-x64@0.20.1: - resolution: {integrity: sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1447,6 +1506,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64@0.19.12: @@ -1455,10 +1515,11 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: false optional: true - /@esbuild/win32-arm64@0.20.1: - resolution: {integrity: sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1480,6 +1541,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32@0.19.12: @@ -1488,10 +1550,11 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: false optional: true - /@esbuild/win32-ia32@0.20.1: - resolution: {integrity: sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1513,6 +1576,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-x64@0.19.12: @@ -1521,10 +1585,11 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: false optional: true - /@esbuild/win32-x64@0.20.1: - resolution: {integrity: sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==} + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1609,8 +1674,8 @@ packages: resolution: {integrity: sha512-1uFRjqCcxVv4F31PjyLm8o4oNlT5ywwh6OwcDGkZbafOeFZHXekvholS9IlfZkRsZvVhSbFRHT/5iDib4KTtpg==} dev: false - /@gcornut/valibot-json-schema@0.0.25(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(valibot@0.29.0): - resolution: {integrity: sha512-JlOmghA8OMM8B+3lLSWrZqce4FM5SrCO/bmYGZQz3ZYPja/mXhLYa2qEOFUsBaz24prv04un3zXIUpJzgglAkw==} + /@gcornut/valibot-json-schema@0.0.27(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(valibot@0.30.0): + resolution: {integrity: sha512-xcMaUStVgQzPrK3d7PuLFbQ+3qSp6LzaLExAm52E3FKmUfjQa7Sw5cDK6Hfu/8WT0yfGsuSCuJ5uT1sosjR9Qg==} hasBin: true requiresBuild: true peerDependencies: @@ -1620,9 +1685,9 @@ packages: valibot: '>= 0.21.0' dependencies: '@types/json-schema': 7.0.15 - esbuild: 0.20.1 - esbuild-runner: 2.2.2(esbuild@0.20.1) - valibot: 0.29.0 + esbuild: 0.20.2 + esbuild-runner: 2.2.2(esbuild@0.20.2) + valibot: 0.30.0 optional: true /@hapi/hoek@9.3.0: @@ -1921,28 +1986,25 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@lucia-auth/adapter-drizzle@1.0.2(lucia@3.0.1): - resolution: {integrity: sha512-GT2Mp0NaUZ5O4OAvzoNcX9bGotoxBfADo6mTzIEKKJ+uar3HgtQVn/m5Ogj3I2iMv0YBHWgMmlnkUHXN5xFNow==} + /@lucia-auth/adapter-drizzle@1.0.7(lucia@3.1.1): + resolution: {integrity: sha512-X/V7fLBca8EC/gPXCntwbQpb0+F9oEuRoHElvsi9rCrdnGhCMNxHgwAvgiQ6pes+rIYpyvx4n3hvjqo/fPo03A==} peerDependencies: lucia: 3.x dependencies: - lucia: 3.0.1 - dev: false - - /@lucia-auth/adapter-prisma@4.0.0(@prisma/client@5.9.1)(lucia@3.0.1): - resolution: {integrity: sha512-TJg4/U1K1slS4A/OzDYCgmHTrIArntIynue14zGIEaMDu+OD+tGyq9WwQWqOabpx2Gm9xtDsoK+tTokAY3Up7A==} - peerDependencies: - '@prisma/client': ^4.2.0 || ^5.0.0 - lucia: 3.x - dependencies: - '@prisma/client': 5.9.1(prisma@5.9.1) - lucia: 3.0.1 + lucia: 3.1.1 dev: false /@lukeed/csprng@1.1.0: @@ -1968,28 +2030,28 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 transitivePeerDependencies: - encoding - supports-color dev: false - /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.75.2)(svelte@4.2.12): + /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.76.3)(svelte@4.2.12): resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==} engines: {pnpm: '>=8.6.3'} peerDependencies: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 dependencies: - '@melt-ui/svelte': 0.75.2(svelte@4.2.12) + '@melt-ui/svelte': 0.76.3(svelte@4.2.12) estree-walker: 3.0.3 magic-string: 0.30.5 svelte: 4.2.12 dev: true - /@melt-ui/svelte@0.75.2(svelte@4.2.12): - resolution: {integrity: sha512-EZYH5iEzHs/CPsWqRlH6AnJ70sTuPB4llVK3ajafWig6I5q3qyGU8NIz4aozUssL0edf9BKmyDVAy6Vksy1fbA==} + /@melt-ui/svelte@0.76.0(svelte@4.2.12): + resolution: {integrity: sha512-X1ktxKujjLjOBt8LBvfckHGDMrkHWceRt1jdsUTf0EH76ikNPP1ofSoiV0IhlduDoCBV+2YchJ8kXCDfDXfC9Q==} peerDependencies: svelte: '>=3 <5' dependencies: @@ -2000,13 +2062,28 @@ packages: focus-trap: 7.5.4 nanoid: 5.0.6 svelte: 4.2.12 + dev: false - /@napi-rs/wasm-runtime@0.1.1: - resolution: {integrity: sha512-ATj9ua659JgrkICjJscaeZdmPr44cb/KFjNWuD0N6pux0SpzaM7+iOuuK11mAnQM2N9q0DT4REu6NkL8ZEhopw==} + /@melt-ui/svelte@0.76.3(svelte@4.2.12): + resolution: {integrity: sha512-fEtwHnOVLH0eNwtr+7pX5JQVtOL2XWVFA0/xrNU0yL6NkEpv++4NUwaaulGZC4nVmVG/gIA1JK2fx5M0u01TlA==} + peerDependencies: + svelte: '>=3 <5' + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/dom': 1.6.3 + '@internationalized/date': 3.5.2 + dequal: 2.0.3 + focus-trap: 7.5.4 + nanoid: 5.0.6 + svelte: 4.2.12 + dev: true + + /@napi-rs/wasm-runtime@0.1.2: + resolution: {integrity: sha512-8JuczewTFIZ/XIjHQ+YlQUydHvlKx2hkcxtuGwh+t/t5zWyZct6YG4+xjHcq8xyc/e7FmFwf42Zj2YgICwmlvA==} requiresBuild: true dependencies: - '@emnapi/core': 0.45.0 - '@emnapi/runtime': 0.45.0 + '@emnapi/core': 1.1.1 + '@emnapi/runtime': 1.1.1 '@tybys/wasm-util': 0.8.1 dev: false optional: true @@ -2221,7 +2298,7 @@ packages: cpu: [wasm32] requiresBuild: true dependencies: - '@napi-rs/wasm-runtime': 0.1.1 + '@napi-rs/wasm-runtime': 0.1.2 dev: false optional: true @@ -2518,7 +2595,7 @@ packages: cpu: [wasm32] requiresBuild: true dependencies: - '@napi-rs/wasm-runtime': 0.1.1 + '@napi-rs/wasm-runtime': 0.1.2 dev: false optional: true @@ -2645,16 +2722,16 @@ packages: engines: {node: '>=16'} dev: false - /@playwright/test@1.42.0: - resolution: {integrity: sha512-2k1HzC28Fs+HiwbJOQDUwrWMttqSLUVdjCqitBOjdCD0svWOMQUVqrXX6iFD7POps6xXAojsX/dGBpKnjZctLA==} + /@playwright/test@1.43.0: + resolution: {integrity: sha512-Ebw0+MCqoYflop7wVKj711ccbNlrwTBCtjY5rlbiY9kHL2bCYxq+qltK6uPsVBGGAOb033H2VO0YobcQVxoW7Q==} engines: {node: '>=16'} hasBin: true dependencies: - playwright: 1.42.0 + playwright: 1.43.0 dev: true - /@polka/url@1.0.0-next.24: - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} /@poppinss/macroable@1.0.1: resolution: {integrity: sha512-bO3+rnqGhE+gdx4DOyYjY9jCm2+c5Ncyl2Gmst0w271rIFnsB00btonpdmAqvFNzS8rcas+APGm+47fYMmkpQA==} @@ -2662,48 +2739,8 @@ packages: requiresBuild: true optional: true - /@prisma/client@5.9.1(prisma@5.9.1): - resolution: {integrity: sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ==} - engines: {node: '>=16.13'} - requiresBuild: true - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: - optional: true - dependencies: - prisma: 5.9.1 - dev: false - - /@prisma/debug@5.9.1: - resolution: {integrity: sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA==} - - /@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64: - resolution: {integrity: sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ==} - - /@prisma/engines@5.9.1: - resolution: {integrity: sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ==} - requiresBuild: true - dependencies: - '@prisma/debug': 5.9.1 - '@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64 - '@prisma/fetch-engine': 5.9.1 - '@prisma/get-platform': 5.9.1 - - /@prisma/fetch-engine@5.9.1: - resolution: {integrity: sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA==} - dependencies: - '@prisma/debug': 5.9.1 - '@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64 - '@prisma/get-platform': 5.9.1 - - /@prisma/get-platform@5.9.1: - resolution: {integrity: sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg==} - dependencies: - '@prisma/debug': 5.9.1 - - /@resvg/resvg-js-android-arm-eabi@2.6.0: - resolution: {integrity: sha512-lJnZ/2P5aMocrFMW7HWhVne5gH82I8xH6zsfH75MYr4+/JOaVcGCTEQ06XFohGMdYRP3v05SSPLPvTM/RHjxfA==} + /@resvg/resvg-js-android-arm-eabi@2.6.2: + resolution: {integrity: sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==} engines: {node: '>= 10'} cpu: [arm] os: [android] @@ -2711,8 +2748,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-android-arm64@2.6.0: - resolution: {integrity: sha512-N527f529bjMwYWShZYfBD60dXA4Fux+D695QsHQ93BDYZSHUoOh1CUGUyICevnTxs7VgEl98XpArmUWBZQVMfQ==} + /@resvg/resvg-js-android-arm64@2.6.2: + resolution: {integrity: sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] @@ -2720,8 +2757,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-darwin-arm64@2.6.0: - resolution: {integrity: sha512-MabUKLVayEwlPo0mIqAmMt+qESN8LltCvv5+GLgVga1avpUrkxj/fkU1TKm8kQegutUjbP/B0QuMuUr0uhF8ew==} + /@resvg/resvg-js-darwin-arm64@2.6.2: + resolution: {integrity: sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -2729,8 +2766,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-darwin-x64@2.6.0: - resolution: {integrity: sha512-zrFetdnSw/suXjmyxSjfDV7i61hahv6DDG6kM7BYN2yJ3Es5+BZtqYZTcIWogPJedYKmzN1YTMWGd/3f0ubFiA==} + /@resvg/resvg-js-darwin-x64@2.6.2: + resolution: {integrity: sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -2738,8 +2775,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-linux-arm-gnueabihf@2.6.0: - resolution: {integrity: sha512-sH4gxXt7v7dGwjGyzLwn7SFGvwZG6DQqLaZ11MmzbCwd9Zosy1TnmrMJfn6TJ7RHezmQMgBPi18bl55FZ1AT4A==} + /@resvg/resvg-js-linux-arm-gnueabihf@2.6.2: + resolution: {integrity: sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -2747,8 +2784,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-linux-arm64-gnu@2.6.0: - resolution: {integrity: sha512-fCyMncqCJtrlANADIduYF4IfnWQ295UKib7DAxFXQhBsM9PLDTpizr0qemZcCNadcwSVHnAIzL4tliZhCM8P6A==} + /@resvg/resvg-js-linux-arm64-gnu@2.6.2: + resolution: {integrity: sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2756,8 +2793,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-linux-arm64-musl@2.6.0: - resolution: {integrity: sha512-ouLjTgBQHQyxLht4FdMPTvuY8xzJigM9EM2Tlu0llWkN1mKyTQrvYWi6TA6XnKdzDJHy7ZLpWpjZi7F5+Pg+Vg==} + /@resvg/resvg-js-linux-arm64-musl@2.6.2: + resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2765,8 +2802,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-linux-x64-gnu@2.6.0: - resolution: {integrity: sha512-n3zC8DWsvxC1AwxpKFclIPapDFibs5XdIRoV/mcIlxlh0vseW1F49b97F33BtJQRmlntsqqN6GMMqx8byB7B+Q==} + /@resvg/resvg-js-linux-x64-gnu@2.6.2: + resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2774,8 +2811,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-linux-x64-musl@2.6.0: - resolution: {integrity: sha512-n4tasK1HOlAxdTEROgYA1aCfsEKk0UOFDNd/AQTTZlTmCbHKXPq+O8npaaKlwXquxlVK8vrkcWbksbiGqbCAcw==} + /@resvg/resvg-js-linux-x64-musl@2.6.2: + resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2783,8 +2820,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-win32-arm64-msvc@2.6.0: - resolution: {integrity: sha512-X2+EoBJFwDI5LDVb51Sk7ldnVLitMGr9WwU/i21i3fAeAXZb3hM16k67DeTy16OYkT2dk/RfU1tP1wG+rWbz2Q==} + /@resvg/resvg-js-win32-arm64-msvc@2.6.2: + resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -2792,8 +2829,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-win32-ia32-msvc@2.6.0: - resolution: {integrity: sha512-L7oevWjQoUgK5W1fCKn0euSVemhDXVhrjtwqpc7MwBKKimYeiOshO1Li1pa8bBt5PESahenhWgdB6lav9O0fEg==} + /@resvg/resvg-js-win32-ia32-msvc@2.6.2: + resolution: {integrity: sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -2801,8 +2838,8 @@ packages: dev: true optional: true - /@resvg/resvg-js-win32-x64-msvc@2.6.0: - resolution: {integrity: sha512-8lJlghb+Unki5AyKgsnFbRJwkEj9r1NpwyuBG8yEJiG1W9eEGl03R3I7bsVa3haof/3J1NlWf0rzSa1G++A2iw==} + /@resvg/resvg-js-win32-x64-msvc@2.6.2: + resolution: {integrity: sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2810,22 +2847,22 @@ packages: dev: true optional: true - /@resvg/resvg-js@2.6.0: - resolution: {integrity: sha512-Tf3YpbBKcQn991KKcw/vg7vZf98v01seSv6CVxZBbRkL/xyjnoYB6KgrFL6zskT1A4dWC/vg77KyNOW+ePaNlA==} + /@resvg/resvg-js@2.6.2: + resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} engines: {node: '>= 10'} optionalDependencies: - '@resvg/resvg-js-android-arm-eabi': 2.6.0 - '@resvg/resvg-js-android-arm64': 2.6.0 - '@resvg/resvg-js-darwin-arm64': 2.6.0 - '@resvg/resvg-js-darwin-x64': 2.6.0 - '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.0 - '@resvg/resvg-js-linux-arm64-gnu': 2.6.0 - '@resvg/resvg-js-linux-arm64-musl': 2.6.0 - '@resvg/resvg-js-linux-x64-gnu': 2.6.0 - '@resvg/resvg-js-linux-x64-musl': 2.6.0 - '@resvg/resvg-js-win32-arm64-msvc': 2.6.0 - '@resvg/resvg-js-win32-ia32-msvc': 2.6.0 - '@resvg/resvg-js-win32-x64-msvc': 2.6.0 + '@resvg/resvg-js-android-arm-eabi': 2.6.2 + '@resvg/resvg-js-android-arm64': 2.6.2 + '@resvg/resvg-js-darwin-arm64': 2.6.2 + '@resvg/resvg-js-darwin-x64': 2.6.2 + '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.2 + '@resvg/resvg-js-linux-arm64-gnu': 2.6.2 + '@resvg/resvg-js-linux-arm64-musl': 2.6.2 + '@resvg/resvg-js-linux-x64-gnu': 2.6.2 + '@resvg/resvg-js-linux-x64-musl': 2.6.2 + '@resvg/resvg-js-win32-arm64-msvc': 2.6.2 + '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 + '@resvg/resvg-js-win32-x64-msvc': 2.6.2 dev: true /@resvg/resvg-wasm@2.6.0: @@ -2855,92 +2892,92 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} cpu: [x64] os: [win32] requiresBuild: true @@ -3089,7 +3126,7 @@ packages: svelte: 4.2.12 dev: false - /@sentry/sveltekit@7.100.1(@sveltejs/kit@2.5.2)(svelte@4.2.12): + /@sentry/sveltekit@7.100.1(@sveltejs/kit@2.5.5)(svelte@4.2.12): resolution: {integrity: sha512-t6JaivTmw5oIqOpKQ8PNbGjNP99AQY6vMPkhxzVuwPa3A3o2WtmzQoIXNxdrkux5XkoBI9CsT6TsM5TbaMDwjQ==} engines: {node: '>=16'} peerDependencies: @@ -3103,7 +3140,7 @@ packages: '@sentry/types': 7.100.1 '@sentry/utils': 7.100.1 '@sentry/vite-plugin': 0.6.1 - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) magicast: 0.2.8 sorcery: 0.11.0 transitivePeerDependencies: @@ -3182,8 +3219,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sinclair/typebox@0.32.15: - resolution: {integrity: sha512-5Lrwo7VOiWEBJBhHmqNmf3TPB9ll8gcEshvYJyAIJyCZ2PF48MFOtiDHJNj8+FsNcqImaQYmxVkKBCBlyAa/wg==} + /@sinclair/typebox@0.32.20: + resolution: {integrity: sha512-ziK497ILSIYMxD/thl496idIb03IZPlha04itLQu1xAFQbumWZ+Dj4PMMCkDRpAYhvVSdmRlTjGu2B2MA5RplQ==} requiresBuild: true optional: true @@ -3192,32 +3229,32 @@ packages: requiresBuild: true optional: true - /@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.5.2): - resolution: {integrity: sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==} + /@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.5): + resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/adapter-vercel@5.1.0(@sveltejs/kit@2.5.2): - resolution: {integrity: sha512-Z9yRJ4H2/7LcBlvN2/TKu1H0hWoRGonr8kPhP1GJ23LRW76IbiiX5gs/MLc6+ZGogCZYVJ4USmx6m+RFtvQTRw==} + /@sveltejs/adapter-vercel@5.2.0(@sveltejs/kit@2.5.5): + resolution: {integrity: sha512-872y13DxKcOBxgnXc4C2YHRw1ow9N1CpUxMH34NYFqCn6PUO6f34qle8v/Byr8sHEC/d+PZIAI3MJs3c8f7TfA==} peerDependencies: '@sveltejs/kit': ^2.4.0 dependencies: - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) - '@vercel/nft': 0.26.2 - esbuild: 0.19.11 + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) + '@vercel/nft': 0.26.4 + esbuild: 0.19.12 transitivePeerDependencies: - encoding - supports-color dev: false - /@sveltejs/enhanced-img@0.1.8(svelte@4.2.12): - resolution: {integrity: sha512-0cLVR9KiO0/t3VVm64OM7bPHTkdaT2aaz1rwoAhao+EBXR3vMvLoYXLHvz8o9/552PSV8G844RkH7qkGc3YAiQ==} + /@sveltejs/enhanced-img@0.1.9(svelte@4.2.12): + resolution: {integrity: sha512-gUgaiG88P6moWcxZx4YrzMhAlw1TgggKRp7n9gdfCREDeXHysCd1l9GpQR3sh109SM3rNlkiaAzt+iPLT0aG1w==} dependencies: - magic-string: 0.30.5 + magic-string: 0.30.8 svelte-parse-markup: 0.1.2(svelte@4.2.12) vite-imagetools: 6.2.9 transitivePeerDependencies: @@ -3225,8 +3262,8 @@ packages: - svelte dev: true - /@sveltejs/kit@2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5): - resolution: {integrity: sha512-1Pm2lsBYURQsjnLyZa+jw75eVD4gYHxGRwPyFe4DAmB3FjTVR8vRNWGeuDLGFcKMh/B1ij6FTUrc9GrerogCng==} + /@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8): + resolution: {integrity: sha512-ULe3PB00q4+wYRL+IS5FDPsCEVnhEITofm7b9Yz8malcH3r1SAnW/JJ6T13hIMeu8QNRIuVQWo+P4+2VklbnLQ==} engines: {node: '>=18.13'} hasBin: true requiresBuild: true @@ -3235,23 +3272,23 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 4.3.2 esm-env: 1.0.0 import-meta-resolve: 4.0.0 kleur: 4.1.5 - magic-string: 0.30.7 + magic-string: 0.30.8 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 svelte: 4.2.12 tiny-glob: 0.2.9 - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -3259,29 +3296,29 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.8) debug: 4.3.4 svelte: 4.2.12 - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) transitivePeerDependencies: - supports-color - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.5): + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.8): resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.12 svelte-hmr: 0.15.3(svelte@4.2.12) - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.5) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) + vitefu: 0.2.5(vite@5.2.8) transitivePeerDependencies: - supports-color @@ -3323,22 +3360,22 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - /@types/node@20.11.24: - resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} + /@types/node@20.12.6: + resolution: {integrity: sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==} dependencies: undici-types: 5.26.5 - /@types/pg@8.11.2: - resolution: {integrity: sha512-G2Mjygf2jFMU/9hCaTYxJrwdObdcnuQde1gndooZSOHsNSaCehAuwc7EIuSA34Do8Jx2yZ19KtvW8P0j4EuUXw==} + /@types/pg@8.11.5: + resolution: {integrity: sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.12.6 pg-protocol: 1.6.0 pg-types: 4.0.2 /@types/pg@8.6.6: resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.12.6 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -3356,7 +3393,7 @@ packages: requiresBuild: true optional: true - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.4): resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3368,10 +3405,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.4) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.57.0 @@ -3379,13 +3416,13 @@ packages: ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.4) + typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.4): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3397,11 +3434,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.57.0 - typescript: 5.3.3 + typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true @@ -3414,7 +3451,7 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.4): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3424,12 +3461,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.4) debug: 4.3.4 eslint: 8.57.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.4) + typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true @@ -3439,7 +3476,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.4): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3455,13 +3492,13 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.2.1(typescript@5.4.4) + typescript: 5.4.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.4): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3472,7 +3509,7 @@ packages: '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4) eslint: 8.57.0 semver: 7.5.4 transitivePeerDependencies: @@ -3492,8 +3529,8 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vercel/nft@0.26.2: - resolution: {integrity: sha512-bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==} + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} engines: {node: '>=16'} hasBin: true dependencies: @@ -3523,59 +3560,59 @@ packages: yoga-wasm-web: 0.3.3 dev: false - /@vinejs/compiler@2.4.0: - resolution: {integrity: sha512-qEhp+Ux4wCeyYlQpB5TddjlRRyxbZz4RVYG/UHGnnnn3eOw326dZGCJldOOEl6huBFoOguMUQfhKLLSjJ0v+XQ==} + /@vinejs/compiler@2.4.1: + resolution: {integrity: sha512-WZqCZEQBvuPEghAxnpvNLclyyfqkmU+2V2K4zoZhOUJRD9KRJ+hCNQQ6LSzt7ZwSh+wwxq0r9FpAfeC3tswB8Q==} engines: {node: '>=18.0.0'} requiresBuild: true optional: true - /@vinejs/vine@1.7.1: - resolution: {integrity: sha512-24FYCIMrQZbhUKkVyAApz5/eN34FBVuhayty1RyCNvdvYF2TpZpO/+NyjELW3JRtbIDfrAvr1+pYdJfRIovcbA==} + /@vinejs/vine@1.8.0: + resolution: {integrity: sha512-Qq3XxbA26jzqS9ICifkqzT399lMQZ2fWtqeV3luI2as+UIK7qDifJFU2Q4W3q3IB5VXoWxgwAZSZEO0em9I/qQ==} engines: {node: '>=18.16.0'} requiresBuild: true dependencies: '@poppinss/macroable': 1.0.1 '@types/validator': 13.11.9 - '@vinejs/compiler': 2.4.0 + '@vinejs/compiler': 2.4.1 camelcase: 8.0.0 dayjs: 1.11.10 dlv: 1.1.3 - normalize-url: 8.0.0 + normalize-url: 8.0.1 validator: 13.11.0 optional: true - /@vitest/expect@1.3.1: - resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} dependencies: - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 chai: 4.4.1 dev: true - /@vitest/runner@1.3.1: - resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} dependencies: - '@vitest/utils': 1.3.1 + '@vitest/utils': 1.4.0 p-limit: 5.0.0 pathe: 1.1.2 dev: true - /@vitest/snapshot@1.3.1: - resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} dependencies: magic-string: 0.30.7 pathe: 1.1.2 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.3.1: - resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} dependencies: tinyspy: 2.2.1 dev: true - /@vitest/utils@1.3.1: - resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -3649,7 +3686,6 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} @@ -3728,19 +3764,19 @@ packages: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: false - /autoprefixer@10.4.18(postcss@8.4.35): - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 + caniuse-lite: 1.0.30001599 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true @@ -3771,13 +3807,13 @@ packages: file-uri-to-path: 1.0.0 dev: false - /bits-ui@0.19.3(svelte@4.2.12): - resolution: {integrity: sha512-0qqZ1bwE4ZmTnzTdsl4mYEbHY5f0NVgxhddIqscLjJZx4ltkVKDXxBwEusbE2NToqKtXNNrU0wy7sLusdzdhcg==} + /bits-ui@0.19.7(svelte@4.2.12): + resolution: {integrity: sha512-GHUpKvN7QyazhnZNkUy0lxg6W1M6KJHWSZ4a/UGCjPE6nQgk6vKbGysY67PkDtQMknZTZAzVoMj1Eic4IKeCRQ==} peerDependencies: svelte: ^4.0.0 dependencies: '@internationalized/date': 3.5.2 - '@melt-ui/svelte': 0.75.2(svelte@4.2.12) + '@melt-ui/svelte': 0.76.0(svelte@4.2.12) nanoid: 5.0.6 svelte: 4.2.12 dev: false @@ -3815,7 +3851,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001588 + caniuse-lite: 1.0.30001599 electron-to-chromium: 1.4.677 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -3827,11 +3863,6 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - dev: false - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -3854,6 +3885,11 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: false + /camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} @@ -3868,12 +3904,8 @@ packages: /camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - /caniuse-lite@1.0.30001588: - resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==} - dev: true - - /caniuse-lite@1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} + /caniuse-lite@1.0.30001599: + resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} dev: true /chai@4.4.1: @@ -3962,6 +3994,14 @@ packages: timers-ext: 0.1.7 dev: true + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + /clsx@2.0.0: resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} engines: {node: '>=6'} @@ -3986,7 +4026,6 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -4058,14 +4097,14 @@ packages: /css-background-parser@0.1.0: resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} - /css-blank-pseudo@6.0.1(postcss@8.4.35): + /css-blank-pseudo@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true /css-box-shadow@1.0.0-3: @@ -4075,25 +4114,25 @@ packages: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} - /css-has-pseudo@6.0.2(postcss@8.4.35): - resolution: {integrity: sha512-Z2Qm5yyOvJRTy6THdUlnGIX6PW/1wOc4FHWlfkcBkfkpZ3oz6lPdG+h+J7t1HZHT4uSSVR8XatXiMpqMUADXow==} + /css-has-pseudo@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-qIsDxK/z0byH/mpNsv5hzQ5NOl8m1FRmOLgZpx4bG5uYHnOlO2XafeMI4mFIgNSViHwoUWcxSJZyyijaAmbs+A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 dev: true - /css-prefers-color-scheme@9.0.1(postcss@8.4.35): + /css-prefers-color-scheme@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true /css-to-react-native@3.2.0: @@ -4108,10 +4147,10 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 + source-map-js: 1.2.0 - /cssdb@7.11.0: - resolution: {integrity: sha512-YUVAJhjDcTZzVD5XE49l3PQtGE29vvhzaL1bM3BtkvSmIRJeYENdfn1dn5jauBI7BBF+IyyiBS+oSVx3Hz/Gaw==} + /cssdb@8.0.0: + resolution: {integrity: sha512-hfpm8VXc7/dhcEWpLvKDLwImOSk1sa2DxL36OEiY/4h2MGfKjPYIMZo4hnEEl+TCJr2GwcX46jF5TafRASDe9w==} dev: true /cssesc@3.0.0: @@ -4142,6 +4181,11 @@ packages: dependencies: ms: 2.1.2 + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} @@ -4179,11 +4223,6 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false - /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - dev: false - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -4218,6 +4257,10 @@ packages: heap: 0.2.7 dev: true + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -4269,20 +4312,23 @@ packages: - supports-color dev: true - /drizzle-orm@0.29.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.2)(mysql2@3.9.2)(pg@8.11.3)(postgres@3.4.3): - resolution: {integrity: sha512-ZnSM8TAxFhzH7p1s3+w3pRE/eKaOeNkH9SKitm717pubDVVcV2I0BCDBPGKV+pe02+wMfw37ntlTcCyo2rA3IA==} + /drizzle-orm@0.30.7(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.5)(pg@8.11.5)(postgres@3.4.4): + resolution: {integrity: sha512-9qefSZQlu2fO2qv24piHyWFWcxcOY15//0v4j8qomMqaxzipNoG+fUBrQ7Ftk7PY7APRbRdn/nkEXWxiI4a8mw==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=3' + '@electric-sql/pglite': '>=0.1.1' '@libsql/client': '*' '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' '@opentelemetry/api': ^1.4.1 '@planetscale/database': '>=1' '@types/better-sqlite3': '*' '@types/pg': '*' '@types/react': '>=18' '@types/sql.js': '*' - '@vercel/postgres': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' better-sqlite3: '>=7' bun-types: '*' expo-sqlite: '>=13.2.0' @@ -4299,10 +4345,14 @@ packages: optional: true '@cloudflare/workers-types': optional: true + '@electric-sql/pglite': + optional: true '@libsql/client': optional: true '@neondatabase/serverless': optional: true + '@op-engineering/op-sqlite': + optional: true '@opentelemetry/api': optional: true '@planetscale/database': @@ -4317,6 +4367,8 @@ packages: optional: true '@vercel/postgres': optional: true + '@xata.io/client': + optional: true better-sqlite3: optional: true bun-types: @@ -4342,10 +4394,9 @@ packages: dependencies: '@neondatabase/serverless': 0.9.0 '@planetscale/database': 1.16.0 - '@types/pg': 8.11.2 - mysql2: 3.9.2 - pg: 8.11.3 - postgres: 3.4.3 + '@types/pg': 8.11.5 + pg: 8.11.5 + postgres: 3.4.4 dev: false /electron-to-chromium@1.4.677: @@ -4359,6 +4410,10 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: false + /env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4412,13 +4467,13 @@ packages: - supports-color dev: true - /esbuild-runner@2.2.2(esbuild@0.20.1): + /esbuild-runner@2.2.2(esbuild@0.20.2): resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==} hasBin: true peerDependencies: esbuild: '*' dependencies: - esbuild: 0.20.1 + esbuild: 0.20.2 source-map-support: 0.5.21 tslib: 2.4.0 optional: true @@ -4482,6 +4537,7 @@ packages: '@esbuild/win32-arm64': 0.19.11 '@esbuild/win32-ia32': 0.19.11 '@esbuild/win32-x64': 0.19.11 + dev: true /esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} @@ -4512,37 +4568,37 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + dev: false - /esbuild@0.20.1: - resolution: {integrity: sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==} + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.20.1 - '@esbuild/android-arm': 0.20.1 - '@esbuild/android-arm64': 0.20.1 - '@esbuild/android-x64': 0.20.1 - '@esbuild/darwin-arm64': 0.20.1 - '@esbuild/darwin-x64': 0.20.1 - '@esbuild/freebsd-arm64': 0.20.1 - '@esbuild/freebsd-x64': 0.20.1 - '@esbuild/linux-arm': 0.20.1 - '@esbuild/linux-arm64': 0.20.1 - '@esbuild/linux-ia32': 0.20.1 - '@esbuild/linux-loong64': 0.20.1 - '@esbuild/linux-mips64el': 0.20.1 - '@esbuild/linux-ppc64': 0.20.1 - '@esbuild/linux-riscv64': 0.20.1 - '@esbuild/linux-s390x': 0.20.1 - '@esbuild/linux-x64': 0.20.1 - '@esbuild/netbsd-x64': 0.20.1 - '@esbuild/openbsd-x64': 0.20.1 - '@esbuild/sunos-x64': 0.20.1 - '@esbuild/win32-arm64': 0.20.1 - '@esbuild/win32-ia32': 0.20.1 - '@esbuild/win32-x64': 0.20.1 - optional: true + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -4557,13 +4613,14 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.57.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: eslint: 8.57.0 + semver: 7.6.0 dev: true /eslint-config-prettier@9.1.0(eslint@8.57.0): @@ -4575,12 +4632,12 @@ packages: eslint: 8.57.0 dev: true - /eslint-plugin-svelte@2.35.1(eslint@8.57.0)(svelte@4.2.12)(ts-node@10.9.2): - resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} + /eslint-plugin-svelte@2.36.0(eslint@8.57.0)(svelte@4.2.12)(ts-node@10.9.2): + resolution: {integrity: sha512-D30hSj13Y8YEn7yGXos7EYp0lpEb3Z2V/M+6a3MZ13KGVhaefdW2A9j8IBIcW4YR+j6fo901USzLeXQz/XbWeQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 - svelte: ^3.37.0 || ^4.0.0 + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.95 peerDependenciesMeta: svelte: optional: true @@ -4589,16 +4646,16 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 eslint: 8.57.0 - eslint-compat-utils: 0.1.2(eslint@8.57.0) + eslint-compat-utils: 0.5.0(eslint@8.57.0) esutils: 2.0.3 - known-css-properties: 0.29.0 - postcss: 8.4.35 - postcss-load-config: 3.1.4(postcss@8.4.35)(ts-node@10.9.2) - postcss-safe-parser: 6.0.0(postcss@8.4.35) - postcss-selector-parser: 6.0.13 - semver: 7.5.4 + known-css-properties: 0.30.0 + postcss: 8.4.38 + postcss-load-config: 3.1.4(postcss@8.4.38)(ts-node@10.9.2) + postcss-safe-parser: 6.0.0(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + semver: 7.6.0 svelte: 4.2.12 - svelte-eslint-parser: 0.33.1(svelte@4.2.12) + svelte-eslint-parser: 0.34.1(svelte@4.2.12) transitivePeerDependencies: - supports-color - ts-node @@ -4803,6 +4860,14 @@ packages: dependencies: to-regex-range: 5.0.1 + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: false + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -4834,7 +4899,7 @@ packages: is-callable: 1.2.7 dev: false - /formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.7.0): + /formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.12.4): resolution: {integrity: sha512-8ppOlOu7llBEJbV0PzUz/KWh1J8KfiGqwjiyb8emQ2m+/nYXohLBtMcLVpW3XwlMkUbYaIXM+5lhfGjw8xbGJw==} peerDependencies: svelte: ^4.0.0 @@ -4842,7 +4907,7 @@ packages: dependencies: nanoid: 5.0.6 svelte: 4.2.12 - sveltekit-superforms: 2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12) + sveltekit-superforms: 2.12.4(@sveltejs/kit@2.5.5)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12) dev: false /fraction.js@4.3.7: @@ -4898,10 +4963,9 @@ packages: wide-align: 1.1.5 dev: false - /generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} - dependencies: - is-property: 1.0.2 + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} dev: false /get-func-name@2.0.2: @@ -5097,13 +5161,6 @@ packages: '@iconify/types': 2.0.0 dev: false - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -5224,10 +5281,6 @@ packages: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true - /is-property@1.0.2: - resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - dev: false - /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: @@ -5275,8 +5328,8 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - /joi@17.12.2: - resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + /joi@17.12.3: + resolution: {integrity: sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==} requiresBuild: true dependencies: '@hapi/hoek': 9.3.0 @@ -5322,6 +5375,10 @@ packages: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true + /just-capitalize@3.2.0: + resolution: {integrity: sha512-FK8U9A5AHCIGxlEXg3RFJkb9Nz/fS9luJlrfRf0bFBZU6xnIQ6tbwl+HitMJLwCFszZqVaXQcyeoy8/PYABS6A==} + dev: false + /just-clone@6.2.0: resolution: {integrity: sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==} @@ -5343,8 +5400,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - /known-css-properties@0.29.0: - resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} dev: true /levn@0.4.1: @@ -5399,6 +5456,13 @@ packages: /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: false + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -5421,10 +5485,6 @@ packages: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} dev: true - /long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - dev: false - /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: @@ -5442,30 +5502,20 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: false - - /lru-cache@8.0.5: - resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} - engines: {node: '>=16.14'} - dev: false - /lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: es5-ext: 0.10.62 dev: true - /lucia@3.0.1: - resolution: {integrity: sha512-srwUkTCGgr6N4mFpaKZVZy5kwiRZdsrbIDv9Wrjar+xyw1MjojYQQ7oRbegjRWOZ3yI8xOOclK3sz/rga2J7/w==} + /lucia@3.1.1: + resolution: {integrity: sha512-Ygvgnqq7Ha7lYVaZATPwkPD2s2Qlsm71Z2o0byx/abNBfFldCRow5sNii6RqMsuMpK957RAI3Gw4/aWoagkc7A==} dependencies: oslo: 1.0.1 dev: false - /lucide-svelte@0.344.0(svelte@4.2.12): - resolution: {integrity: sha512-OB/iazftjl2w+vpH7WJqbhHONoMqUT6aaeYvu1BQSgvc7+CKXByu4xvbI7RMOJykaiF/u3LAhyd2ucYBj+rEZQ==} + /lucide-svelte@0.358.0(svelte@4.2.12): + resolution: {integrity: sha512-KSdl/FSW5EhexI+qZH/YV/6WmuMybx1dw1VD7n53xDJCpYUm/7dftOV3yTV0KaJxN7/tDss15M62SVvLLWsXLA==} peerDependencies: svelte: ^3 || ^4 || ^5.0.0-next.42 dependencies: @@ -5491,6 +5541,12 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + /magicast@0.2.8: resolution: {integrity: sha512-zEnqeb3E6TfMKYXGyHv3utbuHNixr04o3/gVGviSzVQkbFiU46VZUd+Ea/1npKfvEsEWxBYuIksKzoztTDPg0A==} dependencies: @@ -5665,20 +5721,6 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /mysql2@3.9.2: - resolution: {integrity: sha512-3Cwg/UuRkAv/wm6RhtPE5L7JlPB877vwSF6gfLAS68H+zhH+u5oa3AieqEd0D0/kC3W7qIhYbH419f7O9i/5nw==} - engines: {node: '>= 8.0'} - dependencies: - denque: 2.1.0 - generate-function: 2.3.1 - iconv-lite: 0.6.3 - long: 5.2.3 - lru-cache: 8.0.5 - named-placeholders: 1.1.3 - seq-queue: 0.0.5 - sqlstring: 2.3.3 - dev: false - /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -5686,13 +5728,6 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 - /named-placeholders@1.1.3: - resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} - engines: {node: '>=12.0.0'} - dependencies: - lru-cache: 7.18.3 - dev: false - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5749,8 +5784,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + /normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} engines: {node: '>=14.16'} requiresBuild: true optional: true @@ -5817,8 +5852,8 @@ packages: mimic-fn: 4.0.0 dev: true - /open-props@1.6.20: - resolution: {integrity: sha512-RwDLtSd785gWnotUZC1rICmFWkeNNQzOd91k3DL0jrwQ7xV5wi9EwGKDK2eiOyPl11/Vx+Btc+dIwCBD2MBpxw==} + /open-props@1.7.2: + resolution: {integrity: sha512-RheKypVzZBCSZ6c5iJaFWG0OBqdtql3eRFXRYrSNLh6vGzU8NSAHuq9iJPj++DrpPGs1pqlRa2BelwwBHjX3Xg==} dev: false /optionator@0.9.3: @@ -5840,13 +5875,20 @@ packages: '@node-rs/bcrypt': 1.9.2 dev: false - /oslo@1.1.3: - resolution: {integrity: sha512-hCz528UlNTiegplcyBg6AvG0HLNrnq06EJMp88Ze308GX1hszkb8u3puhNC4aqLMbYQ0hXpl+wQGnwxMtt5+5w==} + /oslo@1.2.0: + resolution: {integrity: sha512-OoFX6rDsNcOQVAD2gQD/z03u4vEjWZLzJtwkmgfRF+KpQUXwdgEXErD7zNhyowmHwHefP+PM9Pw13pgpHMRlzw==} dependencies: '@node-rs/argon2': 1.7.0 '@node-rs/bcrypt': 1.9.0 dev: false + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: false + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5860,14 +5902,22 @@ packages: yocto-queue: 1.0.0 dev: true + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: false + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} dev: false /pako@0.2.9: @@ -5941,8 +5991,8 @@ packages: dev: false optional: true - /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + /pg-connection-string@2.6.4: + resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} dev: false /pg-int8@1.0.1: @@ -5953,17 +6003,21 @@ packages: resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} engines: {node: '>=4'} - /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + /pg-pool@3.6.2(pg@8.11.5): + resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} peerDependencies: pg: '>=8.0' dependencies: - pg: 8.11.3 + pg: 8.11.5 dev: false /pg-protocol@1.6.0: resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + /pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + dev: false + /pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} @@ -5987,8 +6041,8 @@ packages: postgres-interval: 3.0.0 postgres-range: 1.1.4 - /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + /pg@8.11.5: + resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -5996,11 +6050,9 @@ packages: pg-native: optional: true dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1(pg@8.11.3) - pg-protocol: 1.6.0 + pg-connection-string: 2.6.4 + pg-pool: 3.6.2(pg@8.11.5) + pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -6036,235 +6088,240 @@ packages: pathe: 1.1.2 dev: true - /playwright-core@1.42.0: - resolution: {integrity: sha512-0HD9y8qEVlcbsAjdpBaFjmaTHf+1FeIddy8VJLeiqwhcNqGCBe4Wp2e8knpqiYbzxtxarxiXyNDw2cG8sCaNMQ==} + /playwright-core@1.43.0: + resolution: {integrity: sha512-iWFjyBUH97+pUFiyTqSLd8cDMMOS0r2ZYz2qEsPjH8/bX++sbIJT35MSwKnp1r/OQBAqC5XO99xFbJ9XClhf4w==} engines: {node: '>=16'} hasBin: true dev: true - /playwright@1.42.0: - resolution: {integrity: sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==} + /playwright@1.43.0: + resolution: {integrity: sha512-SiOKHbVjTSf6wHuGCbqrEyzlm6qvXcv7mENP+OZon1I07brfZLGdfWV0l/efAzVx7TF3Z45ov1gPEkku9q25YQ==} engines: {node: '>=16'} hasBin: true dependencies: - playwright-core: 1.42.0 + playwright-core: 1.43.0 optionalDependencies: fsevents: 2.3.2 dev: true - /postcss-attribute-case-insensitive@6.0.3(postcss@8.4.35): + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: false + + /postcss-attribute-case-insensitive@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-clamp@4.1.0(postcss@8.4.35): + /postcss-clamp@4.1.0(postcss@8.4.38): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@6.0.5(postcss@8.4.35): - resolution: {integrity: sha512-aTFsIy89ftjyclwUHRwvz1IxucLzVrzmmcXmtbPWT9GdyYeaJEKeAwbaZzOZn7AQlXg4xfwgkYhKsofC4aLIwg==} + /postcss-color-functional-notation@6.0.8(postcss@8.4.38): + resolution: {integrity: sha512-BilFPTHcfWEnuQeqL83nbSPVK3tcU57S60aOrqgditarNDzOojyF0Gdc2Ur5L+zox366QjrCe0rOBLDO2pNvRQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /postcss-color-hex-alpha@9.0.4(postcss@8.4.35): + /postcss-color-hex-alpha@9.0.4(postcss@8.4.38): resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@9.0.3(postcss@8.4.35): + /postcss-color-rebeccapurple@9.0.3(postcss@8.4.38): resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@10.0.3(postcss@8.4.35): - resolution: {integrity: sha512-wfJ9nKpLn/Qy7LASKu0Rj9Iq2uMzlRt27P4FAE1889IKRMdYUgy8SqvdXfAOs7LJLQX9Fjm0mZ+TSFphD/mKwA==} + /postcss-custom-media@10.0.4(postcss@8.4.38): + resolution: {integrity: sha512-Ubs7O3wj2prghaKRa68VHBvuy3KnTQ0zbGwqDYY1mntxJD0QL2AeiAy+AMfl3HBedTCVr2IcFNktwty9YpSskA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.35 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.38 dev: true - /postcss-custom-properties@13.3.5(postcss@8.4.35): - resolution: {integrity: sha512-xHg8DTCMfN2nrqs2CQTF+0m5jgnzKL5zrW5Y05KF6xBRO0uDPxiplBm/xcr1o49SLbyJXkMuaRJKhRzkrquKnQ==} + /postcss-custom-properties@13.3.6(postcss@8.4.38): + resolution: {integrity: sha512-vVVIwQbJiIz+PBLMIWA6XMi53Zg66/f474KolA7x0Das6EwkATc/9ZvM6zZx2gs7ZhcgVHjmWBbHkK9FlCgLeA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors@7.1.7(postcss@8.4.35): - resolution: {integrity: sha512-N19MpExaR+hYTXU59VO02xE42zLoAUYSVcupwkKlWWLteOb+sWCWHw5FhV7u7gVLTzaGULy7nZP3DNTHgOZAPA==} + /postcss-custom-selectors@7.1.8(postcss@8.4.38): + resolution: {integrity: sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-dir-pseudo-class@8.0.1(postcss@8.4.35): + /postcss-dir-pseudo-class@8.0.1(postcss@8.4.38): resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-double-position-gradients@5.0.4(postcss@8.4.35): - resolution: {integrity: sha512-xOH2QhazCPeYR+ziYaDcGlpo7Bpw8PVoggOFfU/xPkmBRUQH8MR2eWoPY1CZM93CB0WKs2mxq3ORo83QGIooLw==} + /postcss-double-position-gradients@5.0.6(postcss@8.4.38): + resolution: {integrity: sha512-QJ+089FKMaqDxOhhIHsJrh4IP7h4PIHNC5jZP5PMmnfUScNu8Hji2lskqpFWCvu+5sj+2EJFyzKd13sLEWOZmQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-focus-visible@9.0.1(postcss@8.4.35): + /postcss-focus-visible@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-focus-within@8.0.1(postcss@8.4.35): + /postcss-focus-within@8.0.1(postcss@8.4.38): resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-font-variant@5.0.0(postcss@8.4.35): + /postcss-font-variant@5.0.0(postcss@8.4.38): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-gap-properties@5.0.1(postcss@8.4.35): + /postcss-gap-properties@5.0.1(postcss@8.4.38): resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-image-set-function@6.0.3(postcss@8.4.35): + /postcss-image-set-function@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-import@15.1.0(postcss@8.4.35): + /postcss-import@15.1.0(postcss@8.4.38): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - /postcss-import@16.0.1(postcss@8.4.35): - resolution: {integrity: sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==} + /postcss-import@16.1.0(postcss@8.4.38): + resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} engines: {node: '>=18.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.35): + /postcss-js@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.35 + postcss: 8.4.38 - /postcss-lab-function@6.0.10(postcss@8.4.35): - resolution: {integrity: sha512-Csvw/CwwuwTojK2O3Ad0SvYKrfnAKy+uvT+1Fjk6igR+n8gHuJHIwdj1A2s46EZZojg3RkibdMBuv1vMvR6Sng==} + /postcss-lab-function@6.0.13(postcss@8.4.38): + resolution: {integrity: sha512-tzEThi3prSyomnVqaAU+k/YJib4rxeeTKVfMt+mPcEugFgp0t6xRjoc7fzaWCoEwYLC6GxGLD8/Ugx8COCqabw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.2(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/utilities': 1.0.0(postcss@8.4.35) - postcss: 8.4.35 + '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/utilities': 1.0.0(postcss@8.4.38) + postcss: 8.4.38 dev: true - /postcss-load-config@3.1.4(postcss@8.4.35)(ts-node@10.9.2): + /postcss-load-config@3.1.4(postcss@8.4.38)(ts-node@10.9.2): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -6277,12 +6334,12 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.35 - ts-node: 10.9.2(@types/node@20.11.24)(typescript@5.3.3) + postcss: 8.4.38 + ts-node: 10.9.2(@types/node@20.12.6)(typescript@5.4.4) yaml: 1.10.2 dev: true - /postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2): + /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -6295,11 +6352,11 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.35 - ts-node: 10.9.2(@types/node@20.11.24)(typescript@5.3.3) + postcss: 8.4.38 + ts-node: 10.9.2(@types/node@20.12.6)(typescript@5.4.4) yaml: 2.3.4 - /postcss-load-config@5.0.3(postcss@8.4.35): + /postcss-load-config@5.0.3(postcss@8.4.38): resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} engines: {node: '>= 18'} peerDependencies: @@ -6312,190 +6369,191 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.35 + postcss: 8.4.38 yaml: 2.3.4 dev: true - /postcss-logical@7.0.1(postcss@8.4.35): + /postcss-logical@7.0.1(postcss@8.4.38): resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-nested@6.0.1(postcss@8.4.35): + /postcss-nested@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-selector-parser: 6.0.13 - /postcss-nesting@12.0.3(postcss@8.4.35): - resolution: {integrity: sha512-yrtMRPFNkfZMv9ikBvZ/Eh3RxhpMBKQ3KzD7LCY8+jYVlgju/Mdcxi4JY8bW2Y7ISXw8GTLuF/o+kFtp+yaVfQ==} + /postcss-nesting@12.1.1(postcss@8.4.38): + resolution: {integrity: sha512-qc74KvIAQNa5ujZKG1UV286dhaDW6basbUy2i9AzNU/T8C9hpvGu9NZzm1SfePe2yP7sPYgpA8d4sPVopn2Hhw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.16) + '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-opacity-percentage@2.0.0(postcss@8.4.35): + /postcss-opacity-percentage@2.0.0(postcss@8.4.38): resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-overflow-shorthand@5.0.1(postcss@8.4.35): + /postcss-overflow-shorthand@5.0.1(postcss@8.4.38): resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@3.0.4(postcss@8.4.35): + /postcss-page-break@3.0.4(postcss@8.4.38): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-place@9.0.1(postcss@8.4.35): + /postcss-place@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true - /postcss-preset-env@9.4.0(postcss@8.4.35): - resolution: {integrity: sha512-5X2UA4Dn4xo7sJFCxlzW/dAGo71Oxh/K5DVls33hd2e3j06OKnW5FJQTw2hB0wTnGv0f6WcMaVBGFqcEfAgwlw==} + /postcss-preset-env@9.5.4(postcss@8.4.38): + resolution: {integrity: sha512-o/jOlJjhm4f6rI5q1f+4Og3tz1cjaO50er9ndk7ZdcXHjWOH49kMAhqDC/nQifypQkOAiAmF46dPt3pZM+Cwbg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 4.0.3(postcss@8.4.35) - '@csstools/postcss-color-function': 3.0.10(postcss@8.4.35) - '@csstools/postcss-color-mix-function': 2.0.10(postcss@8.4.35) - '@csstools/postcss-exponential-functions': 1.0.4(postcss@8.4.35) - '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.35) - '@csstools/postcss-gamut-mapping': 1.0.3(postcss@8.4.35) - '@csstools/postcss-gradients-interpolation-method': 4.0.10(postcss@8.4.35) - '@csstools/postcss-hwb-function': 3.0.9(postcss@8.4.35) - '@csstools/postcss-ic-unit': 3.0.4(postcss@8.4.35) - '@csstools/postcss-initial': 1.0.1(postcss@8.4.35) - '@csstools/postcss-is-pseudo-class': 4.0.5(postcss@8.4.35) - '@csstools/postcss-light-dark-function': 1.0.0(postcss@8.4.35) - '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.35) - '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.35) - '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.35) - '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.35) - '@csstools/postcss-logical-viewport-units': 2.0.6(postcss@8.4.35) - '@csstools/postcss-media-minmax': 1.1.3(postcss@8.4.35) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.6(postcss@8.4.35) - '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.35) - '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.35) - '@csstools/postcss-oklab-function': 3.0.10(postcss@8.4.35) - '@csstools/postcss-progressive-custom-properties': 3.1.0(postcss@8.4.35) - '@csstools/postcss-relative-color-syntax': 2.0.10(postcss@8.4.35) - '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.35) - '@csstools/postcss-stepped-value-functions': 3.0.5(postcss@8.4.35) - '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.35) - '@csstools/postcss-trigonometric-functions': 3.0.5(postcss@8.4.35) - '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.35) - autoprefixer: 10.4.18(postcss@8.4.35) + '@csstools/postcss-cascade-layers': 4.0.4(postcss@8.4.38) + '@csstools/postcss-color-function': 3.0.13(postcss@8.4.38) + '@csstools/postcss-color-mix-function': 2.0.13(postcss@8.4.38) + '@csstools/postcss-exponential-functions': 1.0.5(postcss@8.4.38) + '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.38) + '@csstools/postcss-gamut-mapping': 1.0.6(postcss@8.4.38) + '@csstools/postcss-gradients-interpolation-method': 4.0.14(postcss@8.4.38) + '@csstools/postcss-hwb-function': 3.0.12(postcss@8.4.38) + '@csstools/postcss-ic-unit': 3.0.6(postcss@8.4.38) + '@csstools/postcss-initial': 1.0.1(postcss@8.4.38) + '@csstools/postcss-is-pseudo-class': 4.0.6(postcss@8.4.38) + '@csstools/postcss-light-dark-function': 1.0.3(postcss@8.4.38) + '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.38) + '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.38) + '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.38) + '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.38) + '@csstools/postcss-logical-viewport-units': 2.0.7(postcss@8.4.38) + '@csstools/postcss-media-minmax': 1.1.4(postcss@8.4.38) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.7(postcss@8.4.38) + '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.38) + '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.38) + '@csstools/postcss-oklab-function': 3.0.13(postcss@8.4.38) + '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.38) + '@csstools/postcss-relative-color-syntax': 2.0.13(postcss@8.4.38) + '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.38) + '@csstools/postcss-stepped-value-functions': 3.0.6(postcss@8.4.38) + '@csstools/postcss-text-decoration-shorthand': 3.0.5(postcss@8.4.38) + '@csstools/postcss-trigonometric-functions': 3.0.6(postcss@8.4.38) + '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.38) + autoprefixer: 10.4.19(postcss@8.4.38) browserslist: 4.23.0 - css-blank-pseudo: 6.0.1(postcss@8.4.35) - css-has-pseudo: 6.0.2(postcss@8.4.35) - css-prefers-color-scheme: 9.0.1(postcss@8.4.35) - cssdb: 7.11.0 - postcss: 8.4.35 - postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.35) - postcss-clamp: 4.1.0(postcss@8.4.35) - postcss-color-functional-notation: 6.0.5(postcss@8.4.35) - postcss-color-hex-alpha: 9.0.4(postcss@8.4.35) - postcss-color-rebeccapurple: 9.0.3(postcss@8.4.35) - postcss-custom-media: 10.0.3(postcss@8.4.35) - postcss-custom-properties: 13.3.5(postcss@8.4.35) - postcss-custom-selectors: 7.1.7(postcss@8.4.35) - postcss-dir-pseudo-class: 8.0.1(postcss@8.4.35) - postcss-double-position-gradients: 5.0.4(postcss@8.4.35) - postcss-focus-visible: 9.0.1(postcss@8.4.35) - postcss-focus-within: 8.0.1(postcss@8.4.35) - postcss-font-variant: 5.0.0(postcss@8.4.35) - postcss-gap-properties: 5.0.1(postcss@8.4.35) - postcss-image-set-function: 6.0.3(postcss@8.4.35) - postcss-lab-function: 6.0.10(postcss@8.4.35) - postcss-logical: 7.0.1(postcss@8.4.35) - postcss-nesting: 12.0.3(postcss@8.4.35) - postcss-opacity-percentage: 2.0.0(postcss@8.4.35) - postcss-overflow-shorthand: 5.0.1(postcss@8.4.35) - postcss-page-break: 3.0.4(postcss@8.4.35) - postcss-place: 9.0.1(postcss@8.4.35) - postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.35) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.35) - postcss-selector-not: 7.0.2(postcss@8.4.35) + css-blank-pseudo: 6.0.1(postcss@8.4.38) + css-has-pseudo: 6.0.3(postcss@8.4.38) + css-prefers-color-scheme: 9.0.1(postcss@8.4.38) + cssdb: 8.0.0 + postcss: 8.4.38 + postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.38) + postcss-clamp: 4.1.0(postcss@8.4.38) + postcss-color-functional-notation: 6.0.8(postcss@8.4.38) + postcss-color-hex-alpha: 9.0.4(postcss@8.4.38) + postcss-color-rebeccapurple: 9.0.3(postcss@8.4.38) + postcss-custom-media: 10.0.4(postcss@8.4.38) + postcss-custom-properties: 13.3.6(postcss@8.4.38) + postcss-custom-selectors: 7.1.8(postcss@8.4.38) + postcss-dir-pseudo-class: 8.0.1(postcss@8.4.38) + postcss-double-position-gradients: 5.0.6(postcss@8.4.38) + postcss-focus-visible: 9.0.1(postcss@8.4.38) + postcss-focus-within: 8.0.1(postcss@8.4.38) + postcss-font-variant: 5.0.0(postcss@8.4.38) + postcss-gap-properties: 5.0.1(postcss@8.4.38) + postcss-image-set-function: 6.0.3(postcss@8.4.38) + postcss-lab-function: 6.0.13(postcss@8.4.38) + postcss-logical: 7.0.1(postcss@8.4.38) + postcss-nesting: 12.1.1(postcss@8.4.38) + postcss-opacity-percentage: 2.0.0(postcss@8.4.38) + postcss-overflow-shorthand: 5.0.1(postcss@8.4.38) + postcss-page-break: 3.0.4(postcss@8.4.38) + postcss-place: 9.0.1(postcss@8.4.38) + postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.38) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.38) + postcss-selector-not: 7.0.2(postcss@8.4.38) dev: true - /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.35): + /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.38): resolution: {integrity: sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.35): + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.38): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.35): + /postcss-safe-parser@6.0.0(postcss@8.4.38): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-scss@4.0.9(postcss@8.4.35): + /postcss-scss@4.0.9(postcss@8.4.38): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-selector-not@7.0.2(postcss@8.4.35): + /postcss-selector-not@7.0.2(postcss@8.4.38): resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 dev: true /postcss-selector-parser@6.0.13: @@ -6505,8 +6563,8 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -6516,13 +6574,13 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -6567,8 +6625,8 @@ packages: /postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - /postgres@3.4.3: - resolution: {integrity: sha512-iHJn4+M9vbTdHSdDzNkC0crHq+1CUdFhx+YqCE+SqWxPjm+Zu63jq7yZborOBF64c8pc58O5uMudyL1FQcHacA==} + /postgres@3.4.4: + resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} engines: {node: '>=12'} dev: false @@ -6602,14 +6660,6 @@ packages: react-is: 18.2.0 dev: true - /prisma@5.9.1: - resolution: {integrity: sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ==} - engines: {node: '>=16.13'} - hasBin: true - requiresBuild: true - dependencies: - '@prisma/engines': 5.9.1 - /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -6629,6 +6679,17 @@ packages: engines: {node: '>=6'} dev: true + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6686,6 +6747,15 @@ packages: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: false + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -6724,26 +6794,26 @@ packages: dependencies: glob: 7.2.3 - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 /run-parallel@1.2.0: @@ -6761,10 +6831,6 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: false - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: false - /sander@0.5.1: resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} dependencies: @@ -6773,8 +6839,8 @@ packages: mkdirp: 0.5.6 rimraf: 2.7.1 - /sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} + /sass@1.74.1: + resolution: {integrity: sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6820,12 +6886,12 @@ packages: yoga-wasm-web: 0.3.3 dev: false - /schema-dts@1.1.2(typescript@5.3.3): + /schema-dts@1.1.2(typescript@5.4.4): resolution: {integrity: sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==} peerDependencies: typescript: '>=4.1.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.4 dev: true /semver@6.3.1: @@ -6839,6 +6905,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} @@ -6846,11 +6913,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true - - /seq-queue@0.0.5: - resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} - dev: false /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -6876,7 +6938,7 @@ packages: dependencies: color: 4.2.3 detect-libc: 2.0.2 - semver: 7.5.4 + semver: 7.6.0 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.2 '@img/sharp-darwin-x64': 0.33.2 @@ -6934,7 +6996,7 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.24 + '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 @@ -6960,6 +7022,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -6975,11 +7041,6 @@ packages: engines: {node: '>= 10.x'} dev: false - /sqlstring@2.3.3: - resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} - engines: {node: '>= 0.6'} - dev: false - /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -7059,8 +7120,8 @@ packages: copy-anything: 3.0.5 dev: true - /superstruct@1.0.3: - resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} + /superstruct@1.0.4: + resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} requiresBuild: true optional: true @@ -7076,21 +7137,21 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.6.6(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12): - resolution: {integrity: sha512-b9q9rOHOMYF3U8XllK7LmXTq1LeWQ98waGfEJzrFutViadkNl1tgdEtxIQ8yuPx+VQ4l7YrknYol+0lfZocaZw==} + /svelte-check@3.6.9(postcss-load-config@5.0.3)(postcss@8.4.38)(sass@1.74.1)(svelte@4.2.12): + resolution: {integrity: sha512-hDQrk3L0osX07djQyMiXocKysTLfusqi8AriNcCiQxhQR49/LonYolcUGMtZ0fbUR8HTR198Prrgf52WWU9wEg==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: - '@jridgewell/trace-mapping': 0.3.23 + '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 fast-glob: 3.3.2 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.12 - svelte-preprocess: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) - typescript: 5.3.3 + svelte-preprocess: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.38)(sass@1.74.1)(svelte@4.2.12)(typescript@5.4.4) + typescript: 5.4.4 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -7103,11 +7164,11 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.12): - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} + /svelte-eslint-parser@0.34.1(svelte@4.2.12): + resolution: {integrity: sha512-9+uLA1pqI9AZioKVGJzYYmlOZWxfoCXSbAM9iaNm7H01XlYlzRTtJfZgl9o3StQGN41PfGJIbkKkfk3e/pHFfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.94 peerDependenciesMeta: svelte: optional: true @@ -7115,8 +7176,8 @@ packages: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.35 - postcss-scss: 4.0.9(postcss@8.4.35) + postcss: 8.4.38 + postcss-scss: 4.0.9(postcss@8.4.38) svelte: 4.2.12 dev: true @@ -7129,6 +7190,17 @@ packages: svelte-writable-derived: 3.1.0(svelte@4.2.12) dev: false + /svelte-headless-table@0.18.2(svelte@4.2.12): + resolution: {integrity: sha512-dnDTaXW5CNzRUjHVbc/Hb0Zv80zU4VcIUnAja6OuZriXvim1AqcWYQCHPRzBGwqj1m3YEHHNvspSzY0o5HzA0A==} + peerDependencies: + svelte: ^4.0.0 + dependencies: + svelte: 4.2.12 + svelte-keyed: 2.0.0(svelte@4.2.12) + svelte-render: 2.0.1(svelte@4.2.12) + svelte-subscribe: 2.0.1(svelte@4.2.12) + dev: true + /svelte-hmr@0.15.3(svelte@4.2.12): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} @@ -7137,16 +7209,24 @@ packages: dependencies: svelte: 4.2.12 + /svelte-keyed@2.0.0(svelte@4.2.12): + resolution: {integrity: sha512-7TeEn+QbJC2OJrHiuM0T8vMBkms3DNpTE+Ir+NtnVBnBMA78aL4f1ft9t0Hn/pBbD/TnIXi4YfjFRAgtN+DZ5g==} + peerDependencies: + svelte: ^4.0.0 + dependencies: + svelte: 4.2.12 + dev: true + /svelte-lazy-loader@1.0.0: resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==} dev: false - /svelte-meta-tags@3.1.1(svelte@4.2.12)(typescript@5.3.3): - resolution: {integrity: sha512-tSWU1xbRGV5rkDN4wWXZfY24BRuhPa3Z8W2Zpt3GCv01QQdWRhhgmlpYVdfoSPNQX060bDB/JM1cu4H+lXxe8w==} + /svelte-meta-tags@3.1.2(svelte@4.2.12)(typescript@5.4.4): + resolution: {integrity: sha512-zw8xSA10ce7atFO1o0N1x41+qU+HBnpGx8KcVRAWPy5iiRdO6fvUFMg6VwJVgMhLSBEUTZXKAvMALLUssbCoCw==} peerDependencies: svelte: ^3.55.0 || ^4.0.0 dependencies: - schema-dts: 1.1.2(typescript@5.3.3) + schema-dts: 1.1.2(typescript@5.4.4) svelte: 4.2.12 transitivePeerDependencies: - typescript @@ -7160,7 +7240,7 @@ packages: svelte: 4.2.12 dev: true - /svelte-preprocess@5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3): + /svelte-preprocess@5.1.3(postcss-load-config@5.0.3)(postcss@8.4.38)(sass@1.74.1)(svelte@4.2.12)(typescript@5.4.4): resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} engines: {node: '>= 16.0.0', pnpm: ^8.0.0} requiresBuild: true @@ -7201,13 +7281,22 @@ packages: '@types/pug': 2.0.8 detect-indent: 6.1.0 magic-string: 0.30.5 - postcss: 8.4.35 - postcss-load-config: 5.0.3(postcss@8.4.35) - sass: 1.71.1 + postcss: 8.4.38 + postcss-load-config: 5.0.3(postcss@8.4.38) + sass: 1.74.1 sorcery: 0.11.0 strip-indent: 3.0.0 svelte: 4.2.12 - typescript: 5.3.3 + typescript: 5.4.4 + dev: true + + /svelte-render@2.0.1(svelte@4.2.12): + resolution: {integrity: sha512-RpB0SurwXm4xhjvHHtjeqMmvd645FURb79GFOotScOSqnKK5vpqBgoBPGC0pp+E/eZgDSQ9rRAdn/+N4ys1mXQ==} + peerDependencies: + svelte: ^4.0.0 + dependencies: + svelte: 4.2.12 + svelte-subscribe: 2.0.1(svelte@4.2.12) dev: true /svelte-sequential-preprocessor@2.0.1: @@ -7218,6 +7307,14 @@ packages: tslib: 2.6.2 dev: true + /svelte-subscribe@2.0.1(svelte@4.2.12): + resolution: {integrity: sha512-eKXIjLxB4C7eQWPqKEdxcGfNXm2g/qJ67zmEZK/GigCZMfrTR3m7DPY93R6MX+5uoqM1FRYxl8LZ1oy4URWi2A==} + peerDependencies: + svelte: ^4.0.0 + dependencies: + svelte: 4.2.12 + dev: true + /svelte-writable-derived@3.1.0(svelte@4.2.12): resolution: {integrity: sha512-cTvaVFNIJ036vSDIyPxJYivKC7ZLtcFOPm1Iq6qWBDo1fOHzfk6ZSbwaKrxhjgy52Rbl5IHzRcWgos6Zqn9/rg==} peerDependencies: @@ -7245,49 +7342,49 @@ packages: magic-string: 0.30.7 periscopic: 3.1.0 - /sveltekit-flash-message@2.4.2(@sveltejs/kit@2.5.2)(svelte@4.2.12): - resolution: {integrity: sha512-iXZSOp8La7kHQuOsXOcjIp7x24J/Ycs2uPoHwtjsbObVCbjgxZrtvjd0XUfA0mYZBp97BtAQ5SW5owRDJCWq6A==} + /sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.5)(svelte@4.2.12): + resolution: {integrity: sha512-CFN03chH/FMEJcBZ/8zKm7RqGee/pwb57Spbbx8QCQPhe7N9ofZHd9iYV2vVy4E9glBo/oQ1IG7VQje6L092wg==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x || >=5.0.0-next.51 dependencies: - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) svelte: 4.2.12 dev: true - /sveltekit-rate-limiter@0.4.3(@sveltejs/kit@2.5.2): + /sveltekit-rate-limiter@0.4.3(@sveltejs/kit@2.5.5): resolution: {integrity: sha512-BKkD2tvgyz5j4Fn1vt0y7FLF0zZ01f9thjWPGDb6fyX3tBXyMrtZ8ISK8M7zjz9Cik/2KrkvFtmldhXF6/hjqw==} peerDependencies: '@sveltejs/kit': 1.x || 2.x dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) dev: true - /sveltekit-superforms@2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12): - resolution: {integrity: sha512-z/YXWE4utCy/HIo/AcXlckItRj7ANNPFFHO4C42uwbtXZOODnEbuPb+sbpbTdGAw65JhIos59qEZXFFofzfEug==} + /sveltekit-superforms@2.12.4(@sveltejs/kit@2.5.5)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12): + resolution: {integrity: sha512-0LILJfTpOZj8UhEfcuVZwuyDR63EGTjBq/TwHJn38PcC6KHGZ0bXu8DVHxslGUffEi9EHgeyshoJk7x3EoJVhQ==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x || >=5.0.0-next.51 dependencies: - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.8) devalue: 4.3.2 just-clone: 6.2.0 memoize-weak: 1.0.2 svelte: 4.2.12 ts-deepmerge: 7.0.0 optionalDependencies: - '@gcornut/valibot-json-schema': 0.0.25(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(valibot@0.29.0) - '@sinclair/typebox': 0.32.15 + '@gcornut/valibot-json-schema': 0.0.27(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(valibot@0.30.0) + '@sinclair/typebox': 0.32.20 '@sodaru/yup-to-json-schema': 2.0.1 - '@vinejs/vine': 1.7.1 + '@vinejs/vine': 1.8.0 arktype: 1.0.29-alpha - joi: 17.12.2 - superstruct: 1.0.3 - valibot: 0.29.0 - yup: 1.3.3 + joi: 17.12.3 + superstruct: 1.0.4 + valibot: 0.30.0 + yup: 1.4.0 zod: 3.22.4 - zod-to-json-schema: 3.22.4(zod@3.22.4) + zod-to-json-schema: 3.22.5(zod@3.22.4) transitivePeerDependencies: - '@types/json-schema' - esbuild @@ -7296,32 +7393,32 @@ packages: /tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - /tailwind-merge@2.2.1: - resolution: {integrity: sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==} + /tailwind-merge@2.2.2: + resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.1 dev: false - /tailwind-variants@0.2.0(tailwindcss@3.4.1): - resolution: {integrity: sha512-EuW5Sic7c0tzp+p5rJwAgb7398Jb0hi4zkyCstOoZPW0DWwr+EWkNtnZYEo5CjgE1tazHUzyt4oIhss64UXRVA==} + /tailwind-variants@0.2.1(tailwindcss@3.4.3): + resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} engines: {node: '>=16.x', pnpm: '>=7.x'} peerDependencies: tailwindcss: '*' dependencies: - tailwind-merge: 2.2.1 - tailwindcss: 3.4.1(ts-node@10.9.2) + tailwind-merge: 2.2.2 + tailwindcss: 3.4.3(ts-node@10.9.2) dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.4.1): + /tailwindcss-animate@1.0.7(tailwindcss@3.4.3): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.4.1(ts-node@10.9.2) + tailwindcss: 3.4.3(ts-node@10.9.2) dev: false - /tailwindcss@3.4.1(ts-node@10.9.2): - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + /tailwindcss@3.4.3(ts-node@10.9.2): + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -7339,11 +7436,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.35 - postcss-import: 15.1.0(postcss@8.4.35) - postcss-js: 4.0.1(postcss@8.4.35) - postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) - postcss-nested: 6.0.1(postcss@8.4.35) + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2) + postcss-nested: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.0.13 resolve: 1.22.8 sucrase: 3.34.0 @@ -7436,22 +7533,22 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /ts-api-utils@1.0.3(typescript@5.3.3): + /ts-api-utils@1.0.3(typescript@5.4.4): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.4 dev: true - /ts-api-utils@1.2.1(typescript@5.3.3): + /ts-api-utils@1.2.1(typescript@5.4.4): resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.4 dev: true /ts-deepmerge@7.0.0: @@ -7461,7 +7558,7 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-node@10.9.2(@types/node@20.11.24)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.12.6)(typescript@5.4.4): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -7480,14 +7577,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.24 + '@types/node': 20.12.6 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.3.3 + typescript: 5.4.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -7498,8 +7595,8 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsx@4.7.1: - resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + /tsx@4.7.2: + resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: @@ -7540,8 +7637,8 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.4: + resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} engines: {node: '>=14.17'} hasBin: true @@ -7608,8 +7705,8 @@ packages: /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - /valibot@0.29.0: - resolution: {integrity: sha512-JhZn08lwZPhAamOCfBwBkv/btQt4KeQhekULPH8crH053zUCLSOGEF2zKExu3bFf245tsj6J1dY0ysd/jUiMIQ==} + /valibot@0.30.0: + resolution: {integrity: sha512-5POBdbSkM+3nvJ6ZlyQHsggisfRtyT4tVTo1EIIShs6qCdXJnyWU5TJ68vr8iTg5zpOLjXLRiBqNx+9zwZz/rA==} requiresBuild: true optional: true @@ -7629,8 +7726,8 @@ packages: - rollup dev: true - /vite-node@1.3.1(@types/node@20.11.24)(sass@1.71.1): - resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} + /vite-node@1.4.0(@types/node@20.12.6)(sass@1.74.1): + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -7638,7 +7735,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) transitivePeerDependencies: - '@types/node' - less @@ -7650,8 +7747,8 @@ packages: - terser dev: true - /vite@5.1.5(@types/node@20.11.24)(sass@1.71.1): - resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + /vite@5.2.8(@types/node@20.12.6)(sass@1.74.1): + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7678,15 +7775,15 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.24 - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - sass: 1.71.1 + '@types/node': 20.12.6 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.13.0 + sass: 1.74.1 optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.1.5): + /vitefu@0.2.5(vite@5.2.8): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -7694,17 +7791,17 @@ packages: vite: optional: true dependencies: - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) - /vitest@1.3.1(@types/node@20.11.24)(sass@1.71.1): - resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} + /vitest@1.4.0(@types/node@20.12.6)(sass@1.74.1): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.3.1 - '@vitest/ui': 1.3.1 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7721,12 +7818,12 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.11.24 - '@vitest/expect': 1.3.1 - '@vitest/runner': 1.3.1 - '@vitest/snapshot': 1.3.1 - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 + '@types/node': 20.12.6 + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 @@ -7739,8 +7836,8 @@ packages: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) - vite-node: 1.3.1(@types/node@20.11.24)(sass@1.71.1) + vite: 5.2.8(@types/node@20.12.6)(sass@1.74.1) + vite-node: 1.4.0(@types/node@20.12.6)(sass@1.74.1) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7772,6 +7869,10 @@ packages: webidl-conversions: 3.0.1 dev: false + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} @@ -7809,6 +7910,15 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -7817,6 +7927,10 @@ packages: engines: {node: '>=0.4'} dev: false + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -7829,6 +7943,31 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -7845,8 +7984,8 @@ packages: /yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - /yup@1.3.3: - resolution: {integrity: sha512-v8QwZSsHH2K3/G9WSkp6mZKO+hugKT1EmnMqLNUcfu51HU9MDyhlETT/JgtzprnrnQHPWsjc6MUDMBp/l9fNnw==} + /yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} requiresBuild: true dependencies: property-expr: 2.0.6 @@ -7855,8 +7994,8 @@ packages: type-fest: 2.19.0 optional: true - /zod-to-json-schema@3.22.4(zod@3.22.4): - resolution: {integrity: sha512-2Ed5dJ+n/O3cU383xSY28cuVi0BCQhF8nYqWU5paEpl7fVdqdAmiLdqLyfblbNdfOFwFfi/mqU4O1pwc60iBhQ==} + /zod-to-json-schema@3.22.5(zod@3.22.4): + resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} peerDependencies: zod: ^3.22.4 dependencies: diff --git a/prisma/categories.json b/prisma/categories.json deleted file mode 100644 index 3ca093f..0000000 --- a/prisma/categories.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "categories": [ - { - "name": "Abstract Strategy" - }, - { - "name": "Action / Dexterity" - }, - { - "name": "Adventure" - }, - { - "name": "Age of Reason" - }, - { - "name": "American Civil War" - }, - { - "name": "American Indian Wars" - }, - { - "name": "American Revolutionary War" - }, - { - "name": "American West" - }, - { - "name": "Ancient" - }, - { - "name": "Animals" - }, - { - "name": "Arabian" - }, - { - "name": "Aviation / Flight" - }, - { - "name": "Bluffing" - }, - { - "name": "Book" - }, - { - "name": "Card Game" - }, - { - "name": "Children's Game" - }, - { - "name": "City Building" - }, - { - "name": "Civil War" - }, - { - "name": "Civilization" - }, - { - "name": "Collectible Components" - }, - { - "name": "Comic Book / Strip" - }, - { - "name": "Deduction" - }, - { - "name": "Dice" - }, - { - "name": "Economic" - }, - { - "name": "Educational" - }, - { - "name": "Electronic" - }, - { - "name": "Environmental" - }, - { - "name": "Expansion for Base-game" - }, - { - "name": "Exploration" - }, - { - "name": "Fan Expansion" - }, - { - "name": "Fantasy" - }, - { - "name": "Farming" - }, - { - "name": "Fighting" - }, - { - "name": "Game System" - }, - { - "name": "Horror" - }, - { - "name": "Humor" - }, - { - "name": "Industry / Manufacturing" - }, - { - "name": "Korean War" - }, - { - "name": "Mafia" - }, - { - "name": "Math" - }, - { - "name": "Mature / Adult" - }, - { - "name": "Maze" - }, - { - "name": "Medical" - }, - { - "name": "Medieval" - }, - { - "name": "Memory" - }, - { - "name": "Miniatures" - }, - { - "name": "Modern Warefare" - }, - { - "name": "Movies / TV / Radio Theme" - }, - { - "name": "Murder/Mystery" - }, - { - "name": "Music" - }, - { - "name": "Mythology" - }, - { - "name": "Napoleonic" - }, - { - "name": "Nautical" - }, - { - "name": "Negotiation" - }, - { - "name": "Novel-based" - }, - { - "name": "Number" - }, - { - "name": "Party Game" - }, - { - "name": "Pike and Shot" - }, - { - "name": "Pirates" - }, - { - "name": "Political" - }, - { - "name": "Post-Napoleonic" - }, - { - "name": "Prehistoric" - }, - { - "name": "Print & Play" - }, - { - "name": "Puzzle" - }, - { - "name": "Racing" - }, - { - "name": "Real-time" - }, - { - "name": "Religious" - }, - { - "name": "Renaissance" - }, - { - "name": "Science Fiction" - }, - { - "name": "Space Exploration" - }, - { - "name": "Spies/Secret Agents" - }, - { - "name": "Sports" - }, - { - "name": "Territory Building" - }, - { - "name": "Trains" - }, - { - "name": "Transportation" - }, - { - "name": "Travel" - }, - { - "name": "Trivia" - }, - { - "name": "Video Game Theme" - }, - { - "name": "Vietnam War" - }, - { - "name": "Wargame" - }, - { - "name": "Word Game" - }, - { - "name": "World War I" - }, - { - "name": "World War II" - }, - { - "name": "Zombies" - } - ] -} diff --git a/prisma/mechanics.json b/prisma/mechanics.json deleted file mode 100644 index 0880679..0000000 --- a/prisma/mechanics.json +++ /dev/null @@ -1,577 +0,0 @@ -{ - "mechanics": [ - { - "name": "Acting" - }, - { - "name": "Action Drafting" - }, - { - "name": "Action Points" - }, - { - "name": "Action Queue" - }, - { - "name": "Action Retrieval" - }, - { - "name": "Action Timer" - }, - { - "name": "Action/Event" - }, - { - "name": "Advantage Token" - }, - { - "name": "Alliances" - }, - { - "name": "Area Majority / Influence" - }, - { - "name": "Area Movement" - }, - { - "name": "Area-Impulse" - }, - { - "name": "Auction Compensation" - }, - { - "name": "Auction: Dexterity" - }, - { - "name": "Auction: Dutch" - }, - { - "name": "Auction: Dutch Priority" - }, - { - "name": "Auction: English" - }, - { - "name": "Auction: Fixed Placement" - }, - { - "name": "Auction: Multiple Lot" - }, - { - "name": "Auction: Once Around" - }, - { - "name": "Auction: Sealed Bid" - }, - { - "name": "Auction: Turn Order Until Pass" - }, - { - "name": "Auction/Bidding" - }, - { - "name": "Automatic Resource Growth" - }, - { - "name": "Betting and Bluffing" - }, - { - "name": "Bias" - }, - { - "name": "Bids As Wagers" - }, - { - "name": "Bingo" - }, - { - "name": "Bribery" - }, - { - "name": "Campaign / Battle Card Driven" - }, - { - "name": "Card Play Conflict Resolution" - }, - { - "name": "Catch the Leader" - }, - { - "name": "Chaining" - }, - { - "name": "Chit-Pull System" - }, - { - "name": "Closed Drafting" - }, - { - "name": "Closed Economy Auction" - }, - { - "name": "Command Cards" - }, - { - "name": "Commodity Speculation" - }, - { - "name": "Communication Limits" - }, - { - "name": "Connections" - }, - { - "name": "Constrained Bidding" - }, - { - "name": "Contracts" - }, - { - "name": "Cooperative Game" - }, - { - "name": "Crayon Rail System" - }, - { - "name": "Critical Hits and Failures" - }, - { - "name": "Cube Tower" - }, - { - "name": "Deck Construction" - }, - { - "name": "Deck, Bag, and Pool Building" - }, - { - "name": "Deduction" - }, - { - "name": "Delayed Purchase" - }, - { - "name": "Dice Rolling" - }, - { - "name": "Die Icon Resolution" - }, - { - "name": "Different Dice Movement" - }, - { - "name": "Drawing" - }, - { - "name": "Elapsed Real Time Ending" - }, - { - "name": "Enclosure" - }, - { - "name": "End Game Bonuses" - }, - { - "name": "Events" - }, - { - "name": "Finale Ending" - }, - { - "name": "Flicking" - }, - { - "name": "Follow" - }, - { - "name": "Force Commitment" - }, - { - "name": "Grid Coverage" - }, - { - "name": "Grid Movement" - }, - { - "name": "Hand Management" - }, - { - "name": "Hexagon Grid" - }, - { - "name": "Hidden Movement" - }, - { - "name": "Hidden Roles" - }, - { - "name": "Hidden Victory Points" - }, - { - "name": "Highest-Lowest Scoring" - }, - { - "name": "Hot Potato" - }, - { - "name": "I Cut, You Choose" - }, - { - "name": "Impulse Movement" - }, - { - "name": "Income" - }, - { - "name": "Increase Value of Unchosen Resources" - }, - { - "name": "Induction" - }, - { - "name": "Interrupts" - }, - { - "name": "Investment" - }, - { - "name": "Kill Steal" - }, - { - "name": "King of the Hill" - }, - { - "name": "Ladder Climbing" - }, - { - "name": "Layering" - }, - { - "name": "Legacy Game" - }, - { - "name": "Line Drawing" - }, - { - "name": "Line of Sight" - }, - { - "name": "Loans" - }, - { - "name": "Lose a Turn" - }, - { - "name": "Mancala" - }, - { - "name": "Map Addition" - }, - { - "name": "Map Deformation" - }, - { - "name": "Map Reduction" - }, - { - "name": "Market" - }, - { - "name": "Matching" - }, - { - "name": "Measurement Movement" - }, - { - "name": "Melding and Splaying" - }, - { - "name": "Memory" - }, - { - "name": "Minimap Resolution" - }, - { - "name": "Modular Board" - }, - { - "name": "Move Through Deck" - }, - { - "name": "Movement Points" - }, - { - "name": "Movement Template" - }, - { - "name": "Moving Multiple Units" - }, - { - "name": "Multi-Use Cards" - }, - { - "name": "Multiple Maps" - }, - { - "name": "Narrative Choice / Paragraph" - }, - { - "name": "Negotiation" - }, - { - "name": "Neighbor Scope" - }, - { - "name": "Network and Route Building" - }, - { - "name": "Once-Per-Game Abilities" - }, - { - "name": "Open Drafting" - }, - { - "name": "Order Counters" - }, - { - "name": "Ordering" - }, - { - "name": "Ownership" - }, - { - "name": "Paper-and-Pencil" - }, - { - "name": "Passed Action Token" - }, - { - "name": "Pattern Building" - }, - { - "name": "Pattern Movement" - }, - { - "name": "Pattern Recognition" - }, - { - "name": "Physical Removal" - }, - { - "name": "Pick-up and Deliver" - }, - { - "name": "Pieces as Map" - }, - { - "name": "Player Elimination" - }, - { - "name": "Player Judge" - }, - { - "name": "Point to Point Movement" - }, - { - "name": "Predictive Bid" - }, - { - "name": "Prisoner's Dilemma" - }, - { - "name": "Programmed Movement" - }, - { - "name": "Push Your Luck" - }, - { - "name": "Questions and Answers" - }, - { - "name": "Race" - }, - { - "name": "Random Production" - }, - { - "name": "Ratio / Combat Results Table" - }, - { - "name": "Re-rolling and Locking" - }, - { - "name": "Real-Time" - }, - { - "name": "Relative Movement" - }, - { - "name": "Resource Queue" - }, - { - "name": "Resource to Move" - }, - { - "name": "Rock-Paper-Scissors" - }, - { - "name": "Role Playing" - }, - { - "name": "Roles with Asymmetric Information" - }, - { - "name": "Roll / Spin and Move" - }, - { - "name": "Rondel" - }, - { - "name": "Scenario / Mission / Campaign Game" - }, - { - "name": "Score-and-Reset Game" - }, - { - "name": "Secret Unit Deployment" - }, - { - "name": "Selection Order Bid" - }, - { - "name": "Semi-Cooperative Game" - }, - { - "name": "Set Collection" - }, - { - "name": "Simulation" - }, - { - "name": "Simultaneous Action Selection" - }, - { - "name": "Singing" - }, - { - "name": "Single Loser Game" - }, - { - "name": "Slide/Push" - }, - { - "name": "Solo / Solitaire Game" - }, - { - "name": "Speed Matching" - }, - { - "name": "Square Grid" - }, - { - "name": "Stacking and Balancing" - }, - { - "name": "Stat Check Resolution" - }, - { - "name": "Static Capture" - }, - { - "name": "Stock Holding" - }, - { - "name": "Storytelling" - }, - { - "name": "Sudden Death Ending" - }, - { - "name": "Tags" - }, - { - "name": "Take That" - }, - { - "name": "Targeted Clues" - }, - { - "name": "Team-Based Game" - }, - { - "name": "Tech Trees / Tech Tracks" - }, - { - "name": "Three Dimensional Movement" - }, - { - "name": "Tile Placement" - }, - { - "name": "Track Movement" - }, - { - "name": "Trading" - }, - { - "name": "Traitor Game" - }, - { - "name": "Trick-taking" - }, - { - "name": "Tug of War" - }, - { - "name": "Turn Order: Auction" - }, - { - "name": "Turn Order: Claim Action" - }, - { - "name": "Turn Order: Pass Order" - }, - { - "name": "Turn Order: Progressive" - }, - { - "name": "Turn Order: Random" - }, - { - "name": "Turn Order: Role Order" - }, - { - "name": "Turn Order: Stat-Based" - }, - { - "name": "Turn Order: Time Track" - }, - { - "name": "Variable Phase Order" - }, - { - "name": "Variable Player Powers" - }, - { - "name": "Variable Set-up" - }, - { - "name": "Victory Points as a Resource" - }, - { - "name": "Voting" - }, - { - "name": "Worker Placement" - }, - { - "name": "Worker Placement with Dice Workers" - }, - { - "name": "Worker Placement, Different Worker Types" - }, - { - "name": "Zone of Control" - } - ] -} diff --git a/prisma/schema.prisma b/prisma/schema.prisma deleted file mode 100644 index 14628d6..0000000 --- a/prisma/schema.prisma +++ /dev/null @@ -1,272 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -generator client { - provider = "prisma-client-js" - previewFeatures = ["fullTextSearch", "fullTextIndex", "relationJoins"] -} - -datasource db { - provider = "mysql" - url = env("DATABASE_URL") - relationMode = "prisma" -} - -model Role { - id String @id @default(cuid()) - name String @unique - userRoles UserRole[] - - @@map("roles") -} - -model UserRole { - id String @id @default(cuid()) - user User @relation(fields: [user_id], references: [id]) - user_id String - role Role @relation(fields: [role_id], references: [id]) - role_id String - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@unique([user_id, role_id]) - @@index([user_id]) - @@index([role_id]) - @@map("user_roles") -} - -model User { - id String @id @default(cuid()) - username String @unique - hashed_password String? - email String? @unique - firstName String? - lastName String? - roles UserRole[] - verified Boolean @default(false) - receiveEmail Boolean @default(false) - collection Collection? - wishlist Wishlist? - list List[] - theme String @default("system") - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - sessions Session[] - - @@map("users") -} - -model Session { - id String @id @unique - userId String - ip_country String - ip_address String - expiresAt DateTime - user User @relation(references: [id], fields: [userId], onDelete: Cascade) - - @@index([userId]) - @@map("sessions") -} - -model Collection { - id String @id @default(cuid()) - user_id String @unique - user User @relation(references: [id], fields: [user_id]) - items CollectionItem[] - - @@index([user_id]) - @@map("collections") -} - -model CollectionItem { - id String @id @default(cuid()) - collection_id String - collection Collection @relation(references: [id], fields: [collection_id], onDelete: Cascade) - game_id String @unique - game Game @relation(references: [id], fields: [game_id]) - times_played Int - - @@index([game_id, collection_id]) - @@index([game_id]) - @@index([collection_id]) - @@map("collection_items") -} - -model Wishlist { - id String @id @default(cuid()) - user_id String @unique - user User @relation(references: [id], fields: [user_id]) - items WishlistItem[] - - @@index([user_id]) - @@map("wishlists") -} - -model WishlistItem { - id String @id @default(cuid()) - wishlist_id String - wishlist Wishlist @relation(references: [id], fields: [wishlist_id], onDelete: Cascade) - game_id String @unique - game Game @relation(references: [id], fields: [game_id]) - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@index([game_id, wishlist_id]) - @@index([game_id]) - @@index([wishlist_id]) - @@map("wishlist_items") -} - -model List { - id String @id @default(cuid()) - name String - user_id String @unique - user User @relation(references: [id], fields: [user_id]) - items ListItem[] - - @@index([user_id]) - @@map("lists") -} - -model ListItem { - id String @id @default(cuid()) - list_id String - list List @relation(references: [id], fields: [list_id], onDelete: Cascade) - game_id String @unique - game Game @relation(references: [id], fields: [game_id]) - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@index([game_id, list_id]) - @@index([game_id]) - @@index([list_id]) - @@map("list_items") -} - -model Game { - id String @id @default(cuid()) - name String - slug String - description String? @db.LongText - year_published Int? @db.Year - min_players Int? - max_players Int? - playtime Int? - min_playtime Int? - max_playtime Int? - min_age Int? - image_url String? - thumb_url String? - url String? - categories Category[] - mechanics Mechanic[] - designers Designer[] - publishers Publisher[] - artists Artist[] - names GameName[] - expansions Expansion[] @relation("BaseToExpansion") - expansion_of Expansion[] @relation("ExpansionToBase") - collection_items CollectionItem[] - wishlist_items WishlistItem[] - list_items ListItem[] - external_id Int @unique - last_sync_at DateTime? @db.Timestamp(6) - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@fulltext([slug]) - @@map("games") -} - -model GameName { - id String @id @default(cuid()) - name String - slug String - game_id String - game Game @relation(references: [id], fields: [game_id]) - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@index([game_id]) - @@map("game_names") -} - -model Publisher { - id String @id @default(cuid()) - name String - slug String - external_id Int @unique - games Game[] - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@map("publishers") -} - -model Category { - id String @id @default(cuid()) - name String - slug String - games Game[] - external_id Int @unique - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@map("categories") -} - -model Mechanic { - id String @id @default(cuid()) - name String - slug String - games Game[] - external_id Int @unique - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@map("mechanics") -} - -model Designer { - id String @id @default(cuid()) - name String - slug String - external_id Int @unique - games Game[] - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@map("designers") -} - -model Artist { - id String @id @default(cuid()) - name String - slug String @unique - external_id Int @unique - games Game[] - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@fulltext([name]) - @@map("artists") -} - -model Expansion { - id String @id @default(cuid()) - base_game Game @relation(name: "BaseToExpansion", fields: [base_game_id], references: [id]) - base_game_id String - game Game @relation(name: "ExpansionToBase", fields: [game_id], references: [id]) - game_id String - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @updatedAt @db.Timestamp(6) - - @@index([base_game_id]) - @@index([game_id]) - @@map("expansions") -} diff --git a/prisma/seed.ts b/prisma/seed.ts deleted file mode 100644 index 5961cf8..0000000 --- a/prisma/seed.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -const prisma = new PrismaClient(); - -async function main() { - console.log(`Start seeding ...`); - - console.log('Creating roles ...'); - const existingRoles = await prisma.role.findMany(); - if (existingRoles.length === 0) { - await prisma.role.createMany({ - data: [{ name: 'admin' }, { name: 'user' }] - }); - console.log('Roles created.'); - } else { - console.log('Roles already exist. No action taken.'); - } - - if (!await prisma.publisher.findFirst({ - where: { - external_id: 9999 - } - })) { - console.log('Publisher does not exist. Creating...'); - await prisma.publisher.create({ - data: { - name: 'Unknown', - slug: 'unknown', - external_id: 9999 - } - }); - } - - if (!await prisma.designer.findFirst({ - where: { - external_id: 9999 - } - })) { - console.log('Designer does not exist. Creating...'); - await prisma.designer.create({ - data: { - name: 'Unknown', - slug: 'unknown', - external_id: 9999 - } - }); - } - - if (!await prisma.artist.findFirst({ - where: { - external_id: 9999 - } - })) { - console.log('Artist does not exist. Creating...'); - await prisma.artist.create({ - data: { - name: 'Unknown', - slug: 'unknown', - external_id: 9999 - } - }); - } - // for (const p of userData) { - // const user = await prisma.user.create({ - // data: { - // firstName: p.user.firstName, - // lastName: p.user.lastName, - // email: p.user.email, - // username: p.user.username - // } - // }); - // console.log(`Created user with id: ${user.id}`); - // } - console.log(`Seeding finished.`); -} - -main() - .catch(async (e) => { - console.error(e); - process.exit(1); - }) - .finally(async () => { - await prisma.$disconnect(); - }); diff --git a/src/app.d.ts b/src/app.d.ts index 3bbe70d..b8cb412 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -2,21 +2,20 @@ // for information about these interfaces // and what to do when importing types -import type { PrismaClient, User } from '@prisma/client'; - -type User = Omit; - // src/app.d.ts declare global { namespace App { interface PageData { - flash?: { type: 'success' | 'error' | 'info'; message: string }; + flash?: { + type: 'success' | 'error' | 'info'; + message: string; + data?: Record; + }; } interface Locals { auth: import('lucia').AuthRequest; user: import('lucia').User | null; session: import('lucia').Session | null; - prisma: PrismaClient; startTimer: number; ip: string; country: string; diff --git a/src/hooks.server.ts b/src/hooks.server.ts index a7776f0..760ed9d 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -39,11 +39,12 @@ export const authentication: Handle = async function ({ event, resolve }) { ...sessionCookie.attributes }); } + console.log('session from hooks', JSON.stringify(session, null, 2)); if (!session) { const sessionCookie = lucia.createBlankSessionCookie(); console.log('blank sessionCookie', JSON.stringify(sessionCookie, null, 2)); event.cookies.set(sessionCookie.name, sessionCookie.value, { - path: ".", + path: '.', ...sessionCookie.attributes }); } @@ -57,4 +58,4 @@ export const handle: Handle = sequence( // Sentry.sentryHandle(), authentication ); -// export const handleError = Sentry.handleErrorWithSentry(); \ No newline at end of file +// export const handleError = Sentry.handleErrorWithSentry(); diff --git a/src/lib/components/AddToList.svelte b/src/lib/components/AddToList.svelte index 7756276..27aaafb 100644 --- a/src/lib/components/AddToList.svelte +++ b/src/lib/components/AddToList.svelte @@ -1,14 +1,12 @@
-

Bored Game © {new Date().getFullYear()} | Built by Bradley Shellnut | {PUBLIC_SITE_URL}

+

Bored Game © {new Date().getFullYear()}

+

Built by Bradley Shellnut +

+

{PUBLIC_SITE_URL}

\ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/+page.svelte b/src/routes/(app)/(protected)/admin/+page.svelte index e69de29..90c728a 100644 --- a/src/routes/(app)/(protected)/admin/+page.svelte +++ b/src/routes/(app)/(protected)/admin/+page.svelte @@ -0,0 +1,7 @@ + + +

At the admin page yo!

+ + \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/+page.server.ts b/src/routes/(app)/(protected)/admin/users/+page.server.ts new file mode 100644 index 0000000..6a71ba8 --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/+page.server.ts @@ -0,0 +1,23 @@ +import { redirect } from "sveltekit-flash-message/server"; +import type { PageServerLoad } from "./$types"; +import { notSignedInMessage } from "$lib/flashMessages"; +import db from "$lib/drizzle"; + +export const load: PageServerLoad = async (event) => { + + // TODO: Ensure admin user + if (!event.locals.user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const users = await db.query + .users + .findMany({ + limit: 10, + offset: 0 + }); + + return { + users + }; +}; \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/+page.svelte b/src/routes/(app)/(protected)/admin/users/+page.svelte new file mode 100644 index 0000000..be6e9aa --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/+page.svelte @@ -0,0 +1,10 @@ + + +

Users

+ +
+ +
diff --git a/src/routes/(app)/(protected)/admin/users/[id]/+page.server.ts b/src/routes/(app)/(protected)/admin/users/[id]/+page.server.ts new file mode 100644 index 0000000..bd25f44 --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/[id]/+page.server.ts @@ -0,0 +1,143 @@ +import { and, eq, inArray, not } from 'drizzle-orm'; +import { redirect } from 'sveltekit-flash-message/server'; +import type { PageServerLoad } from './$types'; +import { forbiddenMessage, notSignedInMessage } from '$lib/flashMessages'; +import db from '$lib/drizzle'; +import { roles, user_roles, users } from '../../../../../../schema'; + +export const load: PageServerLoad = async (event) => { + const { params } = event; + const { id } = params; + + // TODO: Ensure admin user + if (!event.locals.user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const foundUser = await db.query.users.findFirst({ + where: eq(users.cuid, id), + with: { + user_roles: { + with: { + role: { + columns: { + name: true, + cuid: true + } + } + } + } + } + }); + + const containsAdminRole = foundUser?.user_roles?.some( + (user_role) => user_role?.role?.name === 'admin' + ); + if (!containsAdminRole) { + console.log('Not an admin'); + redirect(302, '/login', notSignedInMessage, event); + } + + const currentRoleIds = foundUser?.user_roles?.map((user_role) => user_role?.role.cuid) || []; + let availableRoles: { name: string; cuid: string }[] = []; + if (currentRoleIds?.length > 0) { + availableRoles = await db.query.roles.findMany({ + where: not(inArray(roles.cuid, currentRoleIds)), + columns: { + name: true, + cuid: true + } + }); + } + + return { + user: foundUser, + availableRoles + }; +}; + +export const actions = { + addRole: async (event) => { + const { request, locals } = event; + const { user } = locals; + + if (!user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const userRoles = await db.query.user_roles.findMany({ + where: eq(user_roles.user_id, user.id), + with: { + role: { + columns: { + name: true, + cuid: true + } + } + } + }); + + console.log('userRoles', userRoles); + + const containsAdminRole = userRoles.some((user_role) => user_role?.role?.name === 'admin'); + console.log('containsAdminRole', containsAdminRole); + if (!containsAdminRole) { + redirect(302, '/', forbiddenMessage, event); + } + + const data = await request.formData(); + const role = data.get('role'); + const dbRole = await db.query.roles.findFirst({ + where: eq(roles.cuid, role?.toString() ?? '') + }); + console.log('dbRole', dbRole); + if (dbRole) { + await db.insert(user_roles).values({ + user_id: user.id, + role_id: dbRole.id + }); + redirect({ type: 'success', message: `Successfully added role ${dbRole.name}!` }, event); + } else { + redirect({ type: 'error', message: `Failed to add role ${dbRole.name}!` }, event); + } + }, + removeRole: async (event) => { + const { request, locals } = event; + const { user } = locals; + if (!user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const userRoles = await db.query.user_roles.findMany({ + where: eq(user_roles.user_id, user.id), + with: { + role: { + columns: { + name: true, + cuid: true + } + } + } + }); + + const containsAdminRole = userRoles.some((user_role) => user_role?.role?.name === 'admin'); + if (!containsAdminRole) { + redirect(302, '/', forbiddenMessage, event); + } + + const data = await request.formData(); + const role = data.get('role'); + const dbRole = await db.query.roles.findFirst({ + where: eq(roles.cuid, role?.toString() ?? '') + }); + console.log('dbRole', dbRole); + if (dbRole) { + await db + .delete(user_roles) + .where(and(eq(user_roles.user_id, user.id), eq(user_roles.role_id, dbRole.id))); + redirect({ type: 'success', message: `Successfully removed role ${dbRole.name}!` }, event); + } else { + redirect({ type: 'error', message: `Failed to remove role ${dbRole.name} !` }, event); + } + } +}; diff --git a/src/routes/(app)/(protected)/admin/users/[id]/+page.svelte b/src/routes/(app)/(protected)/admin/users/[id]/+page.svelte new file mode 100644 index 0000000..649a444 --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/[id]/+page.svelte @@ -0,0 +1,44 @@ + + +

User Details

+

Username {user?.username}

+

Email Address: {user?.email || 'N/A'}

+

First Name: {user?.first_name || 'N/A'}

+

Last Name: {user?.last_name || 'N/A'}

+ +

User Roles

+{#each user_roles as user_role} + {#if user_role?.role?.name !== 'user'} +
+
+ + +

{capitalize(user_role?.role?.name)}

+
+
+ {:else} +

{capitalize(user_role?.role?.name)}

+ {/if} +{/each} + +

Roles Available to Assign

+ +{#each availableRoles as role} +
+
+ + +

{capitalize(role?.name)}

+
+
+{/each} \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/[id]/add-roles-form.svelte b/src/routes/(app)/(protected)/admin/users/[id]/add-roles-form.svelte new file mode 100644 index 0000000..5e8f10e --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/[id]/add-roles-form.svelte @@ -0,0 +1,82 @@ + + +
+ +
+ Roles + + Select the roles you want to add to the user. + +
+
+ {#each roles as item} + {@const checked = $formData.roles.includes(item.cuid)} +
+ + { + if (v) { + addItem(item.id); + } else { + removeItem(item.id); + } + }} + /> + + {item.label} + + + +
+ {/each} + +
+
+ Update display + {#if browser} + + {/if} + \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/user-table-actions.svelte b/src/routes/(app)/(protected)/admin/users/user-table-actions.svelte new file mode 100644 index 0000000..20ea5a9 --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/user-table-actions.svelte @@ -0,0 +1,37 @@ + + + + + + + + + Actions + navigator.clipboard.writeText(cuid)}> + Copy User ID + + + + + + + View user + + + + \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/user-table-checkbox.svelte b/src/routes/(app)/(protected)/admin/users/user-table-checkbox.svelte new file mode 100644 index 0000000..c34a979 --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/user-table-checkbox.svelte @@ -0,0 +1,8 @@ + + + \ No newline at end of file diff --git a/src/routes/(app)/(protected)/admin/users/user-table.svelte b/src/routes/(app)/(protected)/admin/users/user-table.svelte new file mode 100644 index 0000000..6d0fcaa --- /dev/null +++ b/src/routes/(app)/(protected)/admin/users/user-table.svelte @@ -0,0 +1,232 @@ + + +
+
+ + + + + + + {#each flatColumns as col} + {#if columnsToHide.includes(col.id)} + + {col.header} + + {/if} + {/each} + + +
+
+ + + {#each $headerRows as headerRow} + + + {#each headerRow.cells as cell (cell.id)} + + + {#if cell.id === "email"} + + {:else if cell.id === "username"} + + {:else} + + {/if} + + + {/each} + + + {/each} + + + {#each $pageRows as row (row.id)} + + + {#each row.cells as cell (cell.id)} + + + + + + {/each} + + + {/each} + + +
+
+
+ {Object.keys($selectedDataIds).length} of{" "} + {$rows.length} row(s) selected. +
+ + +
+
diff --git a/src/routes/(app)/(protected)/list/+layout.server.ts b/src/routes/(app)/(protected)/list/+layout.server.ts index 89a6cd1..5ab255b 100644 --- a/src/routes/(app)/(protected)/list/+layout.server.ts +++ b/src/routes/(app)/(protected)/list/+layout.server.ts @@ -1,5 +1,7 @@ -import { fail, redirect } from '@sveltejs/kit'; -import prisma from '$lib/prisma'; +import { fail } from '@sveltejs/kit'; +import { eq } from 'drizzle-orm'; +import db from '$lib/drizzle.js'; +import { wishlists } from '../../../../schema.js'; export async function load({ locals }) { if (!locals.user) { @@ -7,23 +9,12 @@ export async function load({ locals }) { } try { - let wishlists = await prisma.wishlist.findMany({ - where: { - user_id: session.userId - } + const userWishlists = await db.query.wishlists.findMany({ + where: eq(wishlists.user_id, locals.user.id) }); - if (wishlists.length === 0) { - const wishlist = await prisma.wishlist.create({ - data: { - user_id: session.userId - } - }); - wishlists.push(wishlist); - } - return { - wishlists + wishlsits: userWishlists }; } catch (e) { console.error(e); diff --git a/src/routes/(app)/(protected)/list/+layout.svelte b/src/routes/(app)/(protected)/list/+layout.svelte index cbd6fc5..6d59e3a 100644 --- a/src/routes/(app)/(protected)/list/+layout.svelte +++ b/src/routes/(app)/(protected)/list/+layout.svelte @@ -5,20 +5,18 @@ const wishlists = data.wishlists || []; - - -
- - - -
- + +
+ + + +
\ No newline at end of file diff --git a/src/routes/(app)/(protected)/password/change/+page.server.ts b/src/routes/(app)/(protected)/profile/security/password/change/+page.server.ts similarity index 77% rename from src/routes/(app)/(protected)/password/change/+page.server.ts rename to src/routes/(app)/(protected)/profile/security/password/change/+page.server.ts index f6df6e7..1e1d7dc 100644 --- a/src/routes/(app)/(protected)/password/change/+page.server.ts +++ b/src/routes/(app)/(protected)/profile/security/password/change/+page.server.ts @@ -1,16 +1,16 @@ -import { fail, type Actions } from "@sveltejs/kit"; -import { eq } from "drizzle-orm"; +import { fail, type Actions } from '@sveltejs/kit'; +import { eq } from 'drizzle-orm'; import { zod } from 'sveltekit-superforms/adapters'; import { setError, superValidate } from 'sveltekit-superforms/server'; -import { redirect } from 'sveltekit-flash-message/server' -import { Argon2id } from "oslo/password"; -import db from "$lib/drizzle"; +import { redirect } from 'sveltekit-flash-message/server'; +import { Argon2id } from 'oslo/password'; +import type { PageServerLoad } from '../../../$types'; +import db from '$lib/drizzle'; import { changeUserPasswordSchema } from '$lib/validations/account'; import { lucia } from '$lib/server/auth.js'; -import type { PageServerLoad } from "./$types"; -import { users } from "../../../../../schema"; -import { notSignedInMessage } from "$lib/flashMessages"; -import type { Cookie } from "lucia"; +import { users } from '../../../../../../../schema'; +import { notSignedInMessage } from '$lib/flashMessages'; +import type { Cookie } from 'lucia'; export const load: PageServerLoad = async (event) => { const form = await superValidate(event, zod(changeUserPasswordSchema)); @@ -42,7 +42,7 @@ export const actions: Actions = { console.log('updating profile'); if (!event.locals.user) { - redirect(302, '/login', notSignedInMessage, event); + redirect(302, '/login', notSignedInMessage, event); } if (!event.locals.session) { @@ -55,7 +55,7 @@ export const actions: Actions = { where: eq(users.id, user.id) }); - if (!dbUser || !dbUser.hashed_password) { + if (!dbUser?.hashed_password) { form.data.password = ''; form.data.confirm_password = ''; form.data.current_password = ''; @@ -65,7 +65,10 @@ export const actions: Actions = { ); } - const currentPasswordVerified = await new Argon2id().verify(dbUser.hashed_password, form.data.current_password); + const currentPasswordVerified = await new Argon2id().verify( + dbUser.hashed_password, + form.data.current_password + ); if (!currentPasswordVerified) { return setError(form, 'current_password', 'Your password is incorrect'); @@ -78,11 +81,12 @@ export const actions: Actions = { } const hashedPassword = await new Argon2id().hash(form.data.password); await lucia.invalidateUserSessions(user.id); - await db.update(users) + await db + .update(users) .set({ hashed_password: hashedPassword }) .where(eq(users.id, user.id)); - const session = await lucia.createSession(user.id, { - country: event.locals.session?.ip, + await lucia.createSession(user.id, { + country: event.locals.session?.ipCountry ?? 'unknown' }); sessionCookie = lucia.createBlankSessionCookie(); } catch (e) { @@ -93,7 +97,7 @@ export const actions: Actions = { return setError(form, 'current_password', 'Your password is incorrect.'); } event.cookies.set(sessionCookie.name, sessionCookie.value, { - path: ".", + path: '.', ...sessionCookie.attributes }); diff --git a/src/routes/(app)/(protected)/password/change/+page.svelte b/src/routes/(app)/(protected)/profile/security/password/change/+page.svelte similarity index 93% rename from src/routes/(app)/(protected)/password/change/+page.svelte rename to src/routes/(app)/(protected)/profile/security/password/change/+page.svelte index a6f1a45..e5c7422 100644 --- a/src/routes/(app)/(protected)/password/change/+page.svelte +++ b/src/routes/(app)/(protected)/profile/security/password/change/+page.svelte @@ -2,8 +2,8 @@ import { zodClient } from 'sveltekit-superforms/adapters'; import { superForm } from 'sveltekit-superforms/client'; import { AlertTriangle } from 'lucide-svelte'; - import * as Alert from "$lib/components/ui/alert"; - import * as Form from '$lib/components/ui/form'; + import * as Alert from "$components/ui/alert"; + import * as Form from '$components/ui/form'; import { Input } from '$components/ui/input'; import { changeUserPasswordSchema } from '$lib/validations/account'; @@ -55,6 +55,6 @@ \ No newline at end of file diff --git a/src/routes/(app)/(protected)/profile/security/two-factor/+page.server.ts b/src/routes/(app)/(protected)/profile/security/two-factor/+page.server.ts new file mode 100644 index 0000000..68d8dc7 --- /dev/null +++ b/src/routes/(app)/(protected)/profile/security/two-factor/+page.server.ts @@ -0,0 +1,191 @@ +import { type Actions, fail } from '@sveltejs/kit'; +import { eq } from 'drizzle-orm'; +import { encodeHex, decodeHex } from 'oslo/encoding'; +import { Argon2id } from 'oslo/password'; +import { createTOTPKeyURI, TOTPController } from 'oslo/otp'; +import { HMAC } from 'oslo/crypto'; +import QRCode from 'qrcode'; +import { zod } from 'sveltekit-superforms/adapters'; +import { setError, superValidate } from 'sveltekit-superforms/server'; +import { redirect, setFlash } from 'sveltekit-flash-message/server'; +import type { PageServerLoad } from '../../$types'; +import { addTwoFactorSchema, removeTwoFactorSchema } from '$lib/validations/account'; +import { notSignedInMessage } from '$lib/flashMessages'; +import db from '$lib/drizzle'; +import { recovery_codes, users } from '../../../../../../schema'; + +export const load: PageServerLoad = async (event) => { + const addTwoFactorForm = await superValidate(event, zod(addTwoFactorSchema)); + const removeTwoFactorForm = await superValidate(event, zod(removeTwoFactorSchema)); + const user = event.locals.user; + + if (!user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const dbUser = await db.query.users.findFirst({ + where: eq(users.id, user.id), + }); + + if (dbUser?.two_factor_enabled) { + return { + addTwoFactorForm, + removeTwoFactorForm, + twoFactorEnabled: true, + recoveryCodes: [], + totpUri: '', + qrCode: '', + }; + } + const twoFactorSecret = await new HMAC('SHA-1').generateKey(); + await db + .update(users) + .set({ + two_factor_secret: encodeHex(twoFactorSecret), + two_factor_enabled: false, + }) + .where(eq(users.id, user.id)); + + const issuer = 'bored-game'; + const accountName = user.email || user.username; + // pass the website's name and the user identifier (e.g. email, username) + const totpUri = createTOTPKeyURI(issuer, accountName, twoFactorSecret); + + addTwoFactorForm.data = { + current_password: '', + two_factor_code: '', + }; + return { + addTwoFactorForm, + removeTwoFactorForm, + twoFactorEnabled: false, + recoveryCodes: [], + totpUri, + qrCode: await QRCode.toDataURL(totpUri), + }; +}; + +export const actions: Actions = { + enableTwoFactor: async (event) => { + const addTwoFactorForm = await superValidate(event, zod(addTwoFactorSchema)); + + if (!addTwoFactorForm.valid) { + return fail(400, { + addTwoFactorForm, + }); + } + + if (!event.locals.user) { + redirect(302, '/login', notSignedInMessage, event); + } + + if (!event.locals.session) { + return fail(401); + } + + const user = event.locals.user; + + const dbUser = await db.query.users.findFirst({ + where: eq(users.id, user.id), + }); + + if (!dbUser?.hashed_password) { + addTwoFactorForm.data.current_password = ''; + addTwoFactorForm.data.two_factor_code = ''; + return setError( + addTwoFactorForm, + 'Error occurred. Please try again or contact support if you need further help.', + ); + } + + if (dbUser?.two_factor_secret === '' || dbUser?.two_factor_secret === null) { + addTwoFactorForm.data.current_password = ''; + addTwoFactorForm.data.two_factor_code = ''; + return setError( + addTwoFactorForm, + 'Error occurred. Please try again or contact support if you need further help.', + ); + } + + const currentPasswordVerified = await new Argon2id().verify( + dbUser.hashed_password, + addTwoFactorForm.data.current_password, + ); + + if (!currentPasswordVerified) { + return setError(addTwoFactorForm, 'current_password', 'Your password is incorrect'); + } + + if (addTwoFactorForm.data.two_factor_code === '') { + return setError(addTwoFactorForm, 'two_factor_code', 'Please enter a code'); + } + + const twoFactorCode = addTwoFactorForm.data.two_factor_code; + const validOTP = await new TOTPController().verify( + twoFactorCode, + decodeHex(dbUser.two_factor_secret), + ); + + if (!validOTP) { + return setError(addTwoFactorForm, 'two_factor_code', 'Invalid code'); + } + + await db.update(users).set({ two_factor_enabled: true }).where(eq(users.id, user.id)); + + redirect(302, '/profile/security/two-factor/recovery-codes'); + }, + disableTwoFactor: async (event) => { + const { cookies } = event; + const removeTwoFactorForm = await superValidate(event, zod(removeTwoFactorSchema)); + + if (!removeTwoFactorForm.valid) { + return fail(400, { + removeTwoFactorForm, + }); + } + + if (!event.locals.user) { + redirect(302, '/login', notSignedInMessage, event); + } + + if (!event.locals.session) { + return fail(401); + } + + const user = event.locals.user; + + const dbUser = await db.query.users.findFirst({ + where: eq(users.id, user.id), + }); + + if (!dbUser?.hashed_password) { + removeTwoFactorForm.data.current_password = ''; + return setError( + removeTwoFactorForm, + 'Error occurred. Please try again or contact support if you need further help.', + ); + } + + const currentPasswordVerified = await new Argon2id().verify( + dbUser.hashed_password, + removeTwoFactorForm.data.current_password, + ); + + if (!currentPasswordVerified) { + return setError(removeTwoFactorForm, 'current_password', 'Your password is incorrect'); + } + + await db + .update(users) + .set({ two_factor_enabled: false, two_factor_secret: null }) + .where(eq(users.id, user.id)); + await db.delete(recovery_codes).where(eq(recovery_codes.userId, user.id)); + + setFlash({ type: 'success', message: 'Two-Factor Authentication has been disabled.' }, cookies); + return { + removeTwoFactorForm, + twoFactorEnabled: false, + recoveryCodes: [], + }; + }, +}; diff --git a/src/routes/(app)/(protected)/profile/security/two-factor/+page.svelte b/src/routes/(app)/(protected)/profile/security/two-factor/+page.svelte new file mode 100644 index 0000000..4fe3b7b --- /dev/null +++ b/src/routes/(app)/(protected)/profile/security/two-factor/+page.svelte @@ -0,0 +1,72 @@ + + +

Two-Factor Authentication

+ +{#if twoFactorEnabled} +

Currently you have two factor authentication enabled

+

To disable two factor authentication, please enter your current password.

+
+ + + Current Password + + + Please enter your current password. + + + Disable Two Factor Authentication +
+{:else} +

Please scan the following QR Code

+ QR Code +
+ + + Enter Code + + + This is the code from your authenticator app. + + + + + Enter Password + + + Please enter your current password. + + + Submit +
+{/if} \ No newline at end of file diff --git a/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.server.ts b/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.server.ts new file mode 100644 index 0000000..73c6a40 --- /dev/null +++ b/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.server.ts @@ -0,0 +1,55 @@ +import db from '$lib/drizzle'; +import { eq } from 'drizzle-orm'; +import { Argon2id } from 'oslo/password'; +import { alphabet, generateRandomString } from 'oslo/crypto'; +import { redirect } from 'sveltekit-flash-message/server'; +import { notSignedInMessage } from '$lib/flashMessages'; +import type { PageServerLoad } from '../../../$types'; +import { recovery_codes, users } from '../../../../../../../schema'; + +export const load: PageServerLoad = async (event) => { + const user = event.locals.user; + + if (!user) { + redirect(302, '/login', notSignedInMessage, event); + } + + const dbUser = await db.query.users.findFirst({ + where: eq(users.id, user.id), + }); + + if (dbUser?.two_factor_enabled) { + const recoveryCodes = await db.query.recovery_codes.findMany({ + where: eq(recovery_codes.userId, user.id), + }); + + if (recoveryCodes.length === 0) { + const recoveryCodes = Array.from({ length: 5 }, () => + generateRandomString(10, alphabet('A-Z', '0-9')), + ); + if (recoveryCodes) { + for (const code of recoveryCodes) { + const hashedCode = await new Argon2id().hash(code); + console.log('Inserting recovery code', code, hashedCode); + await db.insert(recovery_codes).values({ + userId: user.id, + code: hashedCode, + }); + } + } + return { + recoveryCodes, + }; + } + return { + recoveryCodes: [], + }; + } else { + redirect( + 302, + '/profile', + { message: 'Two-Factor Authentication is not enabled', type: 'error' }, + event, + ); + } +}; diff --git a/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.svelte b/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.svelte new file mode 100644 index 0000000..6f6580f --- /dev/null +++ b/src/routes/(app)/(protected)/profile/security/two-factor/recovery-codes/+page.svelte @@ -0,0 +1,18 @@ + + +

Two-Factor Authentication is enabled

+{#if recoveryCodes && recoveryCodes.length > 0} + {#if recoveryCodes.length > 0} + Please copy the recovery codes below as they will not be shown again. + {#each recoveryCodes as code} +

{code}

+ {/each} + {/if} +{:else} +

You have already viewed your recovery codes.

+

If you wish to generate new codes, please disable and then re-enable two-factor authentication.

+{/if} \ No newline at end of file diff --git a/src/routes/(app)/(protected)/wishlist/+page.server.ts b/src/routes/(app)/(protected)/wishlist/+page.server.ts index 6e7012d..18b376d 100644 --- a/src/routes/(app)/(protected)/wishlist/+page.server.ts +++ b/src/routes/(app)/(protected)/wishlist/+page.server.ts @@ -1,12 +1,12 @@ import { error, type Actions } from '@sveltejs/kit'; +import { and, eq } from 'drizzle-orm'; import { zod } from 'sveltekit-superforms/adapters'; import { superValidate } from 'sveltekit-superforms/server'; import { redirect } from 'sveltekit-flash-message/server'; import { modifyListGameSchema } from '$lib/validations/zod-schemas'; import db from '$lib/drizzle.js'; -import { and, eq } from 'drizzle-orm'; -import { games, wishlist_items, wishlists } from '../../../../schema.js'; import { notSignedInMessage } from '$lib/flashMessages.js'; +import { games, wishlist_items, wishlists } from '../../../../schema.js'; export async function load(event) { const { params, locals } = event; diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts new file mode 100644 index 0000000..028bc42 --- /dev/null +++ b/src/routes/(app)/+layout.server.ts @@ -0,0 +1,10 @@ +import { loadFlash } from 'sveltekit-flash-message/server'; +import type { LayoutServerLoad } from '../$types'; + +export const load: LayoutServerLoad = loadFlash(async ({ url, locals }) => { + console.log('user from app', locals.user); + return { + url: url.pathname, + user: locals.user + }; +}); diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index c0879e8..30eaa47 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -4,6 +4,8 @@ import Footer from '$components/Footer.svelte'; export let data; + + console.log('layout data user', data.user);
diff --git a/src/routes/(app)/+page.server.ts b/src/routes/(app)/+page.server.ts index 84b1ace..907ae29 100644 --- a/src/routes/(app)/+page.server.ts +++ b/src/routes/(app)/+page.server.ts @@ -1,8 +1,5 @@ -import { superValidate } from 'sveltekit-superforms/server'; -import { search_schema } from '$lib/zodValidation'; import type { MetaTagsProps } from 'svelte-meta-tags'; import type { PageServerLoad } from './$types'; -import type { Game } from '@prisma/client'; export const load: PageServerLoad = async ({ fetch, url }) => { const image = { diff --git a/src/routes/(auth)/+layout.server.ts b/src/routes/(auth)/+layout.server.ts index 78c3b0d..e371530 100644 --- a/src/routes/(auth)/+layout.server.ts +++ b/src/routes/(auth)/+layout.server.ts @@ -3,9 +3,6 @@ import { notSignedInMessage } from '$lib/flashMessages'; export async function load(event) { const { url, locals } = event; - if (locals.user) { - redirect(302, '/', notSignedInMessage, event); - } return { url: url.pathname, diff --git a/src/routes/(auth)/login/+page.server.ts b/src/routes/(auth)/login/+page.server.ts index a21b266..ffef1ff 100644 --- a/src/routes/(auth)/login/+page.server.ts +++ b/src/routes/(auth)/login/+page.server.ts @@ -1,13 +1,16 @@ -import { fail, type Actions } from '@sveltejs/kit'; -import { eq } from 'drizzle-orm'; +import { fail, error, type Actions } from '@sveltejs/kit'; +import { and, eq, ne } from 'drizzle-orm'; +import { Argon2id } from 'oslo/password'; +import { decodeHex } from 'oslo/encoding'; +import { TOTPController } from 'oslo/otp'; import { zod } from 'sveltekit-superforms/adapters'; import { setError, superValidate } from 'sveltekit-superforms/server'; import { redirect } from 'sveltekit-flash-message/server'; -import { Argon2id } from 'oslo/password'; +import { RateLimiter } from 'sveltekit-rate-limiter/server'; import db from '$lib/drizzle'; import { lucia } from '$lib/server/auth'; -import { signInSchema } from '$lib/validations/auth' -import { collections, users, wishlists } from '../../../schema'; +import { signInSchema } from '$lib/validations/auth'; +import { users, recovery_codes } from '../../../schema'; import type { PageServerLoad } from './$types'; export const load: PageServerLoad = async (event) => { @@ -19,19 +22,28 @@ export const load: PageServerLoad = async (event) => { const form = await superValidate(event, zod(signInSchema)); return { - form + form, }; }; +const limiter = new RateLimiter({ + // A rate is defined by [number, unit] + IPUA: [5, 'm'], +}); + export const actions: Actions = { default: async (event) => { + if (await limiter.isLimited(event)) { + throw error(429); + } + const { locals } = event; const form = await superValidate(event, zod(signInSchema)); if (!form.valid) { form.data.password = ''; return fail(400, { - form + form, }); } @@ -41,12 +53,12 @@ export const actions: Actions = { const password = form.data.password; const user = await db.query.users.findFirst({ - where: eq(users.username, form.data.username) + where: eq(users.username, form.data.username), }); console.log('user', JSON.stringify(user, null, 2)); - if (!user || !user.hashed_password) { + if (!user?.hashed_password) { form.data.password = ''; return setError(form, '', 'Your username or password is incorrect.'); } @@ -58,26 +70,54 @@ export const actions: Actions = { return setError(form, '', 'Your username or password is incorrect.'); } - await db - .insert(collections) - .values({ - user_id: user.id - }) - .onConflictDoNothing(); - await db - .insert(wishlists) - .values({ - user_id: user.id - }) - .onConflictDoNothing(); + // await db + // .insert(collections) + // .values({ + // user_id: user.id, + // }) + // .onConflictDoNothing(); + // await db + // .insert(wishlists) + // .values({ + // user_id: user.id, + // }) + // .onConflictDoNothing(); + if (user?.two_factor_enabled && user?.two_factor_secret && !form?.data?.totpToken) { + return fail(400, { + form, + twoFactorRequired: true, + }); + } else if (user?.two_factor_enabled && user?.two_factor_secret && form?.data?.totpToken) { + console.log('totpToken', form.data.totpToken); + const validOTP = await new TOTPController().verify( + form.data.totpToken, + decodeHex(user.two_factor_secret), + ); + console.log('validOTP', validOTP); + + if (!validOTP) { + console.log('invalid TOTP code check for recovery codes'); + const usedRecoveryCode = await checkRecoveryCode(form?.data?.totpToken, user.id); + if (!usedRecoveryCode) { + console.log('invalid TOTP code'); + form.errors.totpToken = ['Invalid code']; + return fail(400, { + form, + twoFactorRequired: true, + }); + } + } + } console.log('ip', locals.ip); console.log('country', locals.country); session = await lucia.createSession(user.id, { ip_country: locals.country, - ip_address: locals.ip + ip_address: locals.ip, }); + console.log('logging in session', session); sessionCookie = lucia.createSessionCookie(session.id); + console.log('logging in session cookie', sessionCookie); } catch (e) { // TODO: need to return error message to the client console.error(e); @@ -85,14 +125,34 @@ export const actions: Actions = { return setError(form, '', 'Your username or password is incorrect.'); } + console.log('setting session cookie', sessionCookie); event.cookies.set(sessionCookie.name, sessionCookie.value, { - path: ".", - ...sessionCookie.attributes + path: '.', + ...sessionCookie.attributes, }); form.data.username = ''; form.data.password = ''; const message = { type: 'success', message: 'Signed In!' } as const; - redirect('/', message, event); - } + redirect(302, '/', message, event); + }, }; + +async function checkRecoveryCode(recoveryCode: string, userId: string) { + const userRecoveryCodes = await db.query.recovery_codes.findMany({ + where: and(eq(recovery_codes.used, false), eq(recovery_codes.userId, userId)), + }); + for (const code of userRecoveryCodes) { + const validRecoveryCode = await new Argon2id().verify(code.code, recoveryCode); + if (validRecoveryCode) { + await db + .update(recovery_codes) + .set({ + used: true, + }) + .where(eq(recovery_codes.id, code.id)); + return true; + } + } + return false; +} diff --git a/src/routes/(auth)/login/+page.svelte b/src/routes/(auth)/login/+page.svelte index 8a55220..0b0ddde 100644 --- a/src/routes/(auth)/login/+page.svelte +++ b/src/routes/(auth)/login/+page.svelte @@ -4,6 +4,7 @@ import * as flashModule from 'sveltekit-flash-message/client'; import { AlertCircle } from "lucide-svelte"; import { signInSchema } from '$lib/validations/auth'; + import * as Form from '$lib/components/ui/form'; import { Label } from '$components/ui/label'; import { Input } from '$components/ui/input'; import { Button } from '$components/ui/button'; @@ -11,7 +12,9 @@ import { boredState } from '$lib/stores/boredState.js'; export let data; - const { form, errors, enhance } = superForm(data.form, { + export let form; + + const superLoginForm = superForm(data.form, { onSubmit: () => boredState.update((n) => ({ ...n, loading: true })), onResult: () => boredState.update((n) => ({ ...n, loading: false })), flashMessage: { @@ -30,6 +33,8 @@ validationMethod: 'oninput', delayMs: 0, }); + + const { form: loginForm, errors, enhance } = superLoginForm; @@ -43,20 +48,30 @@ > Log into your account - - - - - - {#if $errors._errors} - - - Error - - {$errors._errors} - - + + + Username + + + + + + + Password + + + + + {#if form?.twoFactorRequired} + + + Two Factor Code or Recovery Code + + + + {/if} + Login

By clicking continue, you agree to our diff --git a/src/routes/(auth)/logout/+page.server.ts b/src/routes/(auth)/logout/+page.server.ts index 9fdfe9b..49655a5 100644 --- a/src/routes/(auth)/logout/+page.server.ts +++ b/src/routes/(auth)/logout/+page.server.ts @@ -1,8 +1,8 @@ import { fail } from '@sveltejs/kit'; -import { lucia } from '$lib/server/auth'; -import type { Actions } from "./$types"; import { redirect } from 'sveltekit-flash-message/server'; +import { lucia } from '$lib/server/auth'; import { notSignedInMessage } from '$lib/flashMessages'; +import type { Actions } from "./$types"; export const actions: Actions = { default: async (event) => { diff --git a/src/routes/(app)/(protected)/password/reset/+page.server.ts b/src/routes/(auth)/password/reset/+page.server.ts similarity index 100% rename from src/routes/(app)/(protected)/password/reset/+page.server.ts rename to src/routes/(auth)/password/reset/+page.server.ts diff --git a/src/routes/(app)/(protected)/password/reset/+page.svelte b/src/routes/(auth)/password/reset/+page.svelte similarity index 100% rename from src/routes/(app)/(protected)/password/reset/+page.svelte rename to src/routes/(auth)/password/reset/+page.svelte diff --git a/src/routes/(auth)/sign-up/+page.server.ts b/src/routes/(auth)/sign-up/+page.server.ts index 808915a..8bd15e1 100644 --- a/src/routes/(auth)/sign-up/+page.server.ts +++ b/src/routes/(auth)/sign-up/+page.server.ts @@ -1,16 +1,22 @@ -import { fail, error, type Actions } from '@sveltejs/kit'; -import { Argon2id } from 'oslo/password'; -import { eq } from 'drizzle-orm'; -import { nanoid } from 'nanoid'; -import { zod } from 'sveltekit-superforms/adapters'; -import { setError, superValidate } from 'sveltekit-superforms/server'; -import { redirect } from 'sveltekit-flash-message/server'; -import type { PageServerLoad } from './$types'; -import { lucia } from '$lib/server/auth'; -import { signUpSchema } from '$lib/validations/auth'; -import { add_user_to_role } from '$server/roles'; +import {fail, error, type Actions} from '@sveltejs/kit'; +import {Argon2id} from 'oslo/password'; +import {eq} from 'drizzle-orm'; +import {zod} from 'sveltekit-superforms/adapters'; +import {setError, superValidate} from 'sveltekit-superforms/server'; +import {redirect} from 'sveltekit-flash-message/server'; +import {RateLimiter} from 'sveltekit-rate-limiter/server'; +import type {PageServerLoad} from './$types'; +import {lucia} from '$lib/server/auth'; +import {signUpSchema} from '$lib/validations/auth'; +import {add_user_to_role} from '$server/roles'; import db from '$lib/drizzle'; -import { collections, users, wishlists } from '../../../schema'; +import {collections, users, wishlists} from '../../../schema'; +import {createId as cuid2} from '@paralleldrive/cuid2'; + +const limiter = new RateLimiter({ + // A rate is defined by [number, unit] + IPUA: [5, 'm'] +}); const signUpDefaults = { firstName: '', @@ -23,10 +29,15 @@ const signUpDefaults = { }; export const load: PageServerLoad = async (event) => { - redirect(302, '/waitlist', { type: 'error', message: 'Sign-up not yet available. Please add your email to the waitlist!' }, event); + // redirect( + // 302, + // '/waitlist', + // { type: 'error', message: 'Sign-up not yet available. Please add your email to the waitlist!' }, + // event + // ); if (event.locals.user) { - const message = { type: 'success', message: 'You are already signed in' } as const; + const message = {type: 'success', message: 'You are already signed in'} as const; throw redirect('/', message, event); } @@ -39,7 +50,10 @@ export const load: PageServerLoad = async (event) => { export const actions: Actions = { default: async (event) => { - fail(401, { message: 'Sign-up not yet available. Please add your email to the waitlist!' }); + if (await limiter.isLimited(event)) { + throw error(429); + } + // fail(401, { message: 'Sign-up not yet available. Please add your email to the waitlist!' }); const form = await superValidate(event, zod(signUpSchema)); if (!form.valid) { form.data.password = ''; @@ -54,9 +68,9 @@ export const actions: Actions = { // Adding user to the db console.log('Check if user already exists'); - const existing_user = await db.query - .users - .findFirst({ where: eq(users.username, form.data.username) }); + const existing_user = await db.query.users.findFirst({ + where: eq(users.username, form.data.username) + }); if (existing_user) { return setError(form, 'username', 'You cannot create an account with that username'); @@ -66,35 +80,37 @@ export const actions: Actions = { const hashedPassword = await new Argon2id().hash(form.data.password); - const user = await db.insert(users) - .values({ - username: form.data.username, - hashed_password: hashedPassword, - email: form.data.email, - first_name: form.data.firstName || '', - last_name: form.data.lastName || '', - verified: false, - receive_email: false, - theme: 'system' - }).returning(); + const user = await db + .insert(users) + .values({ + username: form.data.username, + hashed_password: hashedPassword, + email: form.data.email, + first_name: form.data.firstName ?? '', + last_name: form.data.lastName ?? '', + verified: false, + receive_email: false, + theme: 'system', + two_factor_secret: '', + two_factor_enabled: false + }) + .returning(); console.log('signup user', user); if (!user || user.length === 0) { return fail(400, { form, - message: `Could not create your account. Please try again. If the problem persists, please contact support. Error ID: ${nanoid()}` + message: `Could not create your account. Please try again. If the problem persists, please contact support. Error ID: ${cuid2()}` }); } - add_user_to_role(user[0].id, 'user'); - await db.insert(collections) - .values({ - user_id: user[0].id - }); - await db.insert(wishlists) - .values({ - user_id: user[0].id - }); + add_user_to_role(user[0].id, 'user', true); + await db.insert(collections).values({ + user_id: user[0].id + }); + await db.insert(wishlists).values({ + user_id: user[0].id + }); try { session = await lucia.createSession(user[0].id, { @@ -118,7 +134,7 @@ export const actions: Actions = { } event.cookies.set(sessionCookie.name, sessionCookie.value, { - path: ".", + path: '.', ...sessionCookie.attributes }); diff --git a/src/routes/(auth)/sign-up/+page.svelte b/src/routes/(auth)/sign-up/+page.svelte index 2f99bfa..6214703 100644 --- a/src/routes/(auth)/sign-up/+page.svelte +++ b/src/routes/(auth)/sign-up/+page.svelte @@ -4,7 +4,7 @@ import { zodClient } from 'sveltekit-superforms/adapters'; import { superForm } from 'sveltekit-superforms/client'; import * as flashModule from 'sveltekit-flash-message/client'; - import { ChevronsUpDown } from "lucide-svelte"; + import { ChevronsUpDown } from 'lucide-svelte'; import { Button } from '$components/ui/button'; import { Label } from '$components/ui/label'; import { Input } from '$components/ui/input'; @@ -15,20 +15,20 @@ export let data; - const { form, errors, enhance } = superForm(data.form, { + const { form, errors, enhance } = superForm(data.form, { onSubmit: () => boredState.update((n) => ({ ...n, loading: true })), - onResult: () => boredState.update((n) => ({ ...n, loading: false })), + onResult: () => boredState.update((n) => ({ ...n, loading: false })), flashMessage: { module: flashModule, onError: ({ result, message }) => { const errorMessage = result.error.message; message.set({ type: 'error', message: errorMessage }); - }, + } }, - taintedMessage: null, - validators: zodClient(signUpSchema), - delayMs: 0, - }); + taintedMessage: null, + validators: zodClient(signUpSchema), + delayMs: 0 + }); let collapsibleOpen = false; @@ -41,17 +41,22 @@

Signup for an account

- + {#if $errors.username}

{$errors.username}

{/if} - + {#if $errors.password}

{$errors.password}

{/if} - + {#if $errors.confirm_password}

{$errors.confirm_password}

{/if} @@ -68,7 +73,8 @@
- + {#if $errors.email}

{$errors.email}

{/if} @@ -77,7 +83,9 @@
- + {#if $errors.firstName}

{$errors.firstName}

{/if} @@ -86,7 +94,9 @@
- + {#if $errors.lastName}

{$errors.lastName}

{/if} @@ -101,11 +111,12 @@ Heads up! - Without an email address, you won't be able to reset your password. Submit only if you are sure. You can always add this later. + Without an email address, you won't be able to reset your password. Submit only if you are sure. You can + always add this later. {/if} - +