diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx index 2b20b0b..9ec762a 100644 --- a/app/admin/layout.tsx +++ b/app/admin/layout.tsx @@ -30,15 +30,15 @@ const AdminLayout: React.FC = ({ children }) => { setUserRole(role); } else { setIsAuthenticated(false); - router.push('/auth/Login'); + router.push('/login'); } } else { setIsAuthenticated(false); - router.push('/auth/Login'); + router.push('/login'); } } else { setIsAuthenticated(false); - router.push('/auth/Login'); + router.push('/login'); } setLoading(false); }); diff --git a/app/layout.tsx b/app/layout.tsx index 2838ddd..f784da8 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; +import BottomNavBar from "@/components/bottomNavbar"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -28,6 +29,7 @@ export default function RootLayout({ className={`${geistSans.variable} ${geistMono.variable} antialiased`} > {children} + ); diff --git a/app/login/page.tsx b/app/login/page.tsx index 9734f76..65f8256 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -141,9 +141,7 @@ export default function AuthPage() {

Secure authentication powered by Google

-

- Sign in with pkd skp mail -

+ ); diff --git a/components/Navbar.tsx b/components/Navbar.tsx index bb8e920..d70a407 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -5,6 +5,7 @@ import Link from "next/link"; import { onAuthStateChanged } from "@/lib/firebase/auth"; import { signOut, getAuth, User } from "firebase/auth"; import { useRouter } from "next/navigation"; +import { ArrowLeftIcon } from "lucide-react"; const Navbar = () => { const [user, setUser] = useState(null); @@ -31,32 +32,55 @@ const Navbar = () => { return ( ); diff --git a/components/bottomNavbar.tsx b/components/bottomNavbar.tsx new file mode 100644 index 0000000..23816d5 --- /dev/null +++ b/components/bottomNavbar.tsx @@ -0,0 +1,52 @@ +"use client"; + +import Link from "next/link"; +import { useState } from "react"; +import { bottomTabs } from "@/data/nav"; + +const BottomNavBar = () => { + const [activeTab, setActiveTab] = useState("home"); + const [hoveredTab, setHoveredTab] = useState(null); + + return ( + + ); +}; + +export default BottomNavBar; diff --git a/components/loadingScrenn.tsx b/components/loadingScrenn.tsx index b005e4a..a6223da 100644 --- a/components/loadingScrenn.tsx +++ b/components/loadingScrenn.tsx @@ -28,7 +28,7 @@ const LoadingScreen = () => { secAnim ? "move-left" : " " }`} > - Project + Gecian {" "} { secAnim ? "move-right" : " " }`} > - Archi + H - ve + ub diff --git a/data/nav.ts b/data/nav.ts new file mode 100644 index 0000000..c05657d --- /dev/null +++ b/data/nav.ts @@ -0,0 +1,9 @@ +import { Book, Calendar2, Calendar, Home2, Money } from "iconsax-react"; + +export const bottomTabs = [ + { name: "home", icon: Home2, href: "https://gecian-hub.netlify.app/", label: "Home" }, + { name: "studymaterial", icon: Book, href: "https://www.ktunotes.in/", label: "Study" }, + { name: "attendance", icon: Calendar2, href: "https://gecian-hub.netlify.app/attendance/calendar", label: "Attendance" }, + { name: "finance", icon: Money, href: "https://gecian-hub.netlify.app/expense", label: "Finance" }, + { name: "event", icon: Calendar, href: "https://gecian-hub.netlify.app/events", label: "Event" }, +]; diff --git a/drizzle/migrations/0000_initial_schema.sql b/drizzle/migrations/0000_initial_schema.sql deleted file mode 100644 index fda62cc..0000000 --- a/drizzle/migrations/0000_initial_schema.sql +++ /dev/null @@ -1,51 +0,0 @@ -CREATE TABLE "categories" ( - "category_id" serial PRIMARY KEY NOT NULL, - "category" varchar(100) NOT NULL, - "option_id" integer -); ---> statement-breakpoint -CREATE TABLE "department" ( - "option_id" serial PRIMARY KEY NOT NULL, - "option_name" varchar(100) -); ---> statement-breakpoint -CREATE TABLE "domain" ( - "option_id" serial PRIMARY KEY NOT NULL, - "option_name" varchar(100) -); ---> statement-breakpoint -CREATE TABLE "project_type" ( - "option_id" serial PRIMARY KEY NOT NULL, - "option_name" varchar(100) -); ---> statement-breakpoint -CREATE TABLE "projects" ( - "project_id" serial PRIMARY KEY NOT NULL, - "project_name" varchar(255) NOT NULL, - "project_description" text, - "project_link" varchar(255), - "created_at" timestamp DEFAULT now(), - "created_by_uid" integer, - "category_id" integer -); ---> statement-breakpoint -CREATE TABLE "team_members" ( - "member_id" serial PRIMARY KEY NOT NULL, - "project_id" integer, - "name" varchar(100), - "linkedin" varchar(255) -); ---> statement-breakpoint -CREATE TABLE "users" ( - "uid" serial PRIMARY KEY NOT NULL, - "user_role" varchar(50) NOT NULL -); ---> statement-breakpoint -CREATE TABLE "year_of_submission" ( - "option_id" serial PRIMARY KEY NOT NULL, - "option_name" varchar(50) -); ---> statement-breakpoint -ALTER TABLE "projects" ADD CONSTRAINT "projects_created_by_uid_users_uid_fk" FOREIGN KEY ("created_by_uid") REFERENCES "public"."users"("uid") ON DELETE no action ON UPDATE no action;--> statement-breakpoint -ALTER TABLE "projects" ADD CONSTRAINT "projects_category_id_categories_category_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("category_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint -ALTER TABLE "team_members" ADD CONSTRAINT "team_members_project_id_projects_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("project_id") ON DELETE no action ON UPDATE no action; \ No newline at end of file diff --git a/drizzle/migrations/0000_square_hemingway.sql b/drizzle/migrations/0000_square_hemingway.sql new file mode 100644 index 0000000..4e5c2b8 --- /dev/null +++ b/drizzle/migrations/0000_square_hemingway.sql @@ -0,0 +1,50 @@ +CREATE TABLE "categories" ( + "category_id" serial PRIMARY KEY NOT NULL, + "category" varchar(100) NOT NULL +); +--> statement-breakpoint +CREATE TABLE "category_option_values" ( + "option_id" serial PRIMARY KEY NOT NULL, + "option_name" varchar(255) NOT NULL, + "category_id" integer +); +--> statement-breakpoint +CREATE TABLE "project_options" ( + "id" serial PRIMARY KEY NOT NULL, + "project_id" integer, + "category_id" integer, + "option_id" integer +); +--> statement-breakpoint +CREATE TABLE "projects" ( + "project_id" serial PRIMARY KEY NOT NULL, + "project_name" varchar(255) NOT NULL, + "project_description" text, + "project_link" varchar(255), + "created_at" timestamp DEFAULT now(), + "created_by_uid" varchar(255), + "custom_domain" varchar(255), + "contact_instagram" varchar(255), + "contact_linkedin" varchar(255), + "contact_email" varchar(255), + "contact_whatsapp" varchar(255) +); +--> statement-breakpoint +CREATE TABLE "team_members" ( + "member_id" serial PRIMARY KEY NOT NULL, + "project_id" integer, + "name" varchar(100), + "linkedin" varchar(255) +); +--> statement-breakpoint +CREATE TABLE "users" ( + "uid" varchar(255) PRIMARY KEY NOT NULL, + "user_role" varchar(50) NOT NULL +); +--> statement-breakpoint +ALTER TABLE "category_option_values" ADD CONSTRAINT "category_option_values_category_id_categories_category_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("category_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "project_options" ADD CONSTRAINT "project_options_project_id_projects_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("project_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "project_options" ADD CONSTRAINT "project_options_category_id_categories_category_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("category_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "project_options" ADD CONSTRAINT "project_options_option_id_category_option_values_option_id_fk" FOREIGN KEY ("option_id") REFERENCES "public"."category_option_values"("option_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "projects" ADD CONSTRAINT "projects_created_by_uid_users_uid_fk" FOREIGN KEY ("created_by_uid") REFERENCES "public"."users"("uid") ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE "team_members" ADD CONSTRAINT "team_members_project_id_projects_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("project_id") ON DELETE no action ON UPDATE no action; \ No newline at end of file diff --git a/drizzle/migrations/0001_initial_schema.sql b/drizzle/migrations/0001_initial_schema.sql deleted file mode 100644 index 7804b47..0000000 --- a/drizzle/migrations/0001_initial_schema.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE "project_options" ( - "id" serial PRIMARY KEY NOT NULL, - "project_id" integer, - "category_id" integer, - "option_id" integer -); ---> statement-breakpoint -ALTER TABLE "project_options" ADD CONSTRAINT "project_options_project_id_projects_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("project_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint -ALTER TABLE "project_options" ADD CONSTRAINT "project_options_category_id_categories_category_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("category_id") ON DELETE no action ON UPDATE no action; \ No newline at end of file diff --git a/drizzle/migrations/0002_seed_data.ts b/drizzle/migrations/0002_seed_data.ts deleted file mode 100644 index 61e056b..0000000 --- a/drizzle/migrations/0002_seed_data.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as schema from "../../lib/schema"; -import { PgDatabase } from "drizzle-orm/pg-core"; -import { NodePgDatabase, drizzle } from "drizzle-orm/node-postgres"; -import { Pool } from "pg"; -import { eq } from "drizzle-orm"; - -export async function up(db: NodePgDatabase) { - // Data seeding logic removed as projects.json and filters.json have been deleted and data is in DB. - // This migration should now be a no-op if re-run. -} - -export async function down(db: NodePgDatabase) { - // Down migration logic removed as it was tied to the initial data seeding. -} \ No newline at end of file diff --git a/drizzle/migrations/0002_steady_ricochet.sql b/drizzle/migrations/0002_steady_ricochet.sql deleted file mode 100644 index 83a3d2e..0000000 --- a/drizzle/migrations/0002_steady_ricochet.sql +++ /dev/null @@ -1,7 +0,0 @@ -CREATE TABLE "category_option_values" ( - "option_id" serial PRIMARY KEY NOT NULL, - "option_name" varchar(255) NOT NULL, - "category_id" integer NOT NULL -); ---> statement-breakpoint -ALTER TABLE "category_option_values" ADD CONSTRAINT "category_option_values_category_id_categories_category_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("category_id") ON DELETE no action ON UPDATE no action; \ No newline at end of file diff --git a/drizzle/migrations/0003_fixed_warpath.sql b/drizzle/migrations/0003_fixed_warpath.sql deleted file mode 100644 index f2e6279..0000000 --- a/drizzle/migrations/0003_fixed_warpath.sql +++ /dev/null @@ -1,16 +0,0 @@ -ALTER TABLE "department" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint -ALTER TABLE "domain" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint -ALTER TABLE "project_type" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint -ALTER TABLE "year_of_submission" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint -DROP TABLE "department" CASCADE;--> statement-breakpoint -DROP TABLE "domain" CASCADE;--> statement-breakpoint -DROP TABLE "project_type" CASCADE;--> statement-breakpoint -DROP TABLE "year_of_submission" CASCADE;--> statement-breakpoint -ALTER TABLE "projects" DROP CONSTRAINT "projects_category_id_categories_category_id_fk"; ---> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "project_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "category_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "option_id" SET NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ADD CONSTRAINT "project_options_option_id_category_option_values_option_id_fk" FOREIGN KEY ("option_id") REFERENCES "public"."category_option_values"("option_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint -ALTER TABLE "categories" DROP COLUMN "option_id";--> statement-breakpoint -ALTER TABLE "projects" DROP COLUMN "category_id"; \ No newline at end of file diff --git a/drizzle/migrations/0004_opposite_avengers.sql b/drizzle/migrations/0004_opposite_avengers.sql deleted file mode 100644 index 94a465e..0000000 --- a/drizzle/migrations/0004_opposite_avengers.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "projects" ADD COLUMN "custom_domain" varchar(255); \ No newline at end of file diff --git a/drizzle/migrations/0005_add_project_contact_fields.sql b/drizzle/migrations/0005_add_project_contact_fields.sql deleted file mode 100644 index 72103db..0000000 --- a/drizzle/migrations/0005_add_project_contact_fields.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Migration: Add contact fields for project collaboration -ALTER TABLE projects ADD COLUMN contact_instagram VARCHAR(255); -ALTER TABLE projects ADD COLUMN contact_linkedin VARCHAR(255); -ALTER TABLE projects ADD COLUMN contact_email VARCHAR(255); -ALTER TABLE projects ADD COLUMN contact_whatsapp VARCHAR(255); \ No newline at end of file diff --git a/drizzle/migrations/0005_slow_excalibur.sql b/drizzle/migrations/0005_slow_excalibur.sql deleted file mode 100644 index 806d8a3..0000000 --- a/drizzle/migrations/0005_slow_excalibur.sql +++ /dev/null @@ -1,10 +0,0 @@ -ALTER TABLE "category_option_values" ALTER COLUMN "category_id" DROP NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "project_id" DROP NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "category_id" DROP NOT NULL;--> statement-breakpoint -ALTER TABLE "project_options" ALTER COLUMN "option_id" DROP NOT NULL;--> statement-breakpoint -ALTER TABLE "projects" ALTER COLUMN "created_by_uid" SET DATA TYPE varchar(255);--> statement-breakpoint -ALTER TABLE "users" ALTER COLUMN "uid" SET DATA TYPE varchar(255);--> statement-breakpoint -ALTER TABLE "projects" ADD COLUMN "contact_instagram" varchar(255);--> statement-breakpoint -ALTER TABLE "projects" ADD COLUMN "contact_linkedin" varchar(255);--> statement-breakpoint -ALTER TABLE "projects" ADD COLUMN "contact_email" varchar(255);--> statement-breakpoint -ALTER TABLE "projects" ADD COLUMN "contact_whatsapp" varchar(255); \ No newline at end of file diff --git a/drizzle/migrations/meta/0000_snapshot.json b/drizzle/migrations/meta/0000_snapshot.json index f0b9995..03e6ca6 100644 --- a/drizzle/migrations/meta/0000_snapshot.json +++ b/drizzle/migrations/meta/0000_snapshot.json @@ -1,5 +1,5 @@ { - "id": "a5fa4e3f-930c-4bab-9e83-94283f0b8af1", + "id": "67c7c809-53b4-46fa-8d9c-8f7fdd8f08ff", "prevId": "00000000-0000-0000-0000-000000000000", "version": "7", "dialect": "postgresql", @@ -19,12 +19,6 @@ "type": "varchar(100)", "primaryKey": false, "notNull": true - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false } }, "indexes": {}, @@ -35,8 +29,8 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "public.department": { - "name": "department", + "public.category_option_values": { + "name": "category_option_values", "schema": "", "columns": { "option_id": { @@ -47,63 +41,110 @@ }, "option_name": { "name": "option_name", - "type": "varchar(100)", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "category_id": { + "name": "category_id", + "type": "integer", "primaryKey": false, "notNull": false } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "category_option_values_category_id_categories_category_id_fk": { + "name": "category_option_values_category_id_categories_category_id_fk", + "tableFrom": "category_option_values", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "category_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, - "public.domain": { - "name": "domain", + "public.project_options": { + "name": "project_options", "schema": "", "columns": { - "option_id": { - "name": "option_id", + "id": { + "name": "id", "type": "serial", "primaryKey": true, "notNull": true }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", + "project_id": { + "name": "project_id", + "type": "integer", "primaryKey": false, "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_type": { - "name": "project_type", - "schema": "", - "columns": { + }, + "category_id": { + "name": "category_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, "option_id": { "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", + "type": "integer", "primaryKey": false, "notNull": false } }, "indexes": {}, - "foreignKeys": {}, + "foreignKeys": { + "project_options_project_id_projects_project_id_fk": { + "name": "project_options_project_id_projects_project_id_fk", + "tableFrom": "project_options", + "tableTo": "projects", + "columnsFrom": [ + "project_id" + ], + "columnsTo": [ + "project_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "project_options_category_id_categories_category_id_fk": { + "name": "project_options_category_id_categories_category_id_fk", + "tableFrom": "project_options", + "tableTo": "categories", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "category_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "project_options_option_id_category_option_values_option_id_fk": { + "name": "project_options_option_id_category_option_values_option_id_fk", + "tableFrom": "project_options", + "tableTo": "category_option_values", + "columnsFrom": [ + "option_id" + ], + "columnsTo": [ + "option_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, @@ -147,13 +188,37 @@ }, "created_by_uid": { "name": "created_by_uid", - "type": "integer", + "type": "varchar(255)", "primaryKey": false, "notNull": false }, - "category_id": { - "name": "category_id", - "type": "integer", + "custom_domain": { + "name": "custom_domain", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_instagram": { + "name": "contact_instagram", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_linkedin": { + "name": "contact_linkedin", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_email": { + "name": "contact_email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false + }, + "contact_whatsapp": { + "name": "contact_whatsapp", + "type": "varchar(255)", "primaryKey": false, "notNull": false } @@ -172,19 +237,6 @@ ], "onDelete": "no action", "onUpdate": "no action" - }, - "projects_category_id_categories_category_id_fk": { - "name": "projects_category_id_categories_category_id_fk", - "tableFrom": "projects", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" } }, "compositePrimaryKeys": {}, @@ -250,7 +302,7 @@ "columns": { "uid": { "name": "uid", - "type": "serial", + "type": "varchar(255)", "primaryKey": true, "notNull": true }, @@ -268,31 +320,6 @@ "policies": {}, "checkConstraints": {}, "isRLSEnabled": false - }, - "public.year_of_submission": { - "name": "year_of_submission", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(50)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false } }, "enums": {}, diff --git a/drizzle/migrations/meta/0001_snapshot.json b/drizzle/migrations/meta/0001_snapshot.json deleted file mode 100644 index 440e342..0000000 --- a/drizzle/migrations/meta/0001_snapshot.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "id": "b5ca59de-09c5-4caf-b357-ce4ec160de02", - "prevId": "a5fa4e3f-930c-4bab-9e83-94283f0b8af1", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.categories": { - "name": "categories", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "category": { - "name": "category", - "type": "varchar(100)", - "primaryKey": false, - "notNull": true - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.department": { - "name": "department", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.domain": { - "name": "domain", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_options": { - "name": "project_options", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "project_options_project_id_projects_project_id_fk": { - "name": "project_options_project_id_projects_project_id_fk", - "tableFrom": "project_options", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_category_id_categories_category_id_fk": { - "name": "project_options_category_id_categories_category_id_fk", - "tableFrom": "project_options", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_type": { - "name": "project_type", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.projects": { - "name": "projects", - "schema": "", - "columns": { - "project_id": { - "name": "project_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_name": { - "name": "project_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "project_description": { - "name": "project_description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "project_link": { - "name": "project_link", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_by_uid": { - "name": "created_by_uid", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "projects_created_by_uid_users_uid_fk": { - "name": "projects_created_by_uid_users_uid_fk", - "tableFrom": "projects", - "tableTo": "users", - "columnsFrom": [ - "created_by_uid" - ], - "columnsTo": [ - "uid" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "projects_category_id_categories_category_id_fk": { - "name": "projects_category_id_categories_category_id_fk", - "tableFrom": "projects", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.team_members": { - "name": "team_members", - "schema": "", - "columns": { - "member_id": { - "name": "member_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - }, - "linkedin": { - "name": "linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "team_members_project_id_projects_project_id_fk": { - "name": "team_members_project_id_projects_project_id_fk", - "tableFrom": "team_members", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "uid": { - "name": "uid", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_role": { - "name": "user_role", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.year_of_submission": { - "name": "year_of_submission", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(50)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/migrations/meta/0002_snapshot.json b/drizzle/migrations/meta/0002_snapshot.json deleted file mode 100644 index 269cb26..0000000 --- a/drizzle/migrations/meta/0002_snapshot.json +++ /dev/null @@ -1,418 +0,0 @@ -{ - "id": "4d363fcb-eb56-4049-984e-2a292bff5576", - "prevId": "b5ca59de-09c5-4caf-b357-ce4ec160de02", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.categories": { - "name": "categories", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "category": { - "name": "category", - "type": "varchar(100)", - "primaryKey": false, - "notNull": true - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.category_option_values": { - "name": "category_option_values", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "category_option_values_category_id_categories_category_id_fk": { - "name": "category_option_values_category_id_categories_category_id_fk", - "tableFrom": "category_option_values", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.department": { - "name": "department", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.domain": { - "name": "domain", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_options": { - "name": "project_options", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "project_options_project_id_projects_project_id_fk": { - "name": "project_options_project_id_projects_project_id_fk", - "tableFrom": "project_options", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_category_id_categories_category_id_fk": { - "name": "project_options_category_id_categories_category_id_fk", - "tableFrom": "project_options", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_type": { - "name": "project_type", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.projects": { - "name": "projects", - "schema": "", - "columns": { - "project_id": { - "name": "project_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_name": { - "name": "project_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "project_description": { - "name": "project_description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "project_link": { - "name": "project_link", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_by_uid": { - "name": "created_by_uid", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "projects_created_by_uid_users_uid_fk": { - "name": "projects_created_by_uid_users_uid_fk", - "tableFrom": "projects", - "tableTo": "users", - "columnsFrom": [ - "created_by_uid" - ], - "columnsTo": [ - "uid" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "projects_category_id_categories_category_id_fk": { - "name": "projects_category_id_categories_category_id_fk", - "tableFrom": "projects", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.team_members": { - "name": "team_members", - "schema": "", - "columns": { - "member_id": { - "name": "member_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - }, - "linkedin": { - "name": "linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "team_members_project_id_projects_project_id_fk": { - "name": "team_members_project_id_projects_project_id_fk", - "tableFrom": "team_members", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "uid": { - "name": "uid", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_role": { - "name": "user_role", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.year_of_submission": { - "name": "year_of_submission", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(50)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/migrations/meta/0003_snapshot.json b/drizzle/migrations/meta/0003_snapshot.json deleted file mode 100644 index 78e525c..0000000 --- a/drizzle/migrations/meta/0003_snapshot.json +++ /dev/null @@ -1,306 +0,0 @@ -{ - "id": "39078b99-a457-4381-a902-2119659f50fe", - "prevId": "4d363fcb-eb56-4049-984e-2a292bff5576", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.categories": { - "name": "categories", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "category": { - "name": "category", - "type": "varchar(100)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.category_option_values": { - "name": "category_option_values", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "category_option_values_category_id_categories_category_id_fk": { - "name": "category_option_values_category_id_categories_category_id_fk", - "tableFrom": "category_option_values", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_options": { - "name": "project_options", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "project_options_project_id_projects_project_id_fk": { - "name": "project_options_project_id_projects_project_id_fk", - "tableFrom": "project_options", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_category_id_categories_category_id_fk": { - "name": "project_options_category_id_categories_category_id_fk", - "tableFrom": "project_options", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_option_id_category_option_values_option_id_fk": { - "name": "project_options_option_id_category_option_values_option_id_fk", - "tableFrom": "project_options", - "tableTo": "category_option_values", - "columnsFrom": [ - "option_id" - ], - "columnsTo": [ - "option_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.projects": { - "name": "projects", - "schema": "", - "columns": { - "project_id": { - "name": "project_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_name": { - "name": "project_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "project_description": { - "name": "project_description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "project_link": { - "name": "project_link", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_by_uid": { - "name": "created_by_uid", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "projects_created_by_uid_users_uid_fk": { - "name": "projects_created_by_uid_users_uid_fk", - "tableFrom": "projects", - "tableTo": "users", - "columnsFrom": [ - "created_by_uid" - ], - "columnsTo": [ - "uid" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.team_members": { - "name": "team_members", - "schema": "", - "columns": { - "member_id": { - "name": "member_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - }, - "linkedin": { - "name": "linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "team_members_project_id_projects_project_id_fk": { - "name": "team_members_project_id_projects_project_id_fk", - "tableFrom": "team_members", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "uid": { - "name": "uid", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_role": { - "name": "user_role", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/migrations/meta/0004_snapshot.json b/drizzle/migrations/meta/0004_snapshot.json deleted file mode 100644 index b820045..0000000 --- a/drizzle/migrations/meta/0004_snapshot.json +++ /dev/null @@ -1,312 +0,0 @@ -{ - "id": "fe2d7a20-4beb-4118-9276-d84bd9364fff", - "prevId": "39078b99-a457-4381-a902-2119659f50fe", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.categories": { - "name": "categories", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "category": { - "name": "category", - "type": "varchar(100)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.category_option_values": { - "name": "category_option_values", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "category_option_values_category_id_categories_category_id_fk": { - "name": "category_option_values_category_id_categories_category_id_fk", - "tableFrom": "category_option_values", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_options": { - "name": "project_options", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "project_options_project_id_projects_project_id_fk": { - "name": "project_options_project_id_projects_project_id_fk", - "tableFrom": "project_options", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_category_id_categories_category_id_fk": { - "name": "project_options_category_id_categories_category_id_fk", - "tableFrom": "project_options", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_option_id_category_option_values_option_id_fk": { - "name": "project_options_option_id_category_option_values_option_id_fk", - "tableFrom": "project_options", - "tableTo": "category_option_values", - "columnsFrom": [ - "option_id" - ], - "columnsTo": [ - "option_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.projects": { - "name": "projects", - "schema": "", - "columns": { - "project_id": { - "name": "project_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_name": { - "name": "project_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "project_description": { - "name": "project_description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "project_link": { - "name": "project_link", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_by_uid": { - "name": "created_by_uid", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "custom_domain": { - "name": "custom_domain", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "projects_created_by_uid_users_uid_fk": { - "name": "projects_created_by_uid_users_uid_fk", - "tableFrom": "projects", - "tableTo": "users", - "columnsFrom": [ - "created_by_uid" - ], - "columnsTo": [ - "uid" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.team_members": { - "name": "team_members", - "schema": "", - "columns": { - "member_id": { - "name": "member_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - }, - "linkedin": { - "name": "linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "team_members_project_id_projects_project_id_fk": { - "name": "team_members_project_id_projects_project_id_fk", - "tableFrom": "team_members", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "uid": { - "name": "uid", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_role": { - "name": "user_role", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/migrations/meta/0005_snapshot.json b/drizzle/migrations/meta/0005_snapshot.json deleted file mode 100644 index 7b50ba1..0000000 --- a/drizzle/migrations/meta/0005_snapshot.json +++ /dev/null @@ -1,336 +0,0 @@ -{ - "id": "07b81507-2204-4a78-92de-e44c643208d9", - "prevId": "fe2d7a20-4beb-4118-9276-d84bd9364fff", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.categories": { - "name": "categories", - "schema": "", - "columns": { - "category_id": { - "name": "category_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "category": { - "name": "category", - "type": "varchar(100)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.category_option_values": { - "name": "category_option_values", - "schema": "", - "columns": { - "option_id": { - "name": "option_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "option_name": { - "name": "option_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "category_option_values_category_id_categories_category_id_fk": { - "name": "category_option_values_category_id_categories_category_id_fk", - "tableFrom": "category_option_values", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.project_options": { - "name": "project_options", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "category_id": { - "name": "category_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "option_id": { - "name": "option_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "project_options_project_id_projects_project_id_fk": { - "name": "project_options_project_id_projects_project_id_fk", - "tableFrom": "project_options", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_category_id_categories_category_id_fk": { - "name": "project_options_category_id_categories_category_id_fk", - "tableFrom": "project_options", - "tableTo": "categories", - "columnsFrom": [ - "category_id" - ], - "columnsTo": [ - "category_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "project_options_option_id_category_option_values_option_id_fk": { - "name": "project_options_option_id_category_option_values_option_id_fk", - "tableFrom": "project_options", - "tableTo": "category_option_values", - "columnsFrom": [ - "option_id" - ], - "columnsTo": [ - "option_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.projects": { - "name": "projects", - "schema": "", - "columns": { - "project_id": { - "name": "project_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_name": { - "name": "project_name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "project_description": { - "name": "project_description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "project_link": { - "name": "project_link", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "created_by_uid": { - "name": "created_by_uid", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "custom_domain": { - "name": "custom_domain", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "contact_instagram": { - "name": "contact_instagram", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "contact_linkedin": { - "name": "contact_linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "contact_email": { - "name": "contact_email", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - }, - "contact_whatsapp": { - "name": "contact_whatsapp", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "projects_created_by_uid_users_uid_fk": { - "name": "projects_created_by_uid_users_uid_fk", - "tableFrom": "projects", - "tableTo": "users", - "columnsFrom": [ - "created_by_uid" - ], - "columnsTo": [ - "uid" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.team_members": { - "name": "team_members", - "schema": "", - "columns": { - "member_id": { - "name": "member_id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "project_id": { - "name": "project_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "varchar(100)", - "primaryKey": false, - "notNull": false - }, - "linkedin": { - "name": "linkedin", - "type": "varchar(255)", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "team_members_project_id_projects_project_id_fk": { - "name": "team_members_project_id_projects_project_id_fk", - "tableFrom": "team_members", - "tableTo": "projects", - "columnsFrom": [ - "project_id" - ], - "columnsTo": [ - "project_id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "uid": { - "name": "uid", - "type": "varchar(255)", - "primaryKey": true, - "notNull": true - }, - "user_role": { - "name": "user_role", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/drizzle/migrations/meta/_journal.json b/drizzle/migrations/meta/_journal.json index c2a8215..bcbfc9e 100644 --- a/drizzle/migrations/meta/_journal.json +++ b/drizzle/migrations/meta/_journal.json @@ -5,43 +5,8 @@ { "idx": 0, "version": "7", - "when": 1749747676980, - "tag": "0000_initial_schema", - "breakpoints": true - }, - { - "idx": 1, - "version": "7", - "when": 1749747747002, - "tag": "0001_initial_schema", - "breakpoints": true - }, - { - "idx": 2, - "version": "7", - "when": 1749889224359, - "tag": "0002_steady_ricochet", - "breakpoints": true - }, - { - "idx": 3, - "version": "7", - "when": 1749891039819, - "tag": "0003_fixed_warpath", - "breakpoints": true - }, - { - "idx": 4, - "version": "7", - "when": 1749895855626, - "tag": "0004_opposite_avengers", - "breakpoints": true - }, - { - "idx": 5, - "version": "7", - "when": 1752940701103, - "tag": "0005_slow_excalibur", + "when": 1758032247653, + "tag": "0000_square_hemingway", "breakpoints": true } ] diff --git a/lib/db.ts b/lib/db.ts index 82213fb..5d065b1 100644 --- a/lib/db.ts +++ b/lib/db.ts @@ -1,12 +1,12 @@ import * as dotenv from "dotenv"; -dotenv.config({ path: ".env.local" }); +dotenv.config({ path: ".env" }); import { drizzle } from "drizzle-orm/node-postgres"; import { Pool } from "pg"; import * as schema from "./schema"; // adjust path if (!process.env.DATABASE_URL) { - throw new Error("❌ DATABASE_URL not set in .env.local"); + throw new Error("❌ DATABASE_URL not set in .env"); } export const pool = new Pool({ diff --git a/lib/firebase/auth.ts b/lib/firebase/auth.ts index e0b841c..582f3ee 100644 --- a/lib/firebase/auth.ts +++ b/lib/firebase/auth.ts @@ -22,14 +22,7 @@ export async function signInWithGoogle(): Promise<{ user:User; isAdmin: boolean throw new Error('Google sign-in failed'); } - // Restrict login to only emails from "gecskp.ac.in" - // Restrict login to only emails from "gecskp.ac.in", except for a specific admin email -const allowedEmailPattern = /^[a-zA-Z0-9]+@gecskp\.ac\.in$/; -const adminOverrideEmail = "codecompass2024@gmail.com"; -if (user.email !== adminOverrideEmail && !allowedEmailPattern.test(user.email)) { - throw new Error('Only GEC SKP emails are allowed'); -} diff --git a/lib/schema.ts b/lib/schema.ts index 92d5be4..c0d338e 100644 --- a/lib/schema.ts +++ b/lib/schema.ts @@ -5,7 +5,6 @@ import { timestamp, integer, varchar, - primaryKey, foreignKey, } from "drizzle-orm/pg-core"; diff --git a/lib/seed.ts b/lib/seed.ts new file mode 100644 index 0000000..114cf00 --- /dev/null +++ b/lib/seed.ts @@ -0,0 +1,179 @@ +import { db } from "@/lib/db"; +import { + users, + projects, + categories, + categoryOptionValues, + projectOptions, +} from "@/lib/schema"; + +async function seed() { + try { + // ---------------- Insert Dummy Users ---------------- + await db.insert(users).values([ + { uid: "student1", userRole: "student" }, + { uid: "student2", userRole: "student" }, + { uid: "student3", userRole: "student" }, + ]); + console.log("✅ Dummy users inserted"); + + // ---------------- Insert Categories ---------------- + const insertedCategories = await db + .insert(categories) + .values([ + { category: "Project Type" }, + { category: "Department" }, + { category: "Year of Submission" }, + { category: "Domain" }, + ]) + .returning({ id: categories.categoryId, name: categories.category }); + console.log("✅ Categories inserted"); + + // Map category names to IDs + const catId = (name: string) => insertedCategories.find(c => c.name === name)!.id; + + // ---------------- Insert Category Option Values ---------------- + const insertedOptions = await db + .insert(categoryOptionValues) + .values([ + // Project Type + { optionName: "Research Project", categoryId: catId("Project Type") }, + { optionName: "Personal Project", categoryId: catId("Project Type") }, + { optionName: "Others ", categoryId: catId("Project Type") }, + + + // Departments + { optionName: "CSE", categoryId: catId("Department") }, + { optionName: "ECE", categoryId: catId("Department") }, + { optionName: "MECH", categoryId: catId("Department") }, + { optionName: "CIVIL", categoryId: catId("Department") }, + { optionName: "IT", categoryId: catId("Department") }, + { optionName: "EEE", categoryId: catId("Department") }, + + + + // Year of Submission + { optionName: "2025", categoryId: catId("Year of Submission") }, + { optionName: "2024", categoryId: catId("Year of Submission") }, + { optionName: "2023", categoryId: catId("Year of Submission") }, + + + + + // Domain +{ optionName: "Web Development", categoryId: catId("Domain") }, +{ optionName: "Mobile App Development", categoryId: catId("Domain") }, +{ optionName: "AI/ML", categoryId: catId("Domain") }, +{ optionName: "Data Science / Analytics", categoryId: catId("Domain") }, +{ optionName: "IoT / Embedded Systems", categoryId: catId("Domain") }, +{ optionName: "Cloud Computing", categoryId: catId("Domain") }, +{ optionName: "Cybersecurity", categoryId: catId("Domain") }, +{ optionName: "Blockchain", categoryId: catId("Domain") }, +{ optionName: "AR/VR", categoryId: catId("Domain") }, +{ optionName: "Robotics", categoryId: catId("Domain") }, +{ optionName: "Networking / Communication", categoryId: catId("Domain") }, +{ optionName: "Game Development", categoryId: catId("Domain") }, +{ optionName: "Database Systems", categoryId: catId("Domain") }, +{ optionName: "Simulation & Modeling", categoryId: catId("Domain") }, +{ optionName: "Control Systems", categoryId: catId("Domain") }, +{ optionName: "Mechanical Design / CAD", categoryId: catId("Domain") }, +{ optionName: "Civil Structural Design", categoryId: catId("Domain") }, +{ optionName: "Renewable Energy / Electrical Systems", categoryId: catId("Domain") }, +{ optionName: "Biotechnology / Bioinformatics", categoryId: catId("Domain") }, +{ optionName: "Chemical Process Design", categoryId: catId("Domain") }, +{ optionName: "Power Systems", categoryId: catId("Domain") }, +{ optionName: "Electrical Machines", categoryId: catId("Domain") }, +{ optionName: "Control Systems", categoryId: catId("Domain") }, +{ optionName: "Renewable Energy Systems", categoryId: catId("Domain") }, +{ optionName: "Power Electronics", categoryId: catId("Domain") }, +{ optionName: "Instrumentation & Measurements", categoryId: catId("Domain") }, +{ optionName: "Smart Grids", categoryId: catId("Domain") }, +{ optionName: "Embedded Systems in EEE", categoryId: catId("Domain") }, +{ optionName: "Electric Vehicle Systems", categoryId: catId("Domain") }, +{ optionName: "Other EEE Domain", categoryId: catId("Domain") }, +{ optionName: "Other CSE Domain", categoryId: catId("Domain") }, +{ optionName: "Other MECH Domain", categoryId: catId("Domain") }, +{ optionName: "Other ECE Domain", categoryId: catId("Domain") }, +{ optionName: "Other CIVIL Domain", categoryId: catId("Domain") }, +{ optionName: "Other IT Domain", categoryId: catId("Domain") }, +{ optionName: "Other EEE Domain", categoryId: catId("Domain") }, + ]) + .returning({ id: categoryOptionValues.optionId, name: categoryOptionValues.optionName }); + console.log("✅ Category option values inserted"); + + const getOptionId = (name: string) => insertedOptions.find(o => o.name === name)!.id; + + // ---------------- Insert Projects ---------------- +const insertedProjects = await db + .insert(projects) + .values([ + { + projectName: "AI Chatbot for University", + projectDescription: "A chatbot that answers student queries about courses and schedules. Needs help with improving NLP accuracy, adding more course data, and integration with the university portal.", + projectLink: "https://github.com/example/chatbot", + createdByUid: "student1", + customDomain: "chatbot.gecianhub.com", + contactEmail: "chatbot@example.com", + contactLinkedIn: "https://linkedin.com/in/team-chatbot", + contactInstagram: "@chatbot_team", + contactWhatsApp: "+911234567890", + }, + { + projectName: "Smart Irrigation System", + projectDescription: "IoT-based irrigation system to optimize water usage. Needs help with sensor calibration, mobile app connectivity, and cloud data analytics for water optimization.", + projectLink: "https://github.com/example/irrigation", + createdByUid: "student2", + customDomain: null, + contactEmail: "irrigation@example.com", + contactLinkedIn: "https://linkedin.com/in/team-irrigation", + contactInstagram: "@irrigation_project", + contactWhatsApp: "+919876543210", + }, + { + projectName: "Campus Navigation App", + projectDescription: "Mobile app to help new students navigate campus buildings. Needs help with map integration, real-time location tracking, and accessibility features for visually impaired students.", + projectLink: "https://github.com/example/campus-nav", + createdByUid: "student3", + customDomain: "campusnav.gecianhub.com", + contactEmail: "navapp@example.com", + contactLinkedIn: "https://linkedin.com/in/campusnav", + contactInstagram: "@campus_nav", + contactWhatsApp: "+917700112233", + }, + ]) + .returning({ id: projects.projectId, name: projects.projectName }); + + console.log("✅ Projects inserted"); + + // ---------------- Link Projects with Options ---------------- + const projectOptionData = [ + // AI Chatbot + { projectId: insertedProjects[0].id, categoryId: catId("Project Type"), optionId: getOptionId("Personal Project") }, + { projectId: insertedProjects[0].id, categoryId: catId("Department"), optionId: getOptionId("CSE") }, + { projectId: insertedProjects[0].id, categoryId: catId("Year of Submission"), optionId: getOptionId("2025") }, + { projectId: insertedProjects[0].id, categoryId: catId("Domain"), optionId: getOptionId("AI/ML") }, + + // Smart Irrigation + { projectId: insertedProjects[1].id, categoryId: catId("Project Type"), optionId: getOptionId("Personal Project") }, + { projectId: insertedProjects[1].id, categoryId: catId("Department"), optionId: getOptionId("MECH") }, + { projectId: insertedProjects[1].id, categoryId: catId("Year of Submission"), optionId: getOptionId("2025") }, + { projectId: insertedProjects[1].id, categoryId: catId("Domain"), optionId: getOptionId("IoT / Embedded Systems") }, + + // Campus Navigation + { projectId: insertedProjects[2].id, categoryId: catId("Project Type"), optionId: getOptionId("Personal Project") }, + { projectId: insertedProjects[2].id, categoryId: catId("Department"), optionId: getOptionId("CSE") }, + { projectId: insertedProjects[2].id, categoryId: catId("Year of Submission"), optionId: getOptionId("2025") }, + { projectId: insertedProjects[2].id, categoryId: catId("Domain"), optionId: getOptionId("Web Development") }, + ]; + + await db.insert(projectOptions).values(projectOptionData); + console.log("✅ Projects linked with categories and options"); + + console.log("🎉 Seeding completed successfully!"); + } catch (err) { + console.error("❌ Seeding failed", err); + process.exit(1); + } +} + +seed(); diff --git a/next.config.ts b/next.config.ts index 9ab03dd..4bd7368 100644 --- a/next.config.ts +++ b/next.config.ts @@ -4,17 +4,7 @@ const nextConfig: NextConfig = { images: { unoptimized: true, }, - // async headers() { - // return [ - // { - // source: "/(.*)", // Apply to all routes - // headers: [ - // { key: "Cross-Origin-Opener-Policy", value: "same-origin-allow-popups" }, - // { key: "Cross-Origin-Embedder-Policy", value: "require-corp" }, // Optional, for better security - // ], - // }, - // ]; - // }, + eslint: { ignoreDuringBuilds: true, }, diff --git a/package-lock.json b/package-lock.json index edb29c7..2cded9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,8 +17,9 @@ "firebase": "^11.3.1", "firebase-admin": "^13.2.0", "framer-motion": "^12.4.3", + "iconsax-react": "^0.0.8", "lucide-react": "^0.469.0", - "next": "^15.1.4", + "next": "^15.5.7", "pg": "^8.16.0", "postgres": "^3.4.7", "react": "^19.0.0", @@ -45,7 +46,8 @@ "jest-environment-jsdom": "^29.7.0", "postcss": "^8", "tailwindcss": "^3.4.1", - "typescript": "5.7.3" + "ts-node": "^10.9.2", + "typescript": "^5.7.3" } }, "node_modules/@adobe/css-tools": { @@ -638,6 +640,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@drizzle-team/brocli": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.10.2.tgz", @@ -657,9 +683,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "license": "MIT", "optional": true, "dependencies": { @@ -2552,10 +2578,20 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz", - "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", "cpu": [ "arm64" ], @@ -2571,13 +2607,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz", - "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", "cpu": [ "x64" ], @@ -2593,13 +2629,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", "cpu": [ "arm64" ], @@ -2613,9 +2649,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", "cpu": [ "x64" ], @@ -2629,9 +2665,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", "cpu": [ "arm" ], @@ -2645,9 +2681,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", "cpu": [ "arm64" ], @@ -2661,9 +2697,9 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", "cpu": [ "ppc64" ], @@ -2676,10 +2712,26 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", "cpu": [ "s390x" ], @@ -2693,9 +2745,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], @@ -2709,9 +2761,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", "cpu": [ "arm64" ], @@ -2725,9 +2777,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", "cpu": [ "x64" ], @@ -2741,9 +2793,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz", - "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", "cpu": [ "arm" ], @@ -2759,13 +2811,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "@img/sharp-libvips-linux-arm": "1.2.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz", - "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", "cpu": [ "arm64" ], @@ -2781,13 +2833,57 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz", - "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", "cpu": [ "s390x" ], @@ -2803,13 +2899,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "@img/sharp-libvips-linux-s390x": "1.2.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz", - "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], @@ -2825,13 +2921,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "@img/sharp-libvips-linux-x64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz", - "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", "cpu": [ "arm64" ], @@ -2847,13 +2943,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz", - "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", "cpu": [ "x64" ], @@ -2869,20 +2965,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz", - "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ "wasm32" ], "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.4.3" + "@emnapi/runtime": "^1.7.0" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -2892,9 +2988,9 @@ } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz", - "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", "cpu": [ "arm64" ], @@ -2911,9 +3007,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz", - "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], @@ -2930,9 +3026,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz", - "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], @@ -3636,9 +3732,9 @@ } }, "node_modules/@next/env": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz", - "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", + "integrity": "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -3652,9 +3748,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz", - "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz", + "integrity": "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==", "cpu": [ "arm64" ], @@ -3668,9 +3764,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz", - "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.7.tgz", + "integrity": "sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==", "cpu": [ "x64" ], @@ -3684,9 +3780,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz", - "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.7.tgz", + "integrity": "sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==", "cpu": [ "arm64" ], @@ -3700,9 +3796,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz", - "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.7.tgz", + "integrity": "sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==", "cpu": [ "arm64" ], @@ -3716,9 +3812,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz", - "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.7.tgz", + "integrity": "sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==", "cpu": [ "x64" ], @@ -3732,9 +3828,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz", - "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.7.tgz", + "integrity": "sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==", "cpu": [ "x64" ], @@ -3748,9 +3844,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz", - "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.7.tgz", + "integrity": "sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==", "cpu": [ "arm64" ], @@ -3764,9 +3860,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz", - "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.7.tgz", + "integrity": "sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==", "cpu": [ "x64" ], @@ -4257,12 +4353,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", @@ -4383,6 +4473,34 @@ "node": ">= 10" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -6177,17 +6295,6 @@ "node": ">=6.14.2" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -6488,20 +6595,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6691,6 +6784,13 @@ "dev": true, "license": "MIT" }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -7001,9 +7101,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "optional": true, "engines": { @@ -7044,6 +7144,16 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -9136,6 +9246,18 @@ "node": ">=10.17.0" } }, + "node_modules/iconsax-react": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/iconsax-react/-/iconsax-react-0.0.8.tgz", + "integrity": "sha512-l3dVk4zGtkkJHgvNYqAf0wDKqnKxXykee5/DoESGo2JvSYwaxajJUHSX2YrPRXSov8Hd8ClGFwJxCEaEjrFD1Q==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -10844,7 +10966,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -11338,7 +11459,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -11405,6 +11525,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -11618,15 +11745,14 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz", - "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==", + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.7.tgz", + "integrity": "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==", + "deprecated": "This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details.", "license": "MIT", "dependencies": { - "@next/env": "15.3.3", - "@swc/counter": "0.1.3", + "@next/env": "15.5.7", "@swc/helpers": "0.5.15", - "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -11638,19 +11764,19 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.3.3", - "@next/swc-darwin-x64": "15.3.3", - "@next/swc-linux-arm64-gnu": "15.3.3", - "@next/swc-linux-arm64-musl": "15.3.3", - "@next/swc-linux-x64-gnu": "15.3.3", - "@next/swc-linux-x64-musl": "15.3.3", - "@next/swc-win32-arm64-msvc": "15.3.3", - "@next/swc-win32-x64-msvc": "15.3.3", - "sharp": "^0.34.1" + "@next/swc-darwin-arm64": "15.5.7", + "@next/swc-darwin-x64": "15.5.7", + "@next/swc-linux-arm64-gnu": "15.5.7", + "@next/swc-linux-arm64-musl": "15.5.7", + "@next/swc-linux-x64-gnu": "15.5.7", + "@next/swc-linux-x64-musl": "15.5.7", + "@next/swc-win32-arm64-msvc": "15.5.7", + "@next/swc-win32-x64-msvc": "15.5.7", + "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", + "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", @@ -12807,7 +12933,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -13091,7 +13216,6 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, "node_modules/read-cache": { @@ -13456,9 +13580,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -13517,16 +13641,16 @@ } }, "node_modules/sharp": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz", - "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", "optional": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.4", - "semver": "^7.7.2" + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -13535,27 +13659,30 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.2", - "@img/sharp-darwin-x64": "0.34.2", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.2", - "@img/sharp-linux-arm64": "0.34.2", - "@img/sharp-linux-s390x": "0.34.2", - "@img/sharp-linux-x64": "0.34.2", - "@img/sharp-linuxmusl-arm64": "0.34.2", - "@img/sharp-linuxmusl-x64": "0.34.2", - "@img/sharp-wasm32": "0.34.2", - "@img/sharp-win32-arm64": "0.34.2", - "@img/sharp-win32-ia32": "0.34.2", - "@img/sharp-win32-x64": "0.34.2" + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" } }, "node_modules/shebang-command": { @@ -13801,14 +13928,6 @@ "license": "MIT", "optional": true }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -14688,6 +14807,70 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -14993,6 +15176,13 @@ "uuid": "dist/esm/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -15479,6 +15669,16 @@ "node": ">=8" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 5f6895c..112a73e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev -p 3001", + "dev": "next dev ", "build": "next build", "start": "next start", "lint": "next lint", @@ -12,13 +12,14 @@ "drizzle:studio": "drizzle-kit studio", "drizzle:migrate": "drizzle-kit migrate", "db:push": "npx -r dotenv/config drizzle-kit push", - "seed":"npx tsx drizzle/seed-category.ts", + "seed": "npx tsx drizzle/seed-category.ts", "db:generate": "npx -r dotenv/config drizzle-kit generate", "test": "jest --config jest.config.mjs", "test:watch": "jest --config jest.config.mjs --watch", "e2e": "playwright test", "e2e:headed": "playwright test --headed", - "e2e:report": "playwright show-report" + "e2e:report": "playwright show-report", + "db:seed": "tsx lib/seed.ts" }, "dependencies": { "@radix-ui/react-tabs": "^1.1.12", @@ -30,8 +31,9 @@ "firebase": "^11.3.1", "firebase-admin": "^13.2.0", "framer-motion": "^12.4.3", + "iconsax-react": "^0.0.8", "lucide-react": "^0.469.0", - "next": "^15.1.4", + "next": "^15.5.7", "pg": "^8.16.0", "postgres": "^3.4.7", "react": "^19.0.0", @@ -44,20 +46,21 @@ "@eslint/eslintrc": "^3", "@jest/globals": "^29.7.0", "@playwright/test": "^1.47.2", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.0.1", + "@testing-library/user-event": "^14.5.2", + "@types/jest": "^29.5.12", "@types/node": "^20.17.19", "@types/pg": "^8.15.4", - "@types/jest": "^29.5.12", "@types/react": "19.0.8", "@types/react-dom": "^19", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.0.1", - "@testing-library/user-event": "^14.5.2", "eslint": "^9", "eslint-config-next": "15.1.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "postcss": "^8", "tailwindcss": "^3.4.1", - "typescript": "5.7.3" + "ts-node": "^10.9.2", + "typescript": "^5.7.3" } } diff --git a/tsconfig.json b/tsconfig.json index e449aab..e48197e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,6 +23,6 @@ "@/*": ["./*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "lib/seed.ts"], "exclude": ["node_modules"] }