,
+ ) {
+ let resume: string = c.noResumeProvidedURL;
+
+ if (uploadedFile) {
+ const newBlob = await put(uploadedFile.name, uploadedFile, {
+ access: "public",
+ handleBlobUploadUrl: "/api/upload/resume/register",
+ });
+ resume = newBlob.url;
+ }
+
+ const res = runModifyRegistrationData({
+ age: data.age,
+ gender: data.gender,
+ race: data.race,
+ ethnicity: data.ethnicity,
+ isEmailable: data.isEmailable,
+ university: data.university,
+ major: data.major,
+ levelOfStudy: data.levelOfStudy,
+ schoolID: data.schoolID,
+ hackathonsAttended: data.hackathonsAttended,
+ softwareBuildingExperience: data.softwareBuildingExperience,
+ heardAboutEvent: data.heardAboutEvent,
+ shirtSize: data.shirtSize,
+ dietaryRestrictions: data.dietaryRestrictions,
+ accommodationNote: data.accommodationNote,
+ github: data.github,
+ linkedin: data.linkedin,
+ personalWebsite: data.personalWebsite,
+ phoneNumber: data.phoneNumber,
+ countryOfResidence: data.countryOfResidence,
+ });
+ // Can be optimzed to run in the modify registratuib data action later.
+ runModifyResume({ resume });
+ console.log(res);
+ }
+
+ const { execute: runModifyRegistrationData, status: loadingState } =
+ useAction(modifyRegistrationData, {
+ onSuccess: () => {
+ toast.dismiss();
+ toast.success("Data updated successfully!");
+ },
+ onError: () => {
+ toast.dismiss();
+ toast.error(
+ `An error occurred. Please contact ${c.issueEmail} for help.`,
+ );
+ },
+ });
+
+ const { execute: runModifyResume } = useAction(modifyResume, {
+ onSuccess: () => {},
+ onError: () => {
+ toast.dismiss();
+ toast.error("An error occurred while uploading resume!");
+ },
+ });
+
+ const onDrop = useCallback(
+ (acceptedFiles: File[], fileRejections: FileRejection[]) => {
+ if (fileRejections.length > 0) {
+ alert(
+ `The file you uploaded was rejected with the reason "${fileRejections[0].errors[0].message}". Please try again.`,
+ );
+ }
+ if (acceptedFiles.length > 0) {
+ console.log(
+ `Got accepted file! The length of the array is ${acceptedFiles.length}.`,
+ );
+ console.log(acceptedFiles[0]);
+ setUploadedFile(acceptedFiles[0]);
+ setOldFile(false);
+ }
+ },
+ [],
+ );
+ const { getRootProps, getInputProps, isDragActive } = useDropzone({
+ onDrop,
+ multiple: false,
+ accept: { "application/pdf": [".pdf"] },
+ maxSize: c.maxResumeSizeInBytes,
+ noClick: uploadedFile != null,
+ noDrag: uploadedFile != null,
+ });
+
+ return (
+
+ );
+}
diff --git a/apps/web/src/components/settings/RegistrationSettings.tsx b/apps/web/src/components/settings/RegistrationSettings.tsx
new file mode 100644
index 00000000..4d6f9150
--- /dev/null
+++ b/apps/web/src/components/settings/RegistrationSettings.tsx
@@ -0,0 +1,41 @@
+"use client";
+
+import { Button } from "@/components/shadcn/ui/button";
+import Link from "next/link";
+import { useState } from "react";
+import { Loader2 } from "lucide-react";
+
+export default function RegistrationSettings() {
+ const [isLoading, setIsLoading] = useState(false);
+
+ return (
+
+
+
+ Registration data is only editable in the form.{" "}
+
+ Note: Some hackathons may not accept edited information
+ as it is already in their database
+
+
+
setIsLoading(true)}
+ >
+ {isLoading ? (
+
+ ) : (
+
+ Click here to go back to registration form
+
+ )}
+
+
+
+ );
+}
diff --git a/apps/web/src/components/settings/SettingsSection.tsx b/apps/web/src/components/settings/SettingsSection.tsx
index e9185031..671736cd 100644
--- a/apps/web/src/components/settings/SettingsSection.tsx
+++ b/apps/web/src/components/settings/SettingsSection.tsx
@@ -10,6 +10,7 @@ interface ToggleItemProps {
export default function SettingsSection({ name, path }: ToggleItemProps) {
const currPath = usePathname();
+ // NOTE: usepathname hook does not include the fragment part such as #registration or #account so we will need to use the window to access this later
return (
);
}
-
// Returns only if there is a full user
return (
@@ -157,14 +157,15 @@ export default async function ProfileButton() {
Event Pass
- {user.role === "admin" ||
- (user.role === "super_admin" && (
-
-
- Admin
-
-
- ))}
+ {["admin", "super_admin", "volunteer"].includes(
+ user.role,
+ ) && (
+
+
+ Admin
+
+
+ )}
@@ -172,7 +173,7 @@ export default async function ProfileButton() {
Report a Bug
-
+
Settings
diff --git a/apps/web/src/lib/constants/index.ts b/apps/web/src/lib/constants/index.ts
index b239662a..f34ca64c 100644
--- a/apps/web/src/lib/constants/index.ts
+++ b/apps/web/src/lib/constants/index.ts
@@ -1,2 +1,3 @@
export const ONE_HOUR_IN_MILLISECONDS = 3600000;
+export const FIVE_MINUTES_IN_MILLISECONDS = 300000;
export const VERCEL_IP_TIMEZONE_HEADER_KEY = "x-vercel-ip-timezone";
diff --git a/apps/web/src/lib/safe-action.ts b/apps/web/src/lib/safe-action.ts
index 969324d0..90fb4611 100644
--- a/apps/web/src/lib/safe-action.ts
+++ b/apps/web/src/lib/safe-action.ts
@@ -1,29 +1,32 @@
-import { createSafeActionClient } from "next-safe-action";
+import {
+ createSafeActionClient,
+ returnValidationErrors,
+} from "next-safe-action";
import { auth } from "@clerk/nextjs";
import { getUser } from "db/functions";
+import { z } from "zod";
export const publicAction = createSafeActionClient();
-export const adminAction = createSafeActionClient({
- async middleware() {
- const { userId } = auth();
- if (!userId) throw new Error("Unauthorized (No UserID)");
-
- const user = await getUser(userId);
- if (!user || (user.role !== "admin" && user.role !== "super_admin")) {
- throw new Error("Unauthorized (Not Admin)");
- }
-
- return { user, userId };
- },
-});
-
-export const authenticatedAction = createSafeActionClient({
+export const authenticatedAction = publicAction.use(
// TODO: Add registration check here?
- async middleware() {
+ async ({ next, ctx }) => {
const { userId } = auth();
- if (!userId) throw new Error("Unauthorized");
+ if (!userId)
+ returnValidationErrors(z.null(), {
+ _errors: ["Unauthorized (No User ID)"],
+ });
// TODO: add check for registration
- return { userId };
+ return next({ ctx: { userId } });
},
+);
+
+export const adminAction = authenticatedAction.use(async ({ next, ctx }) => {
+ const user = await getUser(ctx.userId);
+ if (!user || (user.role !== "admin" && user.role !== "super_admin")) {
+ returnValidationErrors(z.null(), {
+ _errors: ["Unauthorized (Not Admin)"],
+ });
+ }
+ return next({ ctx: { user, ...ctx } });
});
diff --git a/apps/web/src/lib/types/events.ts b/apps/web/src/lib/types/events.ts
index 010aa1a5..885e671e 100644
--- a/apps/web/src/lib/types/events.ts
+++ b/apps/web/src/lib/types/events.ts
@@ -8,7 +8,7 @@ export interface EventType extends InferSelectModel {}
export type eventTableValidatorType = Pick<
z.infer,
- "title" | "startTime" | "endTime" | "id" | "type"
+ "title" | "location" | "startTime" | "endTime" | "id" | "type"
>;
export interface NewEventFormProps {
diff --git a/apps/web/src/lib/utils/shared/types.ts b/apps/web/src/lib/utils/shared/types.ts
index c029cd54..907f25b9 100644
--- a/apps/web/src/lib/utils/shared/types.ts
+++ b/apps/web/src/lib/utils/shared/types.ts
@@ -1 +1,10 @@
export type DeArray = T extends (infer R)[] ? R : T;
+
+type PartnerType = "gold" | "silver" | "bronze" | "title" | "partner";
+
+export interface Partner {
+ name: string;
+ logo: string;
+ tier: PartnerType;
+ url: string;
+}
diff --git a/apps/web/src/validators/event.ts b/apps/web/src/validators/event.ts
index ce5dbc53..44e39023 100644
--- a/apps/web/src/validators/event.ts
+++ b/apps/web/src/validators/event.ts
@@ -7,6 +7,7 @@ import c from "config";
export const newEventFormSchema = createInsertSchema(events, {
title: z.string().min(1),
description: z.string().min(1),
+ location: z.string().min(1),
startTime: z.date(),
endTime: z.date(),
host: z.string().optional(),
diff --git a/apps/web/src/validators/shared/RegistrationSettingsForm.ts b/apps/web/src/validators/shared/RegistrationSettingsForm.ts
new file mode 100644
index 00000000..430892dd
--- /dev/null
+++ b/apps/web/src/validators/shared/RegistrationSettingsForm.ts
@@ -0,0 +1,130 @@
+import { z } from "zod";
+import c from "config";
+
+const defaultPrettyError = {
+ errorMap: () => ({ message: "Please select a value" }),
+};
+
+const countryCodesArray = c.registration.countries.map(
+ (countryObject) => countryObject.code,
+);
+
+export const RegistrationSettingsFormValidator = z.object({
+ age: z
+ .number()
+ .min(18, { message: "You must be at least 18 years old to register." })
+ .positive({ message: "Value must be positive" })
+ .int({ message: "Value must be an integer" })
+ .or(z.string())
+ .pipe(
+ z.coerce
+ .number()
+ .min(18, {
+ message: "You must be at least 18 years old to register.",
+ })
+ .positive({ message: "Value must be positive" })
+ .int({ message: "Value must be an integer" }),
+ ),
+ gender: z.union([
+ z.literal("MALE", defaultPrettyError),
+ z.literal("FEMALE", defaultPrettyError),
+ z.literal("NON-BINARY", defaultPrettyError),
+ z.literal("OTHER", defaultPrettyError),
+ z.literal("PREFERNOTSAY", defaultPrettyError),
+ ]),
+ race: z.union([
+ z.literal("Asian Indian", defaultPrettyError),
+ z.literal("Asian (Other)", defaultPrettyError),
+ z.literal("Black or African", defaultPrettyError),
+ z.literal("Chinese", defaultPrettyError),
+ z.literal("Filipino", defaultPrettyError),
+ z.literal("Guamanian or Chamorro", defaultPrettyError),
+ z.literal("Hispanic / Latino / Spanish Origin", defaultPrettyError),
+ z.literal("Japanese", defaultPrettyError),
+ z.literal("Korean", defaultPrettyError),
+ z.literal("Middle Eastern", defaultPrettyError),
+ z.literal("Native American or Alaskan Native", defaultPrettyError),
+ z.literal("Native Hawaiian", defaultPrettyError),
+ z.literal("Samoan", defaultPrettyError),
+ z.literal("Vietnamese", defaultPrettyError),
+ z.literal("White", defaultPrettyError),
+ z.literal("Other Asian (Thai, Cambodian, etc)", defaultPrettyError),
+ z.literal("Other Pacific Islander", defaultPrettyError),
+ z.literal("Other", defaultPrettyError),
+ z.literal("Prefer Not to Answer", defaultPrettyError),
+ ]),
+ ethnicity: z.union([
+ z.literal("Hispanic or Latino", defaultPrettyError),
+ z.literal("Not Hispanic or Latino", defaultPrettyError),
+ ]),
+ phoneNumber: z.string().min(10).max(30, {
+ message: "Phone number must be less than 15 characters",
+ }),
+ countryOfResidence: z.string().length(2),
+ isEmailable: z.boolean(),
+ university: z.string().min(1).max(200),
+ major: z.string().min(1).max(200),
+ schoolID: z
+ .string()
+ .length(c.localUniversityShortIDMaxLength, {
+ message: `${c.localUniversitySchoolIDName} must be than ${c.localUniversityShortIDMaxLength} characters.`,
+ })
+ .or(z.literal("NOT_LOCAL_SCHOOL")),
+ levelOfStudy: z.union([
+ z.literal("Freshman", defaultPrettyError),
+ z.literal("Sophomore", defaultPrettyError),
+ z.literal("Junior", defaultPrettyError),
+ z.literal("Senior", defaultPrettyError),
+ z.literal("Recent Grad", defaultPrettyError),
+ z.literal("Other", defaultPrettyError),
+ ]),
+ hackathonsAttended: z
+ .number()
+ .min(0, { message: "Value must be positive or zero" })
+ .int({ message: "Value must be an integer" })
+ .or(z.string())
+ .pipe(
+ z.coerce
+ .number()
+ .min(0, { message: "Value must be positive or zero" })
+ .int({ message: "Value must be an integer" }),
+ ),
+ softwareBuildingExperience: z.union([
+ z.literal("Beginner", defaultPrettyError),
+ z.literal("Intermediate", defaultPrettyError),
+ z.literal("Advanced", defaultPrettyError),
+ z.literal("Expert", defaultPrettyError),
+ ]),
+ heardAboutEvent: z
+ .union([
+ z.literal("Instagram"),
+ z.literal("Class Presentation"),
+ z.literal("Twitter"),
+ z.literal("Event Site"),
+ z.literal("Friend"),
+ z.literal("Other"),
+ ])
+ .optional(),
+ shirtSize: z.union([
+ z.literal("S", defaultPrettyError),
+ z.literal("M", defaultPrettyError),
+ z.literal("L", defaultPrettyError),
+ z.literal("XL", defaultPrettyError),
+ z.literal("2XL", defaultPrettyError),
+ z.literal("3XL", defaultPrettyError),
+ ]),
+ dietaryRestrictions: z.array(z.string()),
+ accommodationNote: z.string().optional(),
+ github: z
+ .string()
+ .max(50, { message: "Username must be less than 50 characters" })
+ .optional(),
+ linkedin: z
+ .string()
+ .max(50, { message: "Username must be less than 50 characters" })
+ .optional(),
+ personalWebsite: z
+ .string()
+ .max(100, { message: "URL must be less than 100 characters" })
+ .optional(),
+});
diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js
index 25e3a82b..6b46f11c 100644
--- a/apps/web/tailwind.config.js
+++ b/apps/web/tailwind.config.js
@@ -83,6 +83,15 @@ module.exports = {
oswald: ["var(--font-oswald)"],
bttf: ["var(--font-bttf)"],
},
+ fontSize: {
+ "1.5xl": [
+ "1.375rem",
+ {
+ lineHeight: "1.75rem",
+ },
+ ],
+ "1.8xl": ["1.45rem", "1.9375rem"],
+ },
},
},
plugins: [
diff --git a/package.json b/package.json
index ed954ddf..0a7fe53c 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"scripts": {
- "build": "turbo run build",
+ "build": "turbo run build && pnpm --filter=db migrations:apply",
"dev": "turbo run dev",
"lint": "turbo run lint",
"migrations:generate": "pnpm --filter=db migrations:generate",
diff --git a/packages/config/hackkit.config.ts b/packages/config/hackkit.config.ts
index e7a739ac..d3b29c80 100644
--- a/packages/config/hackkit.config.ts
+++ b/packages/config/hackkit.config.ts
@@ -779,7 +779,7 @@ const c = {
siteUrl: "https://rowdyhacks.org", // Do not have a trailing slash
defaultMetaDataDescription: "Your Metadata Description Here",
botName: "RowdyBot",
- botParticipantRole: "Participant",
+ botParticipantRole: "RHX Participant",
hackathonTimezone: "America/Chicago",
localUniversityName: schools[0],
localUniversitySchoolIDName: "ABC123",
@@ -804,7 +804,7 @@ const c = {
links: [
{
name: "Source Code",
- link: "https://github.com/acmutsa/HackKit",
+ link: "https://github.com/acmutsa/RowdyHacksX",
},
],
otherHackathons: [
@@ -820,34 +820,34 @@ const c = {
],
},
groups: {
- "Guild A | Group A": {
+ "Doc Brown | Group A": {
discordRole: "Doc Brown",
},
- "Guild A | Group B": {
+ "Doc Brown | Group B": {
discordRole: "Doc Brown",
},
- "Guild B | Group A": {
+ "Marty | Group A": {
discordRole: "Marty",
},
- "Guild B | Group B": {
+ "Marty | Group B": {
discordRole: "Marty",
},
- "Guild C | Group A": {
+ "Dr. Who | Group A": {
discordRole: "Dr. Who",
},
- "Guild C | Group B": {
+ "Dr. Who | Group B": {
discordRole: "Dr. Who",
},
- "Guild D | Group A": {
+ "Terminator | Group A": {
discordRole: "Terminator",
},
- "Guild D | Group B": {
+ "Terminator | Group B": {
discordRole: "Terminator",
},
- "Guild E | Group A": {
+ "Mr. Peabody and Sherman | Group A": {
discordRole: "Mr. Peabody and Sherman",
},
- "Guild E | Group B": {
+ "Mr. Peabody and Sherman | Group B": {
discordRole: "Mr. Peabody and Sherman",
},
},
diff --git a/packages/db/drizzle/0019_lyrical_thundra.sql b/packages/db/drizzle/0019_lyrical_thundra.sql
new file mode 100644
index 00000000..58549057
--- /dev/null
+++ b/packages/db/drizzle/0019_lyrical_thundra.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "events" ADD COLUMN IF NOT EXISTS "location" varchar(255) DEFAULT 'TBD';--> statement-breakpoint
+ALTER TABLE "events" ADD COLUMN IF NOT EXISTS "points" integer DEFAULT 0 NOT NULL;
\ No newline at end of file
diff --git a/packages/db/drizzle/meta/0019_snapshot.json b/packages/db/drizzle/meta/0019_snapshot.json
new file mode 100644
index 00000000..bee0f32c
--- /dev/null
+++ b/packages/db/drizzle/meta/0019_snapshot.json
@@ -0,0 +1,1048 @@
+{
+ "id": "5d8d7536-22b1-4791-a4ac-ef1a289a0216",
+ "prevId": "9b898bb1-0037-4c8e-9146-7779db85ad01",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.chat_messages": {
+ "name": "chat_messages",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "bigserial",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "chat_id": {
+ "name": "chat_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "message": {
+ "name": "message",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "author_id": {
+ "name": "author_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ },
+ "public.chats": {
+ "name": "chats",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "chat_type",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ticket_id": {
+ "name": "ticket_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "author": {
+ "name": "author",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "chats_ticket_id_tickets_id_fk": {
+ "name": "chats_ticket_id_tickets_id_fk",
+ "tableFrom": "chats",
+ "tableTo": "tickets",
+ "columnsFrom": [
+ "ticket_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ },
+ "public.chats_to_users": {
+ "name": "chats_to_users",
+ "schema": "",
+ "columns": {
+ "chat_id": {
+ "name": "chat_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "chats_to_users_chat_id_chats_id_fk": {
+ "name": "chats_to_users_chat_id_chats_id_fk",
+ "tableFrom": "chats_to_users",
+ "tableTo": "chats",
+ "columnsFrom": [
+ "chat_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "chats_to_users_user_id_user_common_data_clerk_id_fk": {
+ "name": "chats_to_users_user_id_user_common_data_clerk_id_fk",
+ "tableFrom": "chats_to_users",
+ "tableTo": "user_common_data",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "clerk_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {
+ "chats_to_users_user_id_chat_id_pk": {
+ "name": "chats_to_users_user_id_chat_id_pk",
+ "columns": [
+ "user_id",
+ "chat_id"
+ ]
+ }
+ },
+ "uniqueConstraints": {}
+ },
+ "public.discord_verification": {
+ "name": "discord_verification",
+ "schema": "",
+ "columns": {
+ "code": {
+ "name": "code",
+ "type": "varchar(255)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "clerk_id": {
+ "name": "clerk_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discord_user_id": {
+ "name": "discord_user_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "discord_user_tag": {
+ "name": "discord_user_tag",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "discord_profile_photo": {
+ "name": "discord_profile_photo",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "discord_name": {
+ "name": "discord_name",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "status": {
+ "name": "status",
+ "type": "discord_status",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'pending'"
+ },
+ "guild": {
+ "name": "guild",
+ "type": "varchar(100)",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ },
+ "public.error_log": {
+ "name": "error_log",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "varchar(50)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "route": {
+ "name": "route",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "message": {
+ "name": "message",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ },
+ "public.events": {
+ "name": "events",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "bigserial",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "start_time": {
+ "name": "start_time",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "end_time": {
+ "name": "end_time",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "location": {
+ "name": "location",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'TBD'"
+ },
+ "points": {
+ "name": "points",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hidden": {
+ "name": "hidden",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "events_id_unique": {
+ "name": "events_id_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "id"
+ ]
+ }
+ }
+ },
+ "public.files": {
+ "name": "files",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "varchar(255)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "presigned_url": {
+ "name": "presigned_url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "varchar(500)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "validated": {
+ "name": "validated",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "type": {
+ "name": "type",
+ "type": "type",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "files_id_unique": {
+ "name": "files_id_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "id"
+ ]
+ },
+ "files_key_unique": {
+ "name": "files_key_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "key"
+ ]
+ }
+ }
+ },
+ "public.invites": {
+ "name": "invites",
+ "schema": "",
+ "columns": {
+ "invitee_id": {
+ "name": "invitee_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "status": {
+ "name": "status",
+ "type": "invite_status",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'pending'"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {
+ "invites_invitee_id_team_id_pk": {
+ "name": "invites_invitee_id_team_id_pk",
+ "columns": [
+ "invitee_id",
+ "team_id"
+ ]
+ }
+ },
+ "uniqueConstraints": {}
+ },
+ "public.scans": {
+ "name": "scans",
+ "schema": "",
+ "columns": {
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "event_id": {
+ "name": "event_id",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {
+ "scans_user_id_event_id_pk": {
+ "name": "scans_user_id_event_id_pk",
+ "columns": [
+ "user_id",
+ "event_id"
+ ]
+ }
+ },
+ "uniqueConstraints": {}
+ },
+ "public.teams": {
+ "name": "teams",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "varchar(50)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "tag": {
+ "name": "tag",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bio": {
+ "name": "bio",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "photo": {
+ "name": "photo",
+ "type": "varchar(400)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "devpost_url": {
+ "name": "devpost_url",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "teams_id_unique": {
+ "name": "teams_id_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "id"
+ ]
+ },
+ "teams_tag_unique": {
+ "name": "teams_tag_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "tag"
+ ]
+ }
+ }
+ },
+ "public.tickets": {
+ "name": "tickets",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "status": {
+ "name": "status",
+ "type": "ticket_status",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'awaiting'"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ },
+ "public.tickets_to_users": {
+ "name": "tickets_to_users",
+ "schema": "",
+ "columns": {
+ "ticket_id": {
+ "name": "ticket_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "tickets_to_users_ticket_id_tickets_id_fk": {
+ "name": "tickets_to_users_ticket_id_tickets_id_fk",
+ "tableFrom": "tickets_to_users",
+ "tableTo": "tickets",
+ "columnsFrom": [
+ "ticket_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "tickets_to_users_user_id_user_common_data_clerk_id_fk": {
+ "name": "tickets_to_users_user_id_user_common_data_clerk_id_fk",
+ "tableFrom": "tickets_to_users",
+ "tableTo": "user_common_data",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "clerk_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {
+ "tickets_to_users_user_id_ticket_id_pk": {
+ "name": "tickets_to_users_user_id_ticket_id_pk",
+ "columns": [
+ "user_id",
+ "ticket_id"
+ ]
+ }
+ },
+ "uniqueConstraints": {}
+ },
+ "public.user_common_data": {
+ "name": "user_common_data",
+ "schema": "",
+ "columns": {
+ "clerk_id": {
+ "name": "clerk_id",
+ "type": "varchar(255)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "first_name": {
+ "name": "first_name",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "last_name": {
+ "name": "last_name",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hacker_tag": {
+ "name": "hacker_tag",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "age": {
+ "name": "age",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "gender": {
+ "name": "gender",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "race": {
+ "name": "race",
+ "type": "varchar(75)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ethnicity": {
+ "name": "ethnicity",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "shirt_size": {
+ "name": "shirt_size",
+ "type": "varchar(5)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "diet_restrictions": {
+ "name": "diet_restrictions",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accommodation_note": {
+ "name": "accommodation_note",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discord": {
+ "name": "discord",
+ "type": "varchar(60)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "pronouns": {
+ "name": "pronouns",
+ "type": "varchar(20)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bio": {
+ "name": "bio",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "skills": {
+ "name": "skills",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[]'::json"
+ },
+ "profile_photo": {
+ "name": "profile_photo",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "phone_number": {
+ "name": "phone_number",
+ "type": "varchar(30)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "country_of_residence": {
+ "name": "country_of_residence",
+ "type": "varchar(3)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "is_fully_registered": {
+ "name": "is_fully_registered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "signup_time": {
+ "name": "signup_time",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "is_searchable": {
+ "name": "is_searchable",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "role": {
+ "name": "role",
+ "type": "role",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'hacker'"
+ },
+ "checkin_timestamp": {
+ "name": "checkin_timestamp",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_rsvped": {
+ "name": "is_rsvped",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "is_approved": {
+ "name": "is_approved",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_common_data_email_unique": {
+ "name": "user_common_data_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_common_data_hacker_tag_unique": {
+ "name": "user_common_data_hacker_tag_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "hacker_tag"
+ ]
+ }
+ }
+ },
+ "public.user_hacker_data": {
+ "name": "user_hacker_data",
+ "schema": "",
+ "columns": {
+ "clerk_id": {
+ "name": "clerk_id",
+ "type": "varchar(255)",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "university": {
+ "name": "university",
+ "type": "varchar(200)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "major": {
+ "name": "major",
+ "type": "varchar(200)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "school_id": {
+ "name": "school_id",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "level_of_study": {
+ "name": "level_of_study",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hackathons_attended": {
+ "name": "hackathons_attended",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "software_experience": {
+ "name": "software_experience",
+ "type": "varchar(25)",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "heard_from": {
+ "name": "heard_from",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "github": {
+ "name": "github",
+ "type": "varchar(100)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "linkedin": {
+ "name": "linkedin",
+ "type": "varchar(100)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "personal_website": {
+ "name": "personal_website",
+ "type": "varchar(100)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resume": {
+ "name": "resume",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://static.acmutsa.org/No%20Resume%20Provided.pdf'"
+ },
+ "group": {
+ "name": "group",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "varchar(50)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "points": {
+ "name": "points",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "has_accepted_mlh_coc": {
+ "name": "has_accepted_mlh_coc",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "has_shared_data_with_mlh": {
+ "name": "has_shared_data_with_mlh",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "is_emailable": {
+ "name": "is_emailable",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {}
+ }
+ },
+ "enums": {
+ "public.chat_type": {
+ "name": "chat_type",
+ "schema": "public",
+ "values": [
+ "ticket"
+ ]
+ },
+ "public.discord_status": {
+ "name": "discord_status",
+ "schema": "public",
+ "values": [
+ "pending",
+ "expired",
+ "accepted",
+ "rejected"
+ ]
+ },
+ "public.type": {
+ "name": "type",
+ "schema": "public",
+ "values": [
+ "generic",
+ "resume"
+ ]
+ },
+ "public.invite_status": {
+ "name": "invite_status",
+ "schema": "public",
+ "values": [
+ "pending",
+ "accepted",
+ "declined"
+ ]
+ },
+ "public.role": {
+ "name": "role",
+ "schema": "public",
+ "values": [
+ "hacker",
+ "volunteer",
+ "mentor",
+ "mlh",
+ "admin",
+ "super_admin"
+ ]
+ },
+ "public.ticket_status": {
+ "name": "ticket_status",
+ "schema": "public",
+ "values": [
+ "awaiting",
+ "in_progress",
+ "completed"
+ ]
+ }
+ },
+ "schemas": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/packages/db/drizzle/meta/_journal.json b/packages/db/drizzle/meta/_journal.json
index 83330b20..e5a2939f 100644
--- a/packages/db/drizzle/meta/_journal.json
+++ b/packages/db/drizzle/meta/_journal.json
@@ -134,6 +134,13 @@
"when": 1726078325574,
"tag": "0018_melodic_starbolt",
"breakpoints": true
+ },
+ {
+ "idx": 19,
+ "version": "7",
+ "when": 1729878594525,
+ "tag": "0019_lyrical_thundra",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/packages/db/functions/user.ts b/packages/db/functions/user.ts
index 67b69788..de507ac4 100644
--- a/packages/db/functions/user.ts
+++ b/packages/db/functions/user.ts
@@ -1,6 +1,6 @@
import { db, eq } from "..";
-import { userCommonData } from "../schema";
-import { User } from "../types";
+import { userCommonData, userHackerData } from "../schema";
+import { HackerData, User } from "../types";
// const _getAllUsers = db.query.userCommonData.findMany().prepare("getAllUsers");
@@ -24,6 +24,14 @@ export function getUser(clerkID: string): Promise {
});
}
+export function getHackerData(
+ clerkID: string,
+): Promise {
+ return db.query.userHackerData.findFirst({
+ where: eq(userHackerData.clerkID, clerkID),
+ });
+}
+
// Tag
// const _getUserByTag = db.query.userCommonData
diff --git a/packages/db/schema.ts b/packages/db/schema.ts
index 02f79c5c..c326c277 100644
--- a/packages/db/schema.ts
+++ b/packages/db/schema.ts
@@ -159,10 +159,8 @@ export const events = pgTable("events", {
title: varchar("name", { length: 255 }).notNull(),
startTime: timestamp("start_time").notNull(),
endTime: timestamp("end_time").notNull(),
- // checkinStartTime: timestamp("checkin_start_time").notNull(),
- // checkinEndTime: timestamp("checkin_end_time").notNull(),
- // location: varchar("location", { length: 255 }).notNull(),
- // points: integer("points").notNull().default(0),
+ location: varchar("location", { length: 255 }).default("TBD"),
+ points: integer("points").notNull().default(0),
description: text("description").notNull(),
type: varchar("type", { length: 50 }).notNull(),
host: varchar("host", { length: 255 }),
diff --git a/packages/db/types.ts b/packages/db/types.ts
index 397bd787..b0214215 100644
--- a/packages/db/types.ts
+++ b/packages/db/types.ts
@@ -3,6 +3,7 @@ import { userCommonData, userHackerData, teams, scans, events } from "./schema";
export interface Scan extends InferSelectModel {}
export interface User extends InferSelectModel {}
+export interface HackerData extends InferSelectModel {}
export interface Team extends InferSelectModel {}
export interface Event extends InferSelectModel {}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index dce8a06d..60b4dc1e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
lockfileVersion: '6.0'
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
importers:
.:
@@ -239,8 +243,8 @@ importers:
specifier: 14.2.5
version: 14.2.5(@babel/core@7.24.5)(react-dom@18.3.1)(react@18.3.1)
next-safe-action:
- specifier: ^5.2.3
- version: 5.2.3(next@14.2.5)(react@18.3.1)(zod@3.23.8)
+ specifier: ^7.9.3
+ version: 7.9.3(next@14.2.5)(react-dom@18.3.1)(react@18.3.1)(zod@3.23.8)
no-profanity:
specifier: ^1.5.1
version: 1.5.1
@@ -276,7 +280,7 @@ importers:
version: 14.2.3(react@18.3.1)
react-email:
specifier: ^2.1.5
- version: 2.1.5(eslint@9.7.0)
+ version: 2.1.5(eslint@9.11.1)
react-fast-marquee:
specifier: ^1.6.5
version: 1.6.5(react-dom@18.3.1)(react@18.3.1)
@@ -343,7 +347,7 @@ importers:
devDependencies:
esbuild-register:
specifier: ^3.5.0
- version: 3.5.0(esbuild@0.23.0)
+ version: 3.5.0(esbuild@0.24.0)
packages/config: {}
@@ -360,7 +364,7 @@ importers:
version: 0.31.2(@planetscale/database@1.18.0)(@types/react@18.3.3)(@vercel/postgres@0.9.0)(pg@8.12.0)(postgres@3.4.4)(react@18.3.1)
esbuild-register:
specifier: ^3.5.0
- version: 3.5.0(esbuild@0.23.0)
+ version: 3.5.0(esbuild@0.24.0)
postgres:
specifier: ^3.4.4
version: 3.4.4
@@ -1517,8 +1521,8 @@ packages:
dev: false
optional: true
- /@esbuild/aix-ppc64@0.23.0:
- resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==}
+ /@esbuild/aix-ppc64@0.24.0:
+ resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
@@ -1552,8 +1556,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm64@0.23.0:
- resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==}
+ /@esbuild/android-arm64@0.24.0:
+ resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
@@ -1587,8 +1591,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.23.0:
- resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==}
+ /@esbuild/android-arm@0.24.0:
+ resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
@@ -1622,8 +1626,8 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64@0.23.0:
- resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==}
+ /@esbuild/android-x64@0.24.0:
+ resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
@@ -1657,8 +1661,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64@0.23.0:
- resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==}
+ /@esbuild/darwin-arm64@0.24.0:
+ resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
@@ -1692,8 +1696,8 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64@0.23.0:
- resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==}
+ /@esbuild/darwin-x64@0.24.0:
+ resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
@@ -1727,8 +1731,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64@0.23.0:
- resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==}
+ /@esbuild/freebsd-arm64@0.24.0:
+ resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
@@ -1762,8 +1766,8 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64@0.23.0:
- resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==}
+ /@esbuild/freebsd-x64@0.24.0:
+ resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
@@ -1797,8 +1801,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64@0.23.0:
- resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==}
+ /@esbuild/linux-arm64@0.24.0:
+ resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
@@ -1832,8 +1836,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm@0.23.0:
- resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==}
+ /@esbuild/linux-arm@0.24.0:
+ resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
@@ -1867,8 +1871,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32@0.23.0:
- resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==}
+ /@esbuild/linux-ia32@0.24.0:
+ resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
@@ -1902,8 +1906,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.23.0:
- resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==}
+ /@esbuild/linux-loong64@0.24.0:
+ resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
@@ -1937,8 +1941,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el@0.23.0:
- resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==}
+ /@esbuild/linux-mips64el@0.24.0:
+ resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
@@ -1972,8 +1976,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64@0.23.0:
- resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==}
+ /@esbuild/linux-ppc64@0.24.0:
+ resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
@@ -2007,8 +2011,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64@0.23.0:
- resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==}
+ /@esbuild/linux-riscv64@0.24.0:
+ resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
@@ -2042,8 +2046,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x@0.23.0:
- resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==}
+ /@esbuild/linux-s390x@0.24.0:
+ resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
@@ -2077,8 +2081,8 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64@0.23.0:
- resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==}
+ /@esbuild/linux-x64@0.24.0:
+ resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
@@ -2112,16 +2116,16 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.23.0:
- resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==}
+ /@esbuild/netbsd-x64@0.24.0:
+ resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
optional: true
- /@esbuild/openbsd-arm64@0.23.0:
- resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==}
+ /@esbuild/openbsd-arm64@0.24.0:
+ resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
@@ -2155,8 +2159,8 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64@0.23.0:
- resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==}
+ /@esbuild/openbsd-x64@0.24.0:
+ resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
@@ -2190,8 +2194,8 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64@0.23.0:
- resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==}
+ /@esbuild/sunos-x64@0.24.0:
+ resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
@@ -2225,8 +2229,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64@0.23.0:
- resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==}
+ /@esbuild/win32-arm64@0.24.0:
+ resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
@@ -2260,8 +2264,8 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32@0.23.0:
- resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==}
+ /@esbuild/win32-ia32@0.24.0:
+ resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
@@ -2295,14 +2299,24 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64@0.23.0:
- resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==}
+ /@esbuild/win32-x64@0.24.0:
+ resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
requiresBuild: true
optional: true
+ /@eslint-community/eslint-utils@4.4.0(eslint@9.11.1):
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ dependencies:
+ eslint: 9.11.1(jiti@1.21.6)
+ eslint-visitor-keys: 3.4.3
+ dev: false
+
/@eslint-community/eslint-utils@4.4.0(eslint@9.7.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2311,10 +2325,17 @@ packages:
dependencies:
eslint: 9.7.0
eslint-visitor-keys: 3.4.3
+ dev: true
/@eslint-community/regexpp@4.11.0:
resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
+ /@eslint-community/regexpp@4.11.1:
+ resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: false
/@eslint/config-array@0.17.0:
resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==}
@@ -2325,6 +2346,23 @@ packages:
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
+ dev: true
+
+ /@eslint/config-array@0.18.0:
+ resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.7
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@eslint/core@0.6.0:
+ resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dev: false
/@eslint/eslintrc@3.1.0:
resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
@@ -2342,14 +2380,27 @@ packages:
transitivePeerDependencies:
- supports-color
+ /@eslint/js@9.11.1:
+ resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dev: false
+
/@eslint/js@9.7.0:
resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dev: true
/@eslint/object-schema@2.1.4:
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ /@eslint/plugin-kit@0.2.0:
+ resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dependencies:
+ levn: 0.4.1
+ dev: false
+
/@floating-ui/core@1.3.1:
resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==}
dev: false
@@ -6667,6 +6718,10 @@ packages:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: false
+ /@types/estree@1.0.6:
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ dev: false
+
/@types/express-serve-static-core@4.19.5:
resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==}
dependencies:
@@ -7958,6 +8013,18 @@ packages:
dependencies:
ms: 2.1.2
+ /debug@4.3.7:
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: false
+
/decimal.js-light@2.5.1:
resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
dev: false
@@ -8416,13 +8483,13 @@ packages:
- supports-color
dev: true
- /esbuild-register@3.5.0(esbuild@0.23.0):
+ /esbuild-register@3.5.0(esbuild@0.24.0):
resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==}
peerDependencies:
esbuild: '>=0.12 <1'
dependencies:
debug: 4.3.5
- esbuild: 0.23.0
+ esbuild: 0.24.0
transitivePeerDependencies:
- supports-color
@@ -8517,36 +8584,36 @@ packages:
'@esbuild/win32-x64': 0.19.8
dev: true
- /esbuild@0.23.0:
- resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==}
+ /esbuild@0.24.0:
+ resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
engines: {node: '>=18'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/aix-ppc64': 0.23.0
- '@esbuild/android-arm': 0.23.0
- '@esbuild/android-arm64': 0.23.0
- '@esbuild/android-x64': 0.23.0
- '@esbuild/darwin-arm64': 0.23.0
- '@esbuild/darwin-x64': 0.23.0
- '@esbuild/freebsd-arm64': 0.23.0
- '@esbuild/freebsd-x64': 0.23.0
- '@esbuild/linux-arm': 0.23.0
- '@esbuild/linux-arm64': 0.23.0
- '@esbuild/linux-ia32': 0.23.0
- '@esbuild/linux-loong64': 0.23.0
- '@esbuild/linux-mips64el': 0.23.0
- '@esbuild/linux-ppc64': 0.23.0
- '@esbuild/linux-riscv64': 0.23.0
- '@esbuild/linux-s390x': 0.23.0
- '@esbuild/linux-x64': 0.23.0
- '@esbuild/netbsd-x64': 0.23.0
- '@esbuild/openbsd-arm64': 0.23.0
- '@esbuild/openbsd-x64': 0.23.0
- '@esbuild/sunos-x64': 0.23.0
- '@esbuild/win32-arm64': 0.23.0
- '@esbuild/win32-ia32': 0.23.0
- '@esbuild/win32-x64': 0.23.0
+ '@esbuild/aix-ppc64': 0.24.0
+ '@esbuild/android-arm': 0.24.0
+ '@esbuild/android-arm64': 0.24.0
+ '@esbuild/android-x64': 0.24.0
+ '@esbuild/darwin-arm64': 0.24.0
+ '@esbuild/darwin-x64': 0.24.0
+ '@esbuild/freebsd-arm64': 0.24.0
+ '@esbuild/freebsd-x64': 0.24.0
+ '@esbuild/linux-arm': 0.24.0
+ '@esbuild/linux-arm64': 0.24.0
+ '@esbuild/linux-ia32': 0.24.0
+ '@esbuild/linux-loong64': 0.24.0
+ '@esbuild/linux-mips64el': 0.24.0
+ '@esbuild/linux-ppc64': 0.24.0
+ '@esbuild/linux-riscv64': 0.24.0
+ '@esbuild/linux-s390x': 0.24.0
+ '@esbuild/linux-x64': 0.24.0
+ '@esbuild/netbsd-x64': 0.24.0
+ '@esbuild/openbsd-arm64': 0.24.0
+ '@esbuild/openbsd-x64': 0.24.0
+ '@esbuild/sunos-x64': 0.24.0
+ '@esbuild/win32-arm64': 0.24.0
+ '@esbuild/win32-ia32': 0.24.0
+ '@esbuild/win32-x64': 0.24.0
/escalade@3.1.2:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
@@ -8582,31 +8649,31 @@ packages:
optionalDependencies:
source-map: 0.6.1
- /eslint-config-prettier@9.0.0(eslint@9.7.0):
+ /eslint-config-prettier@9.0.0(eslint@9.11.1):
resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- eslint: 9.7.0
+ eslint: 9.11.1(jiti@1.21.6)
dev: false
- /eslint-config-turbo@1.10.12(eslint@9.7.0):
+ /eslint-config-turbo@1.10.12(eslint@9.11.1):
resolution: {integrity: sha512-z3jfh+D7UGYlzMWGh+Kqz++hf8LOE96q3o5R8X4HTjmxaBWlLAWG+0Ounr38h+JLR2TJno0hU9zfzoPNkR9BdA==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
- eslint: 9.7.0
- eslint-plugin-turbo: 1.10.12(eslint@9.7.0)
+ eslint: 9.11.1(jiti@1.21.6)
+ eslint-plugin-turbo: 1.10.12(eslint@9.11.1)
dev: false
- /eslint-plugin-turbo@1.10.12(eslint@9.7.0):
+ /eslint-plugin-turbo@1.10.12(eslint@9.11.1):
resolution: {integrity: sha512-uNbdj+ohZaYo4tFJ6dStRXu2FZigwulR1b3URPXe0Q8YaE7thuekKNP+54CHtZPH9Zey9dmDx5btAQl9mfzGOw==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
dotenv: 16.0.3
- eslint: 9.7.0
+ eslint: 9.11.1(jiti@1.21.6)
dev: false
/eslint-scope@5.1.1:
@@ -8623,6 +8690,15 @@ packages:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
+ dev: true
+
+ /eslint-scope@8.1.0:
+ resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: false
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
@@ -8632,6 +8708,63 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ /eslint-visitor-keys@4.1.0:
+ resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dev: false
+
+ /eslint@9.11.1(jiti@1.21.6):
+ resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1)
+ '@eslint-community/regexpp': 4.11.1
+ '@eslint/config-array': 0.18.0
+ '@eslint/core': 0.6.0
+ '@eslint/eslintrc': 3.1.0
+ '@eslint/js': 9.11.1
+ '@eslint/plugin-kit': 0.2.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.3.0
+ '@nodelib/fs.walk': 1.2.8
+ '@types/estree': 1.0.6
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.7
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.1.0
+ eslint-visitor-keys: 4.1.0
+ espree: 10.2.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ jiti: 1.21.6
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/eslint@9.7.0:
resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -8673,6 +8806,7 @@ packages:
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
+ dev: true
/espree@10.1.0:
resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==}
@@ -8682,6 +8816,15 @@ packages:
acorn-jsx: 5.3.2(acorn@8.12.1)
eslint-visitor-keys: 4.0.0
+ /espree@10.2.0:
+ resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ dependencies:
+ acorn: 8.12.1
+ acorn-jsx: 5.3.2(acorn@8.12.1)
+ eslint-visitor-keys: 4.1.0
+ dev: false
+
/esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
@@ -9097,7 +9240,7 @@ packages:
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.19.0
+ uglify-js: 3.19.3
dev: true
/has-flag@3.0.0:
@@ -9236,6 +9379,11 @@ packages:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
+ /ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+ dev: false
+
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -9880,6 +10028,10 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: false
+
/mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
dev: true
@@ -9920,16 +10072,30 @@ packages:
engines: {node: '>= 0.4.0'}
dev: true
- /next-safe-action@5.2.3(next@14.2.5)(react@18.3.1)(zod@3.23.8):
- resolution: {integrity: sha512-djTDE9CkTH/EVzhIJBovlU9kJ7twy7gVC1HFsuQzhMe2d5V90IXlZLmpvnt0c6D5rMjFBrBwd2VVQnyVQcWoHQ==}
- engines: {node: '>=16'}
+ /next-safe-action@7.9.3(next@14.2.5)(react-dom@18.3.1)(react@18.3.1)(zod@3.23.8):
+ resolution: {integrity: sha512-2GH7/iRiM5R/y6sIQZsNHGeRr/iKQJsg8ejP63WhTS7fXS9KzxVbEKrWwLNNhL33V9cn0448cPSI/aiSK/PUbA==}
+ engines: {node: '>=18.17'}
peerDependencies:
+ '@sinclair/typebox': '>= 0.33.3'
next: '>= 14.0.0'
react: '>= 18.2.0'
+ react-dom: '>= 18.2.0'
+ valibot: '>= 0.36.0'
+ yup: '>= 1.0.0'
zod: '>= 3.0.0'
+ peerDependenciesMeta:
+ '@sinclair/typebox':
+ optional: true
+ valibot:
+ optional: true
+ yup:
+ optional: true
+ zod:
+ optional: true
dependencies:
next: 14.2.5(@babel/core@7.24.5)(react-dom@18.3.1)(react@18.3.1)
react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
zod: 3.23.8
dev: false
@@ -10842,7 +11008,7 @@ packages:
react: 18.3.1
dev: false
- /react-email@2.1.5(eslint@9.7.0):
+ /react-email@2.1.5(eslint@9.11.1):
resolution: {integrity: sha512-SjGt5XiqNwrC6FT0rAxERj0MC9binUOVZDzspAxcRHpxjZavvePAHvV29uROWNQ1Ha7ssg1sfy4dTQi7bjCXrg==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -10866,8 +11032,8 @@ packages:
commander: 11.1.0
debounce: 2.0.0
esbuild: 0.19.11
- eslint-config-prettier: 9.0.0(eslint@9.7.0)
- eslint-config-turbo: 1.10.12(eslint@9.7.0)
+ eslint-config-prettier: 9.0.0(eslint@9.11.1)
+ eslint-config-turbo: 1.10.12(eslint@9.11.1)
framer-motion: 10.17.4(react-dom@18.3.1)(react@18.3.1)
glob: 10.3.4
log-symbols: 4.1.0
@@ -11807,7 +11973,7 @@ packages:
engines: {node: '>=6'}
dev: false
- /terser-webpack-plugin@5.3.10(@swc/core@1.3.101)(esbuild@0.19.11)(webpack@5.93.0):
+ /terser-webpack-plugin@5.3.10(esbuild@0.24.0)(webpack@5.93.0):
resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@@ -11824,8 +11990,7 @@ packages:
optional: true
dependencies:
'@jridgewell/trace-mapping': 0.3.25
- '@swc/core': 1.3.101
- esbuild: 0.19.11
+ esbuild: 0.24.0
jest-worker: 27.5.1
schema-utils: 3.3.0
serialize-javascript: 6.0.2
@@ -12105,8 +12270,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- /uglify-js@3.19.0:
- resolution: {integrity: sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==}
+ /uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
engines: {node: '>=0.8.0'}
hasBin: true
requiresBuild: true
@@ -12427,7 +12592,7 @@ packages:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
- terser-webpack-plugin: 5.3.10(@swc/core@1.3.101)(esbuild@0.19.11)(webpack@5.93.0)
+ terser-webpack-plugin: 5.3.10(esbuild@0.24.0)(webpack@5.93.0)
watchpack: 2.4.1
webpack-sources: 3.2.3
transitivePeerDependencies:
@@ -12595,7 +12760,3 @@ packages:
/zod@3.23.8:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
dev: false
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false