diff --git a/.gitignore b/.gitignore index 5a6f8656..ba6fe6d9 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,6 @@ yarn-error.log* # vscode .vscode .env*.local + +# infisical +.infisical.json \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index ec3c416a..afdfbff0 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -10,7 +10,8 @@ "with-env": "dotenv -e ../../.env --", "pages:build": "pnpm dlx @cloudflare/next-on-pages", "preview": "pnpm run pages:build && wrangler pages dev", - "deploy": "pnpm run pages:build && wrangler pages deploy" + "deploy": "pnpm run pages:build && wrangler pages deploy", + "email-dev": "email dev --dir ./src/components/emails --port 3001" }, "dependencies": { "@aws-sdk/client-s3": "^3.758.0", @@ -35,6 +36,7 @@ "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.1.0", + "@react-email/components": "0.0.36", "@t3-oss/env-nextjs": "^0.10.1", "@tanstack/match-sorter-utils": "^8.15.1", "@tanstack/react-table": "^8.17.3", @@ -48,6 +50,7 @@ "db": "workspace:*", "dotenv": "^16.3.1", "dotenv-cli": "^7.4.1", + "emails": "workspace:*", "jiti": "^1.21.0", "lucide-react": "^0.377.0", "nanoid": "^5.0.6", @@ -78,6 +81,7 @@ "@types/react-dom": "^18", "autoprefixer": "^10.0.1", "postcss": "^8", + "react-email": "4.0.4", "tailwindcss": "^3.3.0", "typescript": "^5" } diff --git a/apps/web/src/actions/email.ts b/apps/web/src/actions/email.ts new file mode 100644 index 00000000..6e09bf74 --- /dev/null +++ b/apps/web/src/actions/email.ts @@ -0,0 +1,40 @@ +"use server"; +import { authenticatedAction } from "@/lib/safe-action"; +import z from "zod"; +import { sendEmail } from "emails/utils"; + +const emailSchema = z + .string({ + invalid_type_error: "Email needs to be a string", + required_error: "Email is required", + }) + .email({ message: "Invalid email address" }) + .transform((e) => e.toLowerCase()); + +const emailPropsSchema = z.object({ + subscribed: z + .boolean({ invalid_type_error: "Subscribed should be a boolean" }) + .optional(), + from: emailSchema.optional(), + name: z.string().optional(), + reply: emailSchema.optional(), + to: z + .array(emailSchema) + .max(5, "You can only send transactional emails to 5 people at a time") + .or(emailSchema.transform((e) => [e])), + subject: z.string({ + required_error: + "Subject is required. Read more: https://docs.useplunk.com/api-reference/transactional/send", + }), + body: z.string({ + required_error: + "Body is required. Read more: https://docs.useplunk.com/api-reference/transactional/send", + }), + headers: z.record(z.string()).optional(), +}); + +export const sendEmailAction = authenticatedAction + .schema(emailPropsSchema) + .action(async ({ parsedInput }) => { + await sendEmail(parsedInput); + }); diff --git a/apps/web/src/actions/register/migrate.ts b/apps/web/src/actions/register/migrate.ts index fe30b2af..58d0ad55 100644 --- a/apps/web/src/actions/register/migrate.ts +++ b/apps/web/src/actions/register/migrate.ts @@ -6,11 +6,16 @@ import { db } from "db"; import { and, eq, isNull } from "db/drizzle"; import { users, data } from "db/schema"; import { currentUser } from "@clerk/nextjs/server"; +import { AccountConnected } from "emails/components"; +import { sendEmail } from "emails/utils"; import c from "config"; export const doPortalLookupCheck = authenticatedAction .schema( - z.object({ universityID: z.string().min(1), email: z.string().min(1) }), + z.object({ + universityID: z.string().min(1).max(255), + email: z.string().min(1).max(255), + }), ) .action(async ({ parsedInput: { email, universityID } }) => { const lookup = await db @@ -40,18 +45,23 @@ export const doPortalLookupCheck = authenticatedAction export const doPortalLink = authenticatedAction .schema( - z.object({ universityID: z.string().min(1), email: z.string().min(1) }), + z.object({ + universityID: z.string().min(1).max(255), + email: z.string().min(1).max(255), + }), ) .action( async ({ ctx: { clerkID }, parsedInput: { email, universityID } }) => { + const emailLower = email.toLowerCase(); + const universityIDLower = universityID.toLowerCase(); const lookup = await db .select() .from(users) .where( and( - eq(users.email, email.toLowerCase()), + eq(users.email, emailLower), isNull(users.clerkID), - eq(users.universityID, universityID.toLowerCase()), + eq(users.universityID, universityIDLower), ), ) .limit(1); @@ -65,8 +75,24 @@ export const doPortalLink = authenticatedAction if (lookup[0]) { await db .update(users) - .set({ clerkID, email: userEmail }) + .set({ + clerkID, + email: userEmail, + universityID: universityIDLower, + }) .where(eq(users.userID, lookup[0].userID)); + try { + await sendEmail({ + to: userEmail, + subject: `Welcome back to ${c.clubName}!`, + name: `${c.universityName} ${c.clubName}`, + body: AccountConnected({ + firstName: lookup[0].firstName, + }), + }); + } catch (e) { + console.error("Error sending email:", e); + } return { success: true, }; diff --git a/apps/web/src/actions/register/new.ts b/apps/web/src/actions/register/new.ts index 83aba7c3..5025b399 100644 --- a/apps/web/src/actions/register/new.ts +++ b/apps/web/src/actions/register/new.ts @@ -5,6 +5,9 @@ import { insertUserWithDataSchemaFormified } from "db/zod"; import { db } from "db"; import { eq, or } from "db/drizzle"; import { users, data } from "db/schema"; +import { RegistrationConfirmation } from "emails/components"; +import { sendEmail } from "emails/utils"; +import c from "config"; export const createRegistration = authenticatedAction .schema(insertUserWithDataSchemaFormified) @@ -65,6 +68,20 @@ export const createRegistration = authenticatedAction }); }); + try { + console.log("Sending email to: ", lowerCasedEmail); + await sendEmail({ + to: lowerCasedEmail, + subject: `Welcome to ${c.clubName}!`, + name: `${c.universityName} ${c.clubName}`, + body: RegistrationConfirmation({ + firstName: usersSchemaInputs.firstName, + }), + }); + } catch (e) { + console.log("Error sending email: ", e); + } + return { success: true, code: "success", diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index ce4b5b75..291b84e9 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -1,22 +1,21 @@ import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; +import { emailsConfig } from "config"; export const env = createEnv({ server: { - CLERK_SECRET_KEY: z.string().min(1), + CLERK_SECRET_KEY: z.string(), }, client: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().min(1), + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), + NEXT_PUBLIC_BASE_URL: emailsConfig.useEmailService + ? z.string() + : z.string().optional(), }, - // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually - // runtimeEnv: { - // DATABASE_URL: process.env.DATABASE_URL, - // OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY, - // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, - // }, - // For Next.js >= 13.4.4, you only need to destructure client variables: experimental__runtimeEnv: { NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, + NEXT_PUBLIC_BASE_URL: process.env.NEXT_PUBLIC_BASE_URL, }, + emptyStringAsUndefined: true, }); diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 822e1ec7..32615cc8 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -21,7 +21,7 @@ "@/*": ["./src/*"] }, }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "../../packages/emails/utils.ts"], "exclude": ["node_modules"], "types": [ "@cloudflare/workers-types/2024-07-29" diff --git a/packages/config/clubkit.config.ts b/packages/config/clubkit.config.ts index e0de93a9..898ce08d 100644 --- a/packages/config/clubkit.config.ts +++ b/packages/config/clubkit.config.ts @@ -1,6 +1,7 @@ const c = { clubName: "ClubKit", universityName: "UTSA", + discordLink: "https://go.acmutsa.org/discord", universityID: { name: "ABC123", maxLength: 6, @@ -101,6 +102,15 @@ const c = { memberRoles: ["member", "admin", "super_admin"] as const, } as const; +const emailsConfig = { + useEmailService: true, + //If self hosted, the api route should look like: https://base_url_hosted/api/v1/ - Do NOT omit the final forward slash or it will not be included + isSelfHosted: true, + rightsReservedString: `© Association of Computing Machinery at UTSA 2015 - + ${new Date().getFullYear()}. All Rights Reserved.`, + publicLogoLink: "https://static.acmutsa.org/acm-logo.png", +}; + export const defaultTheme = "light"; const bucketBaseUrl = `${c.clubName}-${c.universityName}`; @@ -228,4 +238,10 @@ const staticUploads = { } as const; export default c; -export { majors, staticUploads, bucketEventThumbnailBaseUrl, bucketBaseUrl }; +export { + majors, + staticUploads, + bucketEventThumbnailBaseUrl, + bucketBaseUrl, + emailsConfig, +}; diff --git a/packages/emails/components/index.ts b/packages/emails/components/index.ts new file mode 100644 index 00000000..e4cf3bdf --- /dev/null +++ b/packages/emails/components/index.ts @@ -0,0 +1,2 @@ +export { default as AccountConnected } from "./templates/AccountConnected"; +export { default as RegistrationConfirmation } from "./templates/RegistrationConfirmation"; diff --git a/packages/emails/components/templates/AccountConnected.tsx b/packages/emails/components/templates/AccountConnected.tsx new file mode 100644 index 00000000..c03f9327 --- /dev/null +++ b/packages/emails/components/templates/AccountConnected.tsx @@ -0,0 +1,116 @@ +import { + Body, + Button, + Column, + Container, + Head, + Heading, + Html, + Img, + Link, + Preview, + Row, + Section, + Tailwind, + Text, +} from "@react-email/components"; +import type * as React from "react"; +import c, { emailsConfig } from "config"; +import { DefaultFooter, DefaultHeader, baseUrl } from "./shared"; + +export default function AccountConnected({ firstName }: { firstName: string }) { + return ( + + + + {`Welcome back to ${c.universityName} ${c.clubName}. Thanks for connecting your account. We are + glad to have you back with us. Things have + changed since you were last here. Lots of + updates and enhancements that we hope you + will enjoy.`} + + + + + {`Welcome back to ${c.universityName} ${c.clubName}`} + + +
+ + + {`Hi ${firstName},`} + + + Thanks for connecting your account. We are + glad to have you back with us. Things have + changed since you were last here. Lots of + updates and enhancements that we hope you + will enjoy. + + + Here's how to get started: + + +
+
    +
  • + + Go update your account information.{" "} + + We know it might have been a bit difficult to + update all of your information in the previous + iteration, but we have made it much easier for + you to do so now. Click the link to{" "} + + update your settings. + +
  • +
  • + Check out our upcoming events. + {`${c.clubName} is always hosting cool events that give you an opportunity to come learn, eat snacks, and meet new people so be sure to `} + + check out what is happening soon. + +
  • +
  • + Join our discord. + We are always chatting and sharing cool stuff + there. You can also talk with our officers and + ask any questions you may have.{" "} + + {" "} + Click the here to join. + +
  • +
+
+ +
+
+ + +
+ + ); +} diff --git a/packages/emails/components/templates/RegistrationConfirmation.tsx b/packages/emails/components/templates/RegistrationConfirmation.tsx new file mode 100644 index 00000000..b11652d7 --- /dev/null +++ b/packages/emails/components/templates/RegistrationConfirmation.tsx @@ -0,0 +1,115 @@ +import { + Body, + Button, + Container, + Head, + Heading, + Html, + Preview, + Row, + Section, + Tailwind, + Text, + Link, +} from "@react-email/components"; +import type * as React from "react"; +import c, { emailsConfig } from "config"; +import { DefaultFooter, DefaultHeader, baseUrl } from "./shared"; + +export default function RegistrationConfirmation({ + firstName, +}: { + firstName: string; +}) { + return ( + + + + {`Welcome to ${c.universityName} ${c.clubName}. Thanks for registering with us and we are + happy to have you as one of our members. As + you might know, ACM is always dedicated to + our members and we want to help you get + familiar with us and our membership portal.`} + + + + + {`Welcome to ${c.universityName} ${c.clubName}`} + + +
+ + + {`Hi ${firstName},`} + + + Thanks for registering with us and we are + happy to have you as one of our members. As + you might know, ACM is always dedicated to + our members and we want to help you get + familiar with us and our membership portal. + + + Here's how to get started: + + +
+
    +
  • + Learn more about ACM. + Check out our{" "} + + main website{" "} + + and learn more about our suborgs, officers, and + mission. +
  • +
  • + Check out our upcoming events. + {`${c.clubName} is always hosting cool events that give you an opportunity to come learn, have snacks, and meet new people so be sure to `} + + check out what is happening soon. + +
  • +
  • + Join our discord. + We are always chatting and sharing cool stuff + there. You can also talk with our officers and + ask any questions you may have.{" "} + + {" "} + Click the here to join. + +
  • +
+
+ +
+
+ + +
+ + ); +} diff --git a/packages/emails/components/templates/shared.tsx b/packages/emails/components/templates/shared.tsx new file mode 100644 index 00000000..a9f9e7f4 --- /dev/null +++ b/packages/emails/components/templates/shared.tsx @@ -0,0 +1,39 @@ +import { + Container, + Text, + Img, + Section, + Row, + Link, + Column, +} from "@react-email/components"; +import c, { emailsConfig } from "config"; + +export default function PlaceHolderShared() { + <>; +} + +export const baseUrl = process.env.NEXT_PUBLIC_BASE_URL!; +function DefaultFooter() { + return ( + + + {`${emailsConfig.rightsReservedString}`} + + + ); +} + +function DefaultHeader() { + return ( + Logo + ); +} + +export { DefaultFooter, DefaultHeader }; diff --git a/packages/emails/index.ts b/packages/emails/index.ts new file mode 100644 index 00000000..4654b07b --- /dev/null +++ b/packages/emails/index.ts @@ -0,0 +1,2 @@ +export * as components from "./components/index"; +export * as utils from "./utils"; diff --git a/packages/emails/package.json b/packages/emails/package.json new file mode 100644 index 00000000..9d187898 --- /dev/null +++ b/packages/emails/package.json @@ -0,0 +1,26 @@ +{ + "name": "emails", + "version": "1.0.0", + "description": "", + "main": "./index.tsx", + "types": "./index.tsx", + "scripts": { + "dev": "email dev --dir ./components/templates --port 3001" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@types/node": "^20.11.24", + "react-email": "4.0.4" + }, + "dependencies": { + "@plunk/node": "^3.0.3", + "@react-email/components": "0.0.36", + "@types/react": "^18", + "@types/react-dom": "^18", + "config": "workspace:*", + "react": "^18", + "react-dom": "^18" + } +} diff --git a/packages/emails/tsconfig.json b/packages/emails/tsconfig.json new file mode 100644 index 00000000..32615cc8 --- /dev/null +++ b/packages/emails/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "../../packages/emails/utils.ts"], + "exclude": ["node_modules"], + "types": [ + "@cloudflare/workers-types/2024-07-29" +] +} diff --git a/packages/emails/utils.ts b/packages/emails/utils.ts new file mode 100644 index 00000000..41e0d41f --- /dev/null +++ b/packages/emails/utils.ts @@ -0,0 +1,34 @@ +import { render } from "@react-email/components"; +import { ReactElement } from "react"; +import { emailsConfig } from "config"; +import Plunk from "@plunk/node"; +import { SendParams } from "@plunk/node/dist/types/emails"; + +const plunk = new Plunk(process.env.PLUNK_API_KEY!, { + baseUrl: emailsConfig.isSelfHosted + ? process.env.PLUNK_BASE_URL + : "https://api.useplunk.com/v1/", +}); + +export interface SendEmailProps extends Omit { + body: string | ReactElement; +} + +export async function sendEmail(sendEmailProps: SendEmailProps) { + if (!emailsConfig.useEmailService) { + return; + } + const emailBody = + typeof sendEmailProps.body === "string" + ? sendEmailProps.body + : await render(sendEmailProps.body); + const success = await plunk.emails.send({ + ...sendEmailProps, + body: emailBody, + }); + + if (!success) { + console.error(success); + throw new Error("Failed to send email"); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 429e26db..c963d5ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,6 +142,9 @@ importers: '@radix-ui/react-tabs': specifier: ^1.1.0 version: 1.1.0(@types/react-dom@18.2.19)(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0) + '@react-email/components': + specifier: 0.0.36 + version: 0.0.36(react-dom@18.2.0)(react@18.2.0) '@t3-oss/env-nextjs': specifier: ^0.10.1 version: 0.10.1(typescript@5.3.3)(zod@3.23.8) @@ -181,6 +184,9 @@ importers: dotenv-cli: specifier: ^7.4.1 version: 7.4.1 + emails: + specifier: workspace:* + version: link:../../packages/emails jiti: specifier: ^1.21.0 version: 1.21.0 @@ -266,6 +272,9 @@ importers: postcss: specifier: ^8 version: 8.4.31 + react-email: + specifier: 4.0.4 + version: 4.0.4(react-dom@18.2.0)(react@18.2.0) tailwindcss: specifier: ^3.3.0 version: 3.3.0(postcss@8.4.31) @@ -299,6 +308,37 @@ importers: specifier: ^3.23.8 version: 3.23.8 + packages/emails: + dependencies: + '@plunk/node': + specifier: ^3.0.3 + version: 3.0.3 + '@react-email/components': + specifier: 0.0.36 + version: 0.0.36(react-dom@18.2.0)(react@18.2.0) + '@types/react': + specifier: ^18 + version: 18.2.61 + '@types/react-dom': + specifier: ^18 + version: 18.2.19 + config: + specifier: workspace:* + version: link:../config + react: + specifier: ^18 + version: 18.2.0 + react-dom: + specifier: ^18 + version: 18.2.0(react@18.2.0) + devDependencies: + '@types/node': + specifier: ^20.11.24 + version: 20.11.24 + react-email: + specifier: 4.0.4 + version: 4.0.4(react-dom@18.2.0)(react@18.2.0) + packages/typescript-config: {} packages: @@ -309,7 +349,7 @@ packages: dependencies: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.734.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/crc32c@5.2.0: @@ -317,7 +357,7 @@ packages: dependencies: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.734.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/sha1-browser@5.2.0: @@ -328,7 +368,7 @@ packages: '@aws-sdk/types': 3.734.0 '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/sha256-browser@5.2.0: @@ -340,7 +380,7 @@ packages: '@aws-sdk/types': 3.734.0 '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/sha256-js@5.2.0: @@ -349,13 +389,13 @@ packages: dependencies: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.734.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/supports-web-crypto@5.2.0: resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-crypto/util@5.2.0: @@ -363,7 +403,7 @@ packages: dependencies: '@aws-sdk/types': 3.734.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/client-s3@3.758.0: @@ -471,7 +511,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -490,7 +530,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/util-middleware': 4.0.1 fast-xml-parser: 4.4.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/credential-provider-env@3.758.0: @@ -501,7 +541,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/credential-provider-http@3.758.0: @@ -517,7 +557,7 @@ packages: '@smithy/smithy-client': 4.1.6 '@smithy/types': 4.1.0 '@smithy/util-stream': 4.1.2 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/credential-provider-ini@3.758.0: @@ -536,7 +576,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -556,7 +596,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -570,7 +610,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/credential-provider-sso@3.758.0: @@ -584,7 +624,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -598,7 +638,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -613,7 +653,7 @@ packages: '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 '@smithy/util-config-provider': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-expect-continue@3.734.0: @@ -623,7 +663,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-flexible-checksums@3.758.0: @@ -642,7 +682,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-stream': 4.1.2 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-host-header@3.734.0: @@ -652,7 +692,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-location-constraint@3.734.0: @@ -661,7 +701,7 @@ packages: dependencies: '@aws-sdk/types': 3.734.0 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-logger@3.734.0: @@ -670,7 +710,7 @@ packages: dependencies: '@aws-sdk/types': 3.734.0 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-recursion-detection@3.734.0: @@ -680,7 +720,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-sdk-s3@3.758.0: @@ -700,7 +740,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-stream': 4.1.2 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-ssec@3.734.0: @@ -709,7 +749,7 @@ packages: dependencies: '@aws-sdk/types': 3.734.0 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/middleware-user-agent@3.758.0: @@ -722,7 +762,7 @@ packages: '@smithy/core': 3.1.5 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/nested-clients@3.758.0: @@ -766,7 +806,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -780,7 +820,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/util-config-provider': 4.0.0 '@smithy/util-middleware': 4.0.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/s3-request-presigner@3.758.0: @@ -806,7 +846,7 @@ packages: '@smithy/protocol-http': 5.0.1 '@smithy/signature-v4': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/token-providers@3.758.0: @@ -818,7 +858,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - aws-crt dev: false @@ -828,14 +868,14 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-arn-parser@3.723.0: resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-endpoints@3.743.0: @@ -845,7 +885,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/types': 4.1.0 '@smithy/util-endpoints': 3.0.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-format-url@3.734.0: @@ -855,14 +895,14 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/querystring-builder': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-locate-window@3.723.0: resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-user-agent-browser@3.734.0: @@ -871,7 +911,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/types': 4.1.0 bowser: 2.11.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/util-user-agent-node@3.758.0: @@ -887,7 +927,7 @@ packages: '@aws-sdk/types': 3.734.0 '@smithy/node-config-provider': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@aws-sdk/xml-builder@3.734.0: @@ -895,9 +935,55 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false + /@babel/code-frame@7.26.2: + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: true + + /@babel/generator@7.27.0: + resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + dev: true + + /@babel/helper-string-parser@7.25.9: + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.25.9: + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.24.5: + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.27.0 + dev: true + + /@babel/parser@7.27.0: + resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.27.0 + dev: true + /@babel/runtime@7.24.5: resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} engines: {node: '>=6.9.0'} @@ -905,6 +991,38 @@ packages: regenerator-runtime: 0.14.1 dev: false + /@babel/template@7.27.0: + resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + dev: true + + /@babel/traverse@7.25.6: + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.27.0: + resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + dev: true + /@clerk/backend@1.25.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-nnBpr7oSq5iATWRExuljEfp7xa90KE1OUgaGCSmtZYF0T9TWHGkZHYqkQhD4XjiqlR2XsrsQ/UzPfmHM1Km7+Q==} engines: {node: '>=18.17.0'} @@ -1217,7 +1335,6 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true - dev: false optional: true /@esbuild/android-arm64@0.18.20: @@ -1251,7 +1368,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-arm@0.15.18: @@ -1294,7 +1410,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-x64@0.18.20: @@ -1328,7 +1443,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/darwin-arm64@0.18.20: @@ -1362,7 +1476,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/darwin-x64@0.18.20: @@ -1396,7 +1509,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-arm64@0.18.20: @@ -1430,7 +1542,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-x64@0.18.20: @@ -1464,7 +1575,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm64@0.18.20: @@ -1498,7 +1608,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm@0.18.20: @@ -1532,7 +1641,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ia32@0.18.20: @@ -1566,7 +1674,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-loong64@0.15.18: @@ -1609,7 +1716,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-mips64el@0.18.20: @@ -1643,7 +1749,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ppc64@0.18.20: @@ -1677,7 +1782,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-riscv64@0.18.20: @@ -1711,7 +1815,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-s390x@0.18.20: @@ -1745,7 +1848,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-x64@0.18.20: @@ -1779,7 +1881,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/netbsd-arm64@0.24.2: @@ -1797,7 +1898,6 @@ packages: cpu: [arm64] os: [netbsd] requiresBuild: true - dev: false optional: true /@esbuild/netbsd-x64@0.18.20: @@ -1831,7 +1931,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: false optional: true /@esbuild/openbsd-arm64@0.24.2: @@ -1849,7 +1948,6 @@ packages: cpu: [arm64] os: [openbsd] requiresBuild: true - dev: false optional: true /@esbuild/openbsd-x64@0.18.20: @@ -1883,7 +1981,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /@esbuild/sunos-x64@0.18.20: @@ -1917,7 +2014,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: false optional: true /@esbuild/win32-arm64@0.18.20: @@ -1951,7 +2047,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-ia32@0.18.20: @@ -1985,7 +2080,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-x64@0.18.20: @@ -2019,7 +2113,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@fastify/busboy@2.1.1: @@ -2059,13 +2152,13 @@ packages: resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} dependencies: '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@formatjs/fast-memoize@2.2.0: resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@formatjs/icu-messageformat-parser@2.7.8: @@ -2073,20 +2166,20 @@ packages: dependencies: '@formatjs/ecma402-abstract': 2.0.0 '@formatjs/icu-skeleton-parser': 1.8.2 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@formatjs/icu-skeleton-parser@1.8.2: resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} dependencies: '@formatjs/ecma402-abstract': 2.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@formatjs/intl-localematcher@0.5.4: resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@hookform/resolvers@3.3.4(react-hook-form@7.51.3): @@ -2328,6 +2421,15 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 + /@jridgewell/gen-mapping@0.3.8: + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} @@ -2336,6 +2438,11 @@ packages: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -2345,6 +2452,13 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: @@ -2485,6 +2599,10 @@ packages: resolution: {integrity: sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w==} dev: false + /@next/env@15.2.3: + resolution: {integrity: sha512-a26KnbW9DFEUsSxAxKBORR/uD9THoYoKbkpFywMN/AFvboTt94b8+g/07T8J6ACsdLag8/PDU60ov4rPxRAixw==} + dev: true + /@next/swc-darwin-arm64@14.2.25: resolution: {integrity: sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ==} engines: {node: '>= 10'} @@ -2494,6 +2612,15 @@ packages: dev: false optional: true + /@next/swc-darwin-arm64@15.2.3: + resolution: {integrity: sha512-uaBhA8aLbXLqwjnsHSkxs353WrRgQgiFjduDpc7YXEU0B54IKx3vU+cxQlYwPCyC8uYEEX7THhtQQsfHnvv8dw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@next/swc-darwin-x64@14.2.25: resolution: {integrity: sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug==} engines: {node: '>= 10'} @@ -2503,6 +2630,15 @@ packages: dev: false optional: true + /@next/swc-darwin-x64@15.2.3: + resolution: {integrity: sha512-pVwKvJ4Zk7h+4hwhqOUuMx7Ib02u3gDX3HXPKIShBi9JlYllI0nU6TWLbPT94dt7FSi6mSBhfc2JrHViwqbOdw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@next/swc-linux-arm64-gnu@14.2.25: resolution: {integrity: sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg==} engines: {node: '>= 10'} @@ -2512,6 +2648,15 @@ packages: dev: false optional: true + /@next/swc-linux-arm64-gnu@15.2.3: + resolution: {integrity: sha512-50ibWdn2RuFFkOEUmo9NCcQbbV9ViQOrUfG48zHBCONciHjaUKtHcYFiCwBVuzD08fzvzkWuuZkd4AqbvKO7UQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@next/swc-linux-arm64-musl@14.2.25: resolution: {integrity: sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw==} engines: {node: '>= 10'} @@ -2521,6 +2666,15 @@ packages: dev: false optional: true + /@next/swc-linux-arm64-musl@15.2.3: + resolution: {integrity: sha512-2gAPA7P652D3HzR4cLyAuVYwYqjG0mt/3pHSWTCyKZq/N/dJcUAEoNQMyUmwTZWCJRKofB+JPuDVP2aD8w2J6Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@next/swc-linux-x64-gnu@14.2.25: resolution: {integrity: sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w==} engines: {node: '>= 10'} @@ -2530,6 +2684,15 @@ packages: dev: false optional: true + /@next/swc-linux-x64-gnu@15.2.3: + resolution: {integrity: sha512-ODSKvrdMgAJOVU4qElflYy1KSZRM3M45JVbeZu42TINCMG3anp7YCBn80RkISV6bhzKwcUqLBAmOiWkaGtBA9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@next/swc-linux-x64-musl@14.2.25: resolution: {integrity: sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w==} engines: {node: '>= 10'} @@ -2539,6 +2702,15 @@ packages: dev: false optional: true + /@next/swc-linux-x64-musl@15.2.3: + resolution: {integrity: sha512-ZR9kLwCWrlYxwEoytqPi1jhPd1TlsSJWAc+H/CJHmHkf2nD92MQpSRIURR1iNgA/kuFSdxB8xIPt4p/T78kwsg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@next/swc-win32-arm64-msvc@14.2.25: resolution: {integrity: sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ==} engines: {node: '>= 10'} @@ -2548,6 +2720,15 @@ packages: dev: false optional: true + /@next/swc-win32-arm64-msvc@15.2.3: + resolution: {integrity: sha512-+G2FrDcfm2YDbhDiObDU/qPriWeiz/9cRR0yMWJeTLGGX6/x8oryO3tt7HhodA1vZ8r2ddJPCjtLcpaVl7TE2Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@next/swc-win32-ia32-msvc@14.2.25: resolution: {integrity: sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==} engines: {node: '>= 10'} @@ -2566,6 +2747,15 @@ packages: dev: false optional: true + /@next/swc-win32-x64-msvc@15.2.3: + resolution: {integrity: sha512-gHYS9tc+G2W0ZC8rBL+H6RdtXIyk40uLiaos0yj5US85FNhbFEndMA2nW3z47nzOWiSvXTZ5kBClc3rD0zJg0w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2593,6 +2783,12 @@ packages: requiresBuild: true optional: true + /@plunk/node@3.0.3: + resolution: {integrity: sha512-f3NT418/EdLjebQ4arAwR64cnz7d5H7i1CeKh8+B0cVBrwzHvF+Q+QkhutF+FAp49yuI/BYc71qQH+RFc2fxxQ==} + dependencies: + tslib: 2.8.1 + dev: false + /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: @@ -4644,16 +4840,232 @@ packages: react: 18.2.0 dev: false - /@react-stately/calendar@3.5.1(react@18.2.0): - resolution: {integrity: sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA==} + /@react-email/body@0.0.11(react@18.2.0): + resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react: ^18.0 || ^19.0 || ^19.0.0-rc dependencies: - '@internationalized/date': 3.5.4 - '@react-stately/utils': 3.10.1(react@18.2.0) - '@react-types/calendar': 3.4.6(react@18.2.0) - '@react-types/shared': 3.23.1(react@18.2.0) - '@swc/helpers': 0.5.2 + react: 18.2.0 + dev: false + + /@react-email/button@0.0.19(react@18.2.0): + resolution: {integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/code-block@0.0.12(react@18.2.0): + resolution: {integrity: sha512-Faw3Ij9+/Qwq6moWaeHnV8Hn7ekc/EqyAzPi6yUar21dhcqYugCC4Da1x4d9nA9zC0H9KU3lYVJczh8D3cA+Eg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + prismjs: 1.30.0 + react: 18.2.0 + dev: false + + /@react-email/code-inline@0.0.5(react@18.2.0): + resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/column@0.0.13(react@18.2.0): + resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/components@0.0.36(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VMh+OQplAnG8JMLlJjdnjt+ThJZ+JVkp0q2YMS2NEz+T88N22bLD2p7DZO0QgtNaKgumOhJI/0a2Q7VzCrwu5g==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + '@react-email/body': 0.0.11(react@18.2.0) + '@react-email/button': 0.0.19(react@18.2.0) + '@react-email/code-block': 0.0.12(react@18.2.0) + '@react-email/code-inline': 0.0.5(react@18.2.0) + '@react-email/column': 0.0.13(react@18.2.0) + '@react-email/container': 0.0.15(react@18.2.0) + '@react-email/font': 0.0.9(react@18.2.0) + '@react-email/head': 0.0.12(react@18.2.0) + '@react-email/heading': 0.0.15(react@18.2.0) + '@react-email/hr': 0.0.11(react@18.2.0) + '@react-email/html': 0.0.11(react@18.2.0) + '@react-email/img': 0.0.11(react@18.2.0) + '@react-email/link': 0.0.12(react@18.2.0) + '@react-email/markdown': 0.0.14(react@18.2.0) + '@react-email/preview': 0.0.12(react@18.2.0) + '@react-email/render': 1.0.6(react-dom@18.2.0)(react@18.2.0) + '@react-email/row': 0.0.12(react@18.2.0) + '@react-email/section': 0.0.16(react@18.2.0) + '@react-email/tailwind': 1.0.4(react@18.2.0) + '@react-email/text': 0.1.1(react@18.2.0) + react: 18.2.0 + transitivePeerDependencies: + - react-dom + dev: false + + /@react-email/container@0.0.15(react@18.2.0): + resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/font@0.0.9(react@18.2.0): + resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/head@0.0.12(react@18.2.0): + resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/heading@0.0.15(react@18.2.0): + resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/hr@0.0.11(react@18.2.0): + resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/html@0.0.11(react@18.2.0): + resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/img@0.0.11(react@18.2.0): + resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/link@0.0.12(react@18.2.0): + resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/markdown@0.0.14(react@18.2.0): + resolution: {integrity: sha512-5IsobCyPkb4XwnQO8uFfGcNOxnsg3311GRXhJ3uKv51P7Jxme4ycC/MITnwIZ10w2zx7HIyTiqVzTj4XbuIHbg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + md-to-react-email: 5.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-email/preview@0.0.12(react@18.2.0): + resolution: {integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/render@1.0.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-zNueW5Wn/4jNC1c5LFgXzbUdv5Lhms+FWjOvWAhal7gx5YVf0q6dPJ0dnR70+ifo59gcMLwCZEaTS9EEuUhKvQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + html-to-text: 9.0.5 + prettier: 3.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-promise-suspense: 0.3.4 + dev: false + + /@react-email/row@0.0.12(react@18.2.0): + resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/section@0.0.16(react@18.2.0): + resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/tailwind@1.0.4(react@18.2.0): + resolution: {integrity: sha512-tJdcusncdqgvTUYZIuhNC6LYTfL9vNTSQpwWdTCQhQ1lsrNCEE4OKCSdzSV3S9F32pi0i0xQ+YPJHKIzGjdTSA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-email/text@0.1.1(react@18.2.0): + resolution: {integrity: sha512-Zo9tSEzkO3fODLVH1yVhzVCiwETfeEL5wU93jXKWo2DHoMuiZ9Iabaso3T0D0UjhrCB1PBMeq2YiejqeToTyIQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + dependencies: + react: 18.2.0 + dev: false + + /@react-stately/calendar@3.5.1(react@18.2.0): + resolution: {integrity: sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.4 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/calendar': 3.4.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.2 react: 18.2.0 dev: false @@ -5206,6 +5618,13 @@ packages: picomatch: 4.0.2 dev: true + /@selderee/plugin-htmlparser2@0.11.0: + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + dev: false + /@sinclair/typebox@0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} dev: true @@ -5215,7 +5634,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/chunked-blob-reader-native@4.0.0: @@ -5223,14 +5642,14 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/util-base64': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/chunked-blob-reader@5.0.0: resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/config-resolver@4.0.1: @@ -5241,7 +5660,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/util-config-provider': 4.0.0 '@smithy/util-middleware': 4.0.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/core@3.1.5: @@ -5255,7 +5674,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-stream': 4.1.2 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/credential-provider-imds@4.0.1: @@ -5266,7 +5685,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/types': 4.1.0 '@smithy/url-parser': 4.0.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/eventstream-codec@4.0.1: @@ -5276,7 +5695,7 @@ packages: '@aws-crypto/crc32': 5.2.0 '@smithy/types': 4.1.0 '@smithy/util-hex-encoding': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/eventstream-serde-browser@4.0.1: @@ -5285,7 +5704,7 @@ packages: dependencies: '@smithy/eventstream-serde-universal': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/eventstream-serde-config-resolver@4.0.1: @@ -5293,7 +5712,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/eventstream-serde-node@4.0.1: @@ -5302,7 +5721,7 @@ packages: dependencies: '@smithy/eventstream-serde-universal': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/eventstream-serde-universal@4.0.1: @@ -5311,7 +5730,7 @@ packages: dependencies: '@smithy/eventstream-codec': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/fetch-http-handler@5.0.1: @@ -5322,7 +5741,7 @@ packages: '@smithy/querystring-builder': 4.0.1 '@smithy/types': 4.1.0 '@smithy/util-base64': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/hash-blob-browser@4.0.1: @@ -5332,7 +5751,7 @@ packages: '@smithy/chunked-blob-reader': 5.0.0 '@smithy/chunked-blob-reader-native': 4.0.0 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/hash-node@4.0.1: @@ -5342,7 +5761,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/hash-stream-node@4.0.1: @@ -5351,7 +5770,7 @@ packages: dependencies: '@smithy/types': 4.1.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/invalid-dependency@4.0.1: @@ -5359,21 +5778,21 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/is-array-buffer@2.2.0: resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/is-array-buffer@4.0.0: resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/md5-js@4.0.1: @@ -5382,7 +5801,7 @@ packages: dependencies: '@smithy/types': 4.1.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/middleware-content-length@4.0.1: @@ -5391,7 +5810,7 @@ packages: dependencies: '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/middleware-endpoint@4.0.6: @@ -5405,7 +5824,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/url-parser': 4.0.1 '@smithy/util-middleware': 4.0.1 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/middleware-retry@4.0.7: @@ -5419,7 +5838,7 @@ packages: '@smithy/types': 4.1.0 '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 - tslib: 2.6.2 + tslib: 2.8.1 uuid: 9.0.1 dev: false @@ -5428,7 +5847,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/middleware-stack@4.0.1: @@ -5436,7 +5855,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/node-config-provider@4.0.1: @@ -5446,7 +5865,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/node-http-handler@4.0.3: @@ -5457,7 +5876,7 @@ packages: '@smithy/protocol-http': 5.0.1 '@smithy/querystring-builder': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/property-provider@4.0.1: @@ -5465,7 +5884,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/protocol-http@5.0.1: @@ -5473,7 +5892,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/querystring-builder@4.0.1: @@ -5482,7 +5901,7 @@ packages: dependencies: '@smithy/types': 4.1.0 '@smithy/util-uri-escape': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/querystring-parser@4.0.1: @@ -5490,7 +5909,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/service-error-classification@4.0.1: @@ -5505,7 +5924,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/signature-v4@5.0.1: @@ -5519,7 +5938,7 @@ packages: '@smithy/util-middleware': 4.0.1 '@smithy/util-uri-escape': 4.0.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/smithy-client@4.1.6: @@ -5532,14 +5951,14 @@ packages: '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 '@smithy/util-stream': 4.1.2 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/types@4.1.0: resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/url-parser@4.0.1: @@ -5548,7 +5967,7 @@ packages: dependencies: '@smithy/querystring-parser': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-base64@4.0.0: @@ -5557,21 +5976,21 @@ packages: dependencies: '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-body-length-browser@4.0.0: resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-body-length-node@4.0.0: resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-buffer-from@2.2.0: @@ -5579,7 +5998,7 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@smithy/is-array-buffer': 2.2.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-buffer-from@4.0.0: @@ -5587,14 +6006,14 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/is-array-buffer': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-config-provider@4.0.0: resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-defaults-mode-browser@4.0.7: @@ -5605,7 +6024,7 @@ packages: '@smithy/smithy-client': 4.1.6 '@smithy/types': 4.1.0 bowser: 2.11.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-defaults-mode-node@4.0.7: @@ -5618,7 +6037,7 @@ packages: '@smithy/property-provider': 4.0.1 '@smithy/smithy-client': 4.1.6 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-endpoints@3.0.1: @@ -5627,14 +6046,14 @@ packages: dependencies: '@smithy/node-config-provider': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-hex-encoding@4.0.0: resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-middleware@4.0.1: @@ -5642,7 +6061,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-retry@4.0.1: @@ -5651,7 +6070,7 @@ packages: dependencies: '@smithy/service-error-classification': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-stream@4.1.2: @@ -5665,14 +6084,14 @@ packages: '@smithy/util-buffer-from': 4.0.0 '@smithy/util-hex-encoding': 4.0.0 '@smithy/util-utf8': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-uri-escape@4.0.0: resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-utf8@2.3.0: @@ -5680,7 +6099,7 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@smithy/util-buffer-from': 2.2.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-utf8@4.0.0: @@ -5688,7 +6107,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@smithy/util-buffer-from': 4.0.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@smithy/util-waiter@4.0.2: @@ -5697,9 +6116,13 @@ packages: dependencies: '@smithy/abort-controller': 4.0.1 '@smithy/types': 4.1.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false + /@socket.io/component-emitter@3.1.2: + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + dev: true + /@statelyai/inspect@0.1.0(ws@8.18.1): resolution: {integrity: sha512-wM9Zlll52GC6klt5PWAGqwj1zznbFciJkwHx8GZLrGiAstlnMTDBSrsiDfrvX2ejAsI5O1ysQrXFup0E2nYS8A==} dependencies: @@ -5712,19 +6135,24 @@ packages: /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: false + + /@swc/helpers@0.5.15: + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + dependencies: + tslib: 2.8.1 + dev: true /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@swc/helpers@0.5.5: resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /@t3-oss/env-core@0.10.1(typescript@5.3.3)(zod@3.23.8): @@ -5816,6 +6244,12 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 20.11.24 + dev: true + /@types/d3-array@3.2.1: resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} dev: false @@ -5896,7 +6330,7 @@ packages: dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 - csstype: 3.1.2 + csstype: 3.1.3 /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} @@ -6121,6 +6555,14 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} dev: true + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + /acorn-import-attributes@1.9.5(acorn@8.14.0): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -6208,7 +6650,7 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: false /as-table@1.0.55: @@ -6221,7 +6663,7 @@ packages: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} dependencies: - tslib: 2.6.2 + tslib: 2.8.1 dev: true /async-listen@1.2.0: @@ -6261,6 +6703,15 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + dev: true + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -6271,6 +6722,14 @@ packages: file-uri-to-path: 1.0.0 dev: true + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} dev: true @@ -6315,6 +6774,13 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /bufferutil@4.0.9: resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} @@ -6332,7 +6798,6 @@ packages: engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 - dev: false /bytes@3.1.0: resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} @@ -6353,6 +6818,14 @@ packages: /caniuse-lite@1.0.30001593: resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk@5.4.1: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -6379,6 +6852,13 @@ packages: readdirp: 4.1.2 dev: true + /chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + dependencies: + readdirp: 4.1.2 + dev: true + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -6399,9 +6879,25 @@ packages: clsx: 2.0.0 dev: false + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true /clsx@2.0.0: resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} @@ -6497,11 +6993,24 @@ packages: engines: {node: '>= 0.6'} dev: true + /cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + dev: true + /cookie@1.0.2: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} dev: false + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -6519,12 +7028,8 @@ packages: engines: {node: '>=4'} hasBin: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - dev: false /d3-array@3.2.4: resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} @@ -6622,6 +7127,11 @@ packages: resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} dev: false + /debounce@2.0.0: + resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==} + engines: {node: '>=18'} + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -6654,6 +7164,17 @@ packages: engines: {node: '>=0.10'} dev: false + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + /defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: true @@ -6691,14 +7212,41 @@ packages: engines: {node: '>=0.3.1'} dev: true - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.24.5 + csstype: 3.1.3 + dev: false + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: false + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: false - /dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dependencies: - '@babel/runtime': 7.24.5 - csstype: 3.1.2 + domelementtype: 2.3.0 + dev: false + + /domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 dev: false /dot-case@3.0.4: @@ -6881,6 +7429,35 @@ packages: once: 1.3.3 dev: true + /engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + dev: true + + /engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} + dependencies: + '@types/cors': 2.8.17 + '@types/node': 20.11.24 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.4 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + /env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7451,7 +8028,6 @@ packages: '@esbuild/win32-arm64': 0.25.0 '@esbuild/win32-ia32': 0.25.0 '@esbuild/win32-x64': 0.25.0 - dev: false /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -7484,6 +8060,10 @@ packages: resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} dev: true + /fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + dev: false + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -7654,6 +8234,18 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 + /glob@10.3.4: + resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.1.2 + path-scurry: 1.10.1 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -7666,15 +8258,45 @@ packages: path-is-absolute: 1.0.1 dev: true + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + /html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + dev: false + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + dev: false + /http-errors@1.4.0: resolution: {integrity: sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==} engines: {node: '>= 0.6'} @@ -7711,6 +8333,10 @@ packages: safer-buffer: 2.1.2 dev: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -7738,7 +8364,7 @@ packages: '@formatjs/ecma402-abstract': 2.0.0 '@formatjs/fast-memoize': 2.2.0 '@formatjs/icu-messageformat-parser': 2.7.8 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /invariant@2.2.4: @@ -7778,10 +8404,20 @@ packages: dependencies: is-extglob: 2.1.1 + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true @@ -7828,7 +8464,6 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -7837,6 +8472,12 @@ packages: argparse: 2.0.1 dev: true + /jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + dev: true + /json-schema-to-ts@1.6.4: resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==} dependencies: @@ -7856,6 +8497,10 @@ packages: graceful-fs: 4.2.11 dev: true + /leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + dev: false + /libsql@0.4.7: resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} cpu: [x64, arm64, wasm32] @@ -7884,12 +8529,19 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - dev: false /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -7925,6 +8577,21 @@ packages: engines: {node: '>=8'} dev: false + /marked@7.0.4: + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} + engines: {node: '>= 16'} + hasBin: true + dev: false + + /md-to-react-email@5.0.5(react@18.2.0): + resolution: {integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==} + peerDependencies: + react: ^18.0 || ^19.0 + dependencies: + marked: 7.0.4 + react: 18.2.0 + dev: false + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -7946,12 +8613,29 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true dev: true + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + /miniflare@3.20250310.0: resolution: {integrity: sha512-TQAxoo2ZiQYjiOJoK3bbcyjKD/u1E3akYOeSHc2Zcp1sLVydrgzSjmxtrn65/3BfDIrUgfYHyy9wspT6wzBy/A==} engines: {node: '>=16.13'} @@ -8029,7 +8713,6 @@ packages: /minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -8098,6 +8781,11 @@ packages: hasBin: true dev: false + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + /next-safe-action@7.10.2(next@14.2.25)(react-dom@18.2.0)(react@18.2.0)(zod@3.23.8): resolution: {integrity: sha512-Tpho8EolopnbJFYNuRuA1sXvUxndGuWhk17HbrPl701uuNOA+fs9zQx4vWCjkGWRvfZap67HqKOBueX7/x2Tug==} engines: {node: '>=18.17'} @@ -8177,6 +8865,51 @@ packages: - babel-plugin-macros dev: false + /next@15.2.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-x6eDkZxk2rPpu46E1ZVUWIBhYCLszmUY6fvHBFcbzJ9dD+qRX6vcHusaqqDlnY+VngKzKbAiG2iRCkPbmi8f7w==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + 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 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + dependencies: + '@next/env': 15.2.3 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001593 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.6(react@18.2.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.2.3 + '@next/swc-darwin-x64': 15.2.3 + '@next/swc-linux-arm64-gnu': 15.2.3 + '@next/swc-linux-arm64-musl': 15.2.3 + '@next/swc-linux-x64-gnu': 15.2.3 + '@next/swc-linux-x64-musl': 15.2.3 + '@next/swc-win32-arm64-msvc': 15.2.3 + '@next/swc-win32-x64-msvc': 15.2.3 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: true + /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: @@ -8291,6 +9024,28 @@ packages: wrappy: 1.0.2 dev: true + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + /os-paths@4.4.0: resolution: {integrity: sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==} engines: {node: '>= 6.0'} @@ -8308,6 +9063,13 @@ packages: engines: {node: '>=6'} dev: true + /parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + dev: false + /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true @@ -8336,7 +9098,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 - minipass: 7.0.4 + minipass: 7.1.2 /path-to-regexp@1.9.0: resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} @@ -8360,6 +9122,10 @@ packages: resolution: {integrity: sha512-KF9XxmUQJ2DIlMj3TqNqY1AWvyvTuIuq11CuuekxyaYMiFuMKGgQrePYMX5bXKLhLG3sDI4CsGAYHPaT7VV7+g==} dev: true + /peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + dev: false + /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true @@ -8560,6 +9326,12 @@ packages: engines: {node: '>=14'} dev: true + /prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + dev: false + /pretty-ms@7.0.1: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} @@ -8571,6 +9343,11 @@ packages: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} dev: true + /prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + dev: false + /promise-limit@2.7.0: resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} dev: false @@ -8698,7 +9475,39 @@ packages: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - dev: false + + /react-email@4.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-W+fdztx6qafK5xCYhKg1R/F0mQJHd+ubYTBk9FJMOqoEcgn7n/myPbPSKDWuGt/hYrvurCHs4DBNhj47sgecGA==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + '@babel/parser': 7.24.5 + '@babel/traverse': 7.25.6 + chalk: 4.1.2 + chokidar: 4.0.3 + commander: 11.1.0 + debounce: 2.0.0 + esbuild: 0.25.0 + glob: 10.3.4 + log-symbols: 4.1.0 + mime-types: 2.1.35 + next: 15.2.3(react-dom@18.2.0)(react@18.2.0) + normalize-path: 3.0.0 + ora: 5.4.1 + socket.io: 4.8.1 + transitivePeerDependencies: + - '@babel/core' + - '@opentelemetry/api' + - '@playwright/test' + - babel-plugin-macros + - babel-plugin-react-compiler + - bufferutil + - react + - react-dom + - sass + - supports-color + - utf-8-validate + dev: true /react-hook-form@7.51.3(react@18.2.0): resolution: {integrity: sha512-cvJ/wbHdhYx8aviSWh28w9ImjmVsb5Y05n1+FW786vEZQJV5STNM0pW6ujS+oiBecb0ARBxJFyAnXj9+GHXACQ==} @@ -8713,6 +9522,12 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: false + /react-promise-suspense@0.3.4: + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + dependencies: + fast-deep-equal: 2.0.1 + dev: false + /react-qr-code@2.0.15(react@18.2.0): resolution: {integrity: sha512-MkZcjEXqVKqXEIMVE0mbcGgDpkfSdd8zhuzXEl9QzYeNcw8Hq2oVIzDLWuZN2PQBwM5PWjc2S31K8Q1UbcFMfw==} peerDependencies: @@ -8736,7 +9551,7 @@ packages: '@types/react': 18.2.61 react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.61)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.8.1 dev: false /react-remove-scroll@2.5.5(@types/react@18.2.61)(react@18.2.0): @@ -8753,7 +9568,7 @@ packages: react: 18.2.0 react-remove-scroll-bar: 2.3.6(@types/react@18.2.61)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.61)(react@18.2.0) - tslib: 2.6.2 + tslib: 2.8.1 use-callback-ref: 1.3.2(@types/react@18.2.61)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.61)(react@18.2.0) dev: false @@ -8816,7 +9631,7 @@ packages: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): @@ -8838,13 +9653,21 @@ packages: engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - dev: false /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -8914,6 +9737,14 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -8930,6 +9761,10 @@ packages: dependencies: queue-microtask: 1.2.3 + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -8938,6 +9773,11 @@ packages: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 + + /selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + dependencies: + parseley: 0.12.1 dev: false /semver@6.3.1: @@ -9017,6 +9857,10 @@ packages: reghex: 1.0.2 dev: true + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /signal-exit@4.0.2: resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} @@ -9050,6 +9894,44 @@ packages: type-fest: 4.38.0 dev: false + /socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + dependencies: + debug: 4.3.4 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + engines: {node: '>=10.2.0'} + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.4 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /sonner@1.4.41(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==} peerDependencies: @@ -9121,7 +10003,6 @@ packages: /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - dev: false /strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} @@ -9144,6 +10025,12 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -9177,6 +10064,23 @@ packages: react: 18.2.0 dev: false + /styled-jsx@5.1.6(react@18.2.0): + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: true + /sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -9190,6 +10094,13 @@ packages: pirates: 4.0.6 ts-interface-checker: 0.1.13 + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -9369,6 +10280,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -9523,7 +10435,7 @@ packages: dependencies: '@types/react': 18.2.61 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /use-debounce@10.0.1(react@18.2.0): @@ -9561,7 +10473,7 @@ packages: '@types/react': 18.2.61 detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.6.2 + tslib: 2.8.1 dev: false /use-sync-external-store@1.2.0(react@18.2.0): @@ -9598,6 +10510,11 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + /vercel@41.4.1: resolution: {integrity: sha512-o7zsdAuFls+gMotvzoXFIe6pdsxsWmkdeQx7sAw4qbNgmDe80e0/C8hLEUs3wLO8NRI5E1AlwS2MM8vYs+ljOg==} engines: {node: '>= 18'} @@ -9643,6 +10560,12 @@ packages: d3-timer: 3.0.1 dev: false + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + /web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -9737,6 +10660,19 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'}