diff --git a/.configs/tsconfig.base.json b/.configs/tsconfig.base.json
new file mode 100644
index 0000000..17ba5e4
--- /dev/null
+++ b/.configs/tsconfig.base.json
@@ -0,0 +1,35 @@
+{
+ "compilerOptions": {
+ "target": "es2022",
+ "lib": ["ES2022", "DOM", "DOM.Iterable", "DOM.AsyncIterable"],
+ "module": "NodeNext",
+ "moduleResolution": "NodeNext",
+ "moduleDetection": "force",
+ "verbatimModuleSyntax": false,
+ "jsx": "react",
+
+ "strict": true,
+ "alwaysStrict": true,
+ "strictPropertyInitialization": false,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "noImplicitAny": true,
+ "noImplicitReturns": true,
+ "noImplicitThis": true,
+
+ "noFallthroughCasesInSwitch": true,
+ "resolveJsonModule": true,
+
+ "removeComments": false,
+ "esModuleInterop": true,
+ "emitDecoratorMetadata": false,
+ "experimentalDecorators": false,
+ "downlevelIteration": true,
+ "isolatedModules": true,
+ "noUncheckedIndexedAccess": true,
+
+ "pretty": true
+ }
+}
diff --git a/apps/webapp/app/components/graph/graph-visualization.tsx b/apps/webapp/app/components/graph/graph-visualization.tsx
index f25a5d0..e77e7c8 100644
--- a/apps/webapp/app/components/graph/graph-visualization.tsx
+++ b/apps/webapp/app/components/graph/graph-visualization.tsx
@@ -5,7 +5,7 @@ import { Graph, type GraphRef } from "./graph";
import { GraphPopovers } from "./graph-popover";
import type { RawTriplet, NodePopupContent, EdgePopupContent } from "./type";
-import { createLabelColorMap, getNodeColor } from "./node-colors";
+import { createLabelColorMap } from "./node-colors";
import { useTheme } from "remix-themes";
import { toGraphTriplets } from "./utils";
diff --git a/apps/webapp/app/components/ui/FormButtons.tsx b/apps/webapp/app/components/ui/FormButtons.tsx
new file mode 100644
index 0000000..40486f7
--- /dev/null
+++ b/apps/webapp/app/components/ui/FormButtons.tsx
@@ -0,0 +1,22 @@
+import { cn } from "~/lib/utils";
+
+export function FormButtons({
+ cancelButton,
+ confirmButton,
+ className,
+}: {
+ cancelButton?: React.ReactNode;
+ confirmButton: React.ReactNode;
+ className?: string;
+}) {
+ return (
+
+ {cancelButton ? cancelButton :
} {confirmButton}
+
+ );
+}
diff --git a/apps/webapp/app/components/ui/Icon.tsx b/apps/webapp/app/components/ui/Icon.tsx
new file mode 100644
index 0000000..0f0c049
--- /dev/null
+++ b/apps/webapp/app/components/ui/Icon.tsx
@@ -0,0 +1,55 @@
+import React, { type FunctionComponent, createElement } from "react";
+import { cn } from "~/lib/utils";
+
+export type RenderIcon =
+ | FunctionComponent<{ className?: string }>
+ | React.ReactNode;
+
+export type IconProps = {
+ icon?: RenderIcon;
+ className?: string;
+};
+
+/** Use this icon to either render a passed in React component, or a NamedIcon/CompanyIcon */
+export function Icon(props: IconProps) {
+ if (!props.icon) return null;
+
+ if (typeof props.icon === "function") {
+ const Icon = props.icon;
+ return ;
+ }
+
+ if (React.isValidElement(props.icon)) {
+ return <>{props.icon}>;
+ }
+
+ if (
+ props.icon &&
+ typeof props.icon === "object" &&
+ ("type" in props.icon || "$$typeof" in props.icon)
+ ) {
+ return createElement>(
+ props.icon as any,
+ { className: props.className } as any,
+ );
+ }
+
+ console.error("Invalid icon", props);
+ return null;
+}
+
+export function IconInBox({
+ boxClassName,
+ ...props
+}: IconProps & { boxClassName?: string }) {
+ return (
+
+
+
+ );
+}
diff --git a/apps/webapp/app/components/ui/TextLink.tsx b/apps/webapp/app/components/ui/TextLink.tsx
new file mode 100644
index 0000000..8b447c5
--- /dev/null
+++ b/apps/webapp/app/components/ui/TextLink.tsx
@@ -0,0 +1,57 @@
+import { Link } from "@remix-run/react";
+
+import { Icon, type RenderIcon } from "./Icon";
+import { cn } from "~/lib/utils";
+
+const variations = {
+ primary:
+ "text-indigo-500 transition hover:text-indigo-400 inline-flex gap-0.5 items-center group focus-visible:focus-custom",
+ secondary:
+ "text-text-dimmed transition hover:text-text-bright inline-flex gap-0.5 items-center group focus-visible:focus-custom",
+} as const;
+
+type TextLinkProps = {
+ href?: string;
+ to?: string;
+ className?: string;
+ trailingIcon?: RenderIcon;
+ trailingIconClassName?: string;
+ variant?: keyof typeof variations;
+ children: React.ReactNode;
+} & React.AnchorHTMLAttributes;
+
+export function TextLink({
+ href,
+ to,
+ children,
+ className,
+ trailingIcon,
+ trailingIconClassName,
+ variant = "primary",
+ ...props
+}: TextLinkProps) {
+ const classes = variations[variant];
+ return to ? (
+
+ {children}{" "}
+ {trailingIcon && (
+
+ )}
+
+ ) : href ? (
+
+ {children}{" "}
+ {trailingIcon && (
+
+ )}
+
+ ) : (
+ Need to define a path or href
+ );
+}
diff --git a/apps/webapp/app/components/ui/pagination.tsx b/apps/webapp/app/components/ui/pagination.tsx
index 1f89d73..7dd760e 100644
--- a/apps/webapp/app/components/ui/pagination.tsx
+++ b/apps/webapp/app/components/ui/pagination.tsx
@@ -1,12 +1,12 @@
-import * as React from "react"
+import * as React from "react";
import {
ChevronLeftIcon,
ChevronRightIcon,
MoreHorizontalIcon,
-} from "lucide-react"
+} from "lucide-react";
-import { cn } from "~/lib/utils"
-import { Button, buttonVariants } from "~/components/ui/button"
+import { cn } from "~/lib/utils";
+import { type Button, buttonVariants } from "~/components/ui/button";
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
return (
@@ -17,7 +17,7 @@ function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
className={cn("mx-auto flex w-full justify-center", className)}
{...props}
/>
- )
+ );
}
function PaginationContent({
@@ -30,17 +30,17 @@ function PaginationContent({
className={cn("flex flex-row items-center gap-1", className)}
{...props}
/>
- )
+ );
}
function PaginationItem({ ...props }: React.ComponentProps<"li">) {
- return
+ return ;
}
type PaginationLinkProps = {
- isActive?: boolean
+ isActive?: boolean;
} & Pick, "size"> &
- React.ComponentProps<"a">
+ React.ComponentProps<"a">;
function PaginationLink({
className,
@@ -58,11 +58,11 @@ function PaginationLink({
variant: isActive ? "outline" : "ghost",
size,
}),
- className
+ className,
)}
{...props}
/>
- )
+ );
}
function PaginationPrevious({
@@ -79,7 +79,7 @@ function PaginationPrevious({
Previous
- )
+ );
}
function PaginationNext({
@@ -96,7 +96,7 @@ function PaginationNext({
Next
- )
+ );
}
function PaginationEllipsis({
@@ -113,7 +113,7 @@ function PaginationEllipsis({
More pages
- )
+ );
}
export {
@@ -124,4 +124,4 @@ export {
PaginationPrevious,
PaginationNext,
PaginationEllipsis,
-}
+};
diff --git a/apps/webapp/app/components/ui/sidebar.tsx b/apps/webapp/app/components/ui/sidebar.tsx
index d4d62eb..914fc28 100644
--- a/apps/webapp/app/components/ui/sidebar.tsx
+++ b/apps/webapp/app/components/ui/sidebar.tsx
@@ -1,6 +1,6 @@
import * as React from "react";
import { Slot } from "@radix-ui/react-slot";
-import { cva, VariantProps } from "class-variance-authority";
+import { cva, type VariantProps } from "class-variance-authority";
import { PanelLeftIcon } from "lucide-react";
import { useIsMobile } from "~/hooks/use-mobile";
diff --git a/apps/webapp/app/env.server.ts b/apps/webapp/app/env.server.ts
index 34e839a..4c9d379 100644
--- a/apps/webapp/app/env.server.ts
+++ b/apps/webapp/app/env.server.ts
@@ -1,5 +1,6 @@
import { z } from "zod";
import { isValidDatabaseUrl } from "./utils/db";
+import { isValidRegex } from "./utils/regex";
const EnvironmentSchema = z.object({
NODE_ENV: z.union([
@@ -25,6 +26,15 @@ const EnvironmentSchema = z.object({
DATABASE_READ_REPLICA_URL: z.string().optional(),
SESSION_SECRET: z.string(),
ENCRYPTION_KEY: z.string(),
+ MAGIC_LINK_SECRET: z.string(),
+ WHITELISTED_EMAILS: z
+ .string()
+ .refine(isValidRegex, "WHITELISTED_EMAILS must be a valid regex.")
+ .optional(),
+ ADMIN_EMAILS: z
+ .string()
+ .refine(isValidRegex, "ADMIN_EMAILS must be a valid regex.")
+ .optional(),
APP_ENV: z.string().default(process.env.NODE_ENV),
LOGIN_ORIGIN: z.string().default("http://localhost:5173"),
@@ -47,6 +57,16 @@ const EnvironmentSchema = z.object({
//OpenAI
OPENAI_API_KEY: z.string(),
+
+ EMAIL_TRANSPORT: z.enum(["resend", "smtp", "aws-ses"]).optional(),
+ FROM_EMAIL: z.string().optional(),
+ REPLY_TO_EMAIL: z.string().optional(),
+ RESEND_API_KEY: z.string().optional(),
+ SMTP_HOST: z.string().optional(),
+ SMTP_PORT: z.coerce.number().optional(),
+ SMTP_SECURE: z.coerce.boolean().optional(),
+ SMTP_USER: z.string().optional(),
+ SMTP_PASSWORD: z.string().optional(),
});
export type Environment = z.infer;
diff --git a/apps/webapp/app/hooks/useWorkspace.ts b/apps/webapp/app/hooks/useWorkspace.ts
index fc63f39..b7d6c13 100644
--- a/apps/webapp/app/hooks/useWorkspace.ts
+++ b/apps/webapp/app/hooks/useWorkspace.ts
@@ -2,7 +2,7 @@ import { type Workspace } from "@core/database";
import { type UIMatch } from "@remix-run/react";
import { useTypedMatchesData } from "./useTypedMatchData";
-import { loader } from "~/routes/home";
+import { type loader } from "~/routes/home";
export function useOptionalWorkspace(
matches?: UIMatch[],
diff --git a/apps/webapp/app/models/user.server.ts b/apps/webapp/app/models/user.server.ts
index ca165d7..8273fa5 100644
--- a/apps/webapp/app/models/user.server.ts
+++ b/apps/webapp/app/models/user.server.ts
@@ -1,8 +1,14 @@
import type { Prisma, User } from "@core/database";
import type { GoogleProfile } from "@coji/remix-auth-google";
import { prisma } from "~/db.server";
+import { env } from "~/env.server";
export type { User } from "@core/database";
+type FindOrCreateMagicLink = {
+ authenticationMethod: "MAGIC_LINK";
+ email: string;
+};
+
type FindOrCreateGoogle = {
authenticationMethod: "GOOGLE";
email: User["email"];
@@ -10,7 +16,7 @@ type FindOrCreateGoogle = {
authenticationExtraParams: Record;
};
-type FindOrCreateUser = FindOrCreateGoogle;
+type FindOrCreateUser = FindOrCreateMagicLink | FindOrCreateGoogle;
type LoggedInUser = {
user: User;
@@ -20,7 +26,55 @@ type LoggedInUser = {
export async function findOrCreateUser(
input: FindOrCreateUser,
): Promise {
- return findOrCreateGoogleUser(input);
+ switch (input.authenticationMethod) {
+ case "GOOGLE": {
+ return findOrCreateGoogleUser(input);
+ }
+ case "MAGIC_LINK": {
+ return findOrCreateMagicLinkUser(input);
+ }
+ }
+}
+
+export async function findOrCreateMagicLinkUser(
+ input: FindOrCreateMagicLink,
+): Promise {
+ if (
+ env.WHITELISTED_EMAILS &&
+ !new RegExp(env.WHITELISTED_EMAILS).test(input.email)
+ ) {
+ throw new Error("This email is unauthorized");
+ }
+
+ const existingUser = await prisma.user.findFirst({
+ where: {
+ email: input.email,
+ },
+ });
+
+ const adminEmailRegex = env.ADMIN_EMAILS
+ ? new RegExp(env.ADMIN_EMAILS)
+ : undefined;
+ const makeAdmin = adminEmailRegex ? adminEmailRegex.test(input.email) : false;
+
+ const user = await prisma.user.upsert({
+ where: {
+ email: input.email,
+ },
+ update: {
+ email: input.email,
+ },
+ create: {
+ email: input.email,
+ authenticationMethod: "MAGIC_LINK",
+ admin: makeAdmin, // only on create, to prevent automatically removing existing admins
+ },
+ });
+
+ return {
+ user,
+ isNewUser: !existingUser,
+ };
}
export async function findOrCreateGoogleUser({
diff --git a/apps/webapp/app/routes/auth.google.tsx b/apps/webapp/app/routes/auth.google.tsx
index 86d9335..974cb59 100644
--- a/apps/webapp/app/routes/auth.google.tsx
+++ b/apps/webapp/app/routes/auth.google.tsx
@@ -1,9 +1,4 @@
-import {
- redirect,
- createCookie,
- type ActionFunction,
- type LoaderFunction,
-} from "@remix-run/node";
+import { createCookie, type LoaderFunction } from "@remix-run/node";
import { authenticator } from "~/services/auth.server";
export let loader: LoaderFunction = async ({ request }) => {
diff --git a/apps/webapp/app/routes/home.tsx b/apps/webapp/app/routes/home.tsx
index 4a45257..b5f9509 100644
--- a/apps/webapp/app/routes/home.tsx
+++ b/apps/webapp/app/routes/home.tsx
@@ -1,14 +1,7 @@
-import {
- type ActionFunctionArgs,
- type LoaderFunctionArgs,
-} from "@remix-run/server-runtime";
-import {
- requireUser,
- requireUserId,
- requireWorkpace,
-} from "~/services/session.server";
+import { type LoaderFunctionArgs } from "@remix-run/server-runtime";
+import { requireUser, requireWorkpace } from "~/services/session.server";
-import { Outlet, useActionData } from "@remix-run/react";
+import { Outlet } from "@remix-run/react";
import { typedjson } from "remix-typedjson";
import { clearRedirectTo, commitSession } from "~/services/redirectTo.server";
diff --git a/apps/webapp/app/routes/login.tsx b/apps/webapp/app/routes/login._index.tsx
similarity index 77%
rename from apps/webapp/app/routes/login.tsx
rename to apps/webapp/app/routes/login._index.tsx
index a622d57..7a10b64 100644
--- a/apps/webapp/app/routes/login.tsx
+++ b/apps/webapp/app/routes/login._index.tsx
@@ -8,6 +8,7 @@ import { setRedirectTo } from "~/services/redirectTo.server";
import { getUserId } from "~/services/session.server";
import { commitSession } from "~/services/sessionStorage.server";
import { requestUrl } from "~/utils/requestUrl.server";
+import { env } from "~/env.server";
import { RiGoogleLine } from "@remixicon/react";
import {
@@ -18,6 +19,7 @@ import {
CardTitle,
} from "~/components/ui/card";
import { Button } from "~/components/ui";
+import { Mail } from "lucide-react";
export async function loader({ request }: LoaderFunctionArgs) {
const userId = await getUserId(request);
@@ -30,7 +32,11 @@ export async function loader({ request }: LoaderFunctionArgs) {
const session = await setRedirectTo(request, redirectTo);
return typedjson(
- { redirectTo, showGoogleAuth: isGoogleAuthSupported },
+ {
+ redirectTo,
+ showGoogleAuth: isGoogleAuthSupported,
+ isDevelopment: env.NODE_ENV === "development",
+ },
{
headers: {
"Set-Cookie": await commitSession(session),
@@ -41,6 +47,7 @@ export async function loader({ request }: LoaderFunctionArgs) {
return typedjson({
redirectTo: null,
showGoogleAuth: isGoogleAuthSupported,
+ isDevelopment: env.NODE_ENV === "development",
});
}
}
@@ -72,6 +79,19 @@ export default function LoginPage() {
Continue with Google
)}
+
+ {data.isDevelopment && (
+
+ )}
diff --git a/apps/webapp/app/routes/login.magic.tsx b/apps/webapp/app/routes/login.magic.tsx
new file mode 100644
index 0000000..634e2eb
--- /dev/null
+++ b/apps/webapp/app/routes/login.magic.tsx
@@ -0,0 +1,212 @@
+import {
+ redirect,
+ type ActionFunctionArgs,
+ type LoaderFunctionArgs,
+ type MetaFunction,
+} from "@remix-run/node";
+
+import { Form, useNavigation } from "@remix-run/react";
+import { Inbox, Loader, Mail } from "lucide-react";
+import { typedjson, useTypedLoaderData } from "remix-typedjson";
+import { z } from "zod";
+import { LoginPageLayout } from "~/components/layout/LoginPageLayout";
+import { Button } from "~/components/ui";
+import { Fieldset } from "~/components/ui/Fieldset";
+import { FormButtons } from "~/components/ui/FormButtons";
+import { Header1 } from "~/components/ui/Headers";
+import { Input } from "~/components/ui/input";
+import { Paragraph } from "~/components/ui/Paragraph";
+import { TextLink } from "~/components/ui/TextLink";
+
+import { authenticator } from "~/services/auth.server";
+import { getUserId } from "~/services/session.server";
+import {
+ commitSession,
+ getUserSession,
+} from "~/services/sessionStorage.server";
+import { env } from "~/env.server";
+
+export const meta: MetaFunction = ({ matches }) => {
+ const parentMeta = matches
+ .flatMap((match) => match.meta ?? [])
+ .filter((meta) => {
+ if ("title" in meta) return false;
+ if ("name" in meta && meta.name === "viewport") return false;
+ return true;
+ });
+
+ return [
+ ...parentMeta,
+ { title: `Login to C.O.R.E.` },
+ {
+ name: "viewport",
+ content: "width=device-width,initial-scale=1",
+ },
+ ];
+};
+
+export async function loader({ request }: LoaderFunctionArgs): Promise {
+ if (env.NODE_ENV !== "development") {
+ return typedjson({ isDevelopment: false });
+ }
+
+ const userId = await getUserId(request);
+ if (userId) return redirect("/");
+
+ const session = await getUserSession(request);
+ const error = session.get("auth:error");
+
+ let magicLinkError: string | undefined | unknown;
+ if (error) {
+ if ("message" in error) {
+ magicLinkError = error.message;
+ } else {
+ magicLinkError = JSON.stringify(error, null, 2);
+ }
+ }
+
+ return typedjson(
+ {
+ isDevelopment: true,
+ magicLinkSent: session.has("core:magiclink"),
+ magicLinkError,
+ },
+ {
+ headers: { "Set-Cookie": await commitSession(session) },
+ },
+ );
+}
+
+export async function action({ request }: ActionFunctionArgs) {
+ if (env.NODE_ENV !== "development") {
+ throw new Error("Magic link login is only available in development mode");
+ }
+
+ const clonedRequest = request.clone();
+
+ const payload = Object.fromEntries(await clonedRequest.formData());
+
+ const { action } = z
+ .object({
+ action: z.enum(["send", "reset"]),
+ })
+ .parse(payload);
+
+ if (action === "send") {
+ return await authenticator.authenticate("email-link", request);
+ } else {
+ const session = await getUserSession(request);
+ session.unset("core:magiclink");
+
+ return redirect("/magic", {
+ headers: {
+ "Set-Cookie": await commitSession(session),
+ },
+ });
+ }
+}
+
+export default function LoginMagicLinkPage() {
+ const data = useTypedLoaderData();
+ const navigate = useNavigation();
+
+ if (!data.isDevelopment) {
+ return (
+
+
+ Magic link login is only available in development mode.
+
+
+ );
+ }
+
+ const isLoading =
+ (navigate.state === "loading" || navigate.state === "submitting") &&
+ navigate.formAction !== undefined &&
+ navigate.formData?.get("action") === "send";
+
+ return (
+
+
+
+ );
+}
diff --git a/apps/webapp/app/routes/magic.tsx b/apps/webapp/app/routes/magic.tsx
new file mode 100644
index 0000000..5d71fd9
--- /dev/null
+++ b/apps/webapp/app/routes/magic.tsx
@@ -0,0 +1,23 @@
+import { redirect } from "@remix-run/node";
+import type { LoaderFunctionArgs } from "@remix-run/server-runtime";
+import { authenticator } from "~/services/auth.server";
+import { logger } from "~/services/logger.service";
+import { saveSession } from "~/services/sessionStorage.server";
+import { redirectCookie } from "./auth.google";
+
+export async function loader({ request }: LoaderFunctionArgs) {
+ const cookie = request.headers.get("Cookie");
+ const redirectValue = await redirectCookie.parse(cookie);
+ const authuser = await authenticator.authenticate("email-link", request);
+ const redirectTo = redirectValue ?? "/";
+
+ const headers = await saveSession(request, authuser);
+
+ logger.debug("auth.google.callback authuser", {
+ authuser,
+ });
+
+ return redirect(redirectTo, {
+ headers,
+ });
+}
diff --git a/apps/webapp/app/services/apiRateLimit.server.ts b/apps/webapp/app/services/apiRateLimit.server.ts
deleted file mode 100644
index d5d1085..0000000
--- a/apps/webapp/app/services/apiRateLimit.server.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { env } from "~/env.server";
-import { authenticateAuthorizationHeader } from "./apiAuth.server";
-import { authorizationRateLimitMiddleware } from "./authorizationRateLimitMiddleware.server";
-import { Duration } from "./rateLimiter.server";
-
-export const apiRateLimiter = authorizationRateLimitMiddleware({
- redis: {
- port: env.RATE_LIMIT_REDIS_PORT,
- host: env.RATE_LIMIT_REDIS_HOST,
- username: env.RATE_LIMIT_REDIS_USERNAME,
- password: env.RATE_LIMIT_REDIS_PASSWORD,
- tlsDisabled: env.RATE_LIMIT_REDIS_TLS_DISABLED === "true",
- clusterMode: env.RATE_LIMIT_REDIS_CLUSTER_MODE_ENABLED === "1",
- },
- keyPrefix: "api",
- defaultLimiter: {
- type: "tokenBucket",
- refillRate: env.API_RATE_LIMIT_REFILL_RATE,
- interval: env.API_RATE_LIMIT_REFILL_INTERVAL as Duration,
- maxTokens: env.API_RATE_LIMIT_MAX,
- },
- limiterCache: {
- fresh: 60_000 * 10, // Data is fresh for 10 minutes
- stale: 60_000 * 20, // Date is stale after 20 minutes
- },
- limiterConfigOverride: async (authorizationValue) => {
- const authenticatedEnv = await authenticateAuthorizationHeader(
- authorizationValue,
- {
- allowPublicKey: true,
- allowJWT: true,
- },
- );
-
- if (!authenticatedEnv || !authenticatedEnv.ok) {
- return;
- }
-
- if (authenticatedEnv.type === "PUBLIC_JWT") {
- return {
- type: "fixedWindow",
- window: env.API_RATE_LIMIT_JWT_WINDOW,
- tokens: env.API_RATE_LIMIT_JWT_TOKENS,
- };
- } else {
- return authenticatedEnv.environment.organization.apiRateLimiterConfig;
- }
- },
- pathMatchers: [/^\/api/],
- // Allow /api/v1/tasks/:id/callback/:secret
- pathWhiteList: [
- "/api/internal/stripe_webhooks",
- "/api/v1/authorization-code",
- "/api/v1/token",
- "/api/v1/usage/ingest",
- "/api/v1/timezones",
- "/api/v1/usage/ingest",
- "/api/v1/auth/jwt/claims",
- ],
- log: {
- rejections: env.API_RATE_LIMIT_REJECTION_LOGS_ENABLED === "1",
- requests: env.API_RATE_LIMIT_REQUEST_LOGS_ENABLED === "1",
- limiter: env.API_RATE_LIMIT_LIMITER_LOGS_ENABLED === "1",
- },
-});
-
-export type RateLimitMiddleware = ReturnType<
- typeof authorizationRateLimitMiddleware
->;
diff --git a/apps/webapp/app/services/auth.server.ts b/apps/webapp/app/services/auth.server.ts
index 1823ef8..38b9967 100644
--- a/apps/webapp/app/services/auth.server.ts
+++ b/apps/webapp/app/services/auth.server.ts
@@ -1,9 +1,11 @@
import { Authenticator } from "remix-auth";
+
import type { AuthUser } from "./authUser";
import { addGoogleStrategy } from "./googleAuth.server";
import { env } from "~/env.server";
+import { addEmailLinkStrategy } from "./emailAuth.server";
// Create an instance of the authenticator, pass a generic with what
// strategies will return and will store in the session
@@ -21,4 +23,8 @@ if (env.AUTH_GOOGLE_CLIENT_ID && env.AUTH_GOOGLE_CLIENT_SECRET) {
);
}
+if (env.NODE_ENV === "development") {
+ addEmailLinkStrategy(authenticator);
+}
+
export { authenticator, isGoogleAuthSupported };
diff --git a/apps/webapp/app/services/email.server.ts b/apps/webapp/app/services/email.server.ts
new file mode 100644
index 0000000..5791010
--- /dev/null
+++ b/apps/webapp/app/services/email.server.ts
@@ -0,0 +1,95 @@
+import {
+ type DeliverEmail,
+ type SendPlainTextOptions,
+ EmailClient,
+ type MailTransportOptions,
+} from "emails";
+
+import { redirect } from "remix-typedjson";
+import { env } from "~/env.server";
+import type { AuthUser } from "./authUser";
+
+import { logger } from "./logger.service";
+import { singleton } from "~/utils/singleton";
+
+const client = singleton(
+ "email-client",
+ () =>
+ new EmailClient({
+ transport: buildTransportOptions(),
+ imagesBaseUrl: env.APP_ORIGIN,
+ from: env.FROM_EMAIL ?? "team@core.heysol.ai",
+ replyTo: env.REPLY_TO_EMAIL ?? "help@core.heysol.ai",
+ }),
+);
+
+function buildTransportOptions(): MailTransportOptions {
+ const transportType = env.EMAIL_TRANSPORT;
+ logger.debug(
+ `Constructing email transport '${transportType}' for usage general`,
+ );
+
+ switch (transportType) {
+ case "aws-ses":
+ return { type: "aws-ses" };
+ case "resend":
+ return {
+ type: "resend",
+ config: {
+ apiKey: env.RESEND_API_KEY,
+ },
+ };
+ case "smtp":
+ return {
+ type: "smtp",
+ config: {
+ host: env.SMTP_HOST,
+ port: env.SMTP_PORT,
+ secure: env.SMTP_SECURE,
+ auth: {
+ user: env.SMTP_USER,
+ pass: env.SMTP_PASSWORD,
+ },
+ },
+ };
+ default:
+ return { type: undefined };
+ }
+}
+
+export async function sendMagicLinkEmail(options: any): Promise {
+ // Auto redirect when in development mode
+ if (env.NODE_ENV === "development") {
+ throw redirect(options.magicLink);
+ }
+
+ logger.debug("Sending magic link email", {
+ emailAddress: options.emailAddress,
+ });
+
+ try {
+ return await client.send({
+ email: "magic_link",
+ to: options.emailAddress,
+ magicLink: options.magicLink,
+ });
+ } catch (error) {
+ logger.error("Error sending magic link email", {
+ error: JSON.stringify(error),
+ });
+ throw error;
+ }
+}
+
+export async function sendPlainTextEmail(options: SendPlainTextOptions) {
+ return client.sendPlainText(options);
+}
+
+export async function scheduleEmail(
+ data: DeliverEmail,
+ delay?: { seconds: number },
+) {}
+
+export async function sendEmail(data: DeliverEmail) {
+ return client.send(data);
+}
diff --git a/apps/webapp/app/services/emailAuth.server.tsx b/apps/webapp/app/services/emailAuth.server.tsx
new file mode 100644
index 0000000..7a3a305
--- /dev/null
+++ b/apps/webapp/app/services/emailAuth.server.tsx
@@ -0,0 +1,43 @@
+import { EmailLinkStrategy } from "@nichtsam/remix-auth-email-link";
+import type { Authenticator } from "remix-auth";
+import type { AuthUser } from "./authUser";
+import { findOrCreateUser } from "~/models/user.server";
+import { env } from "~/env.server";
+import { sendMagicLinkEmail } from "~/services/email.server";
+import { postAuthentication } from "./postAuth.server";
+import { logger } from "./logger.service";
+
+let secret = env.MAGIC_LINK_SECRET;
+let APP_ORIGIN = env.APP_ORIGIN;
+if (!secret) throw new Error("Missing MAGIC_LINK_SECRET env variable.");
+
+const emailStrategy = new EmailLinkStrategy(
+ {
+ sendEmail: sendMagicLinkEmail,
+ secret,
+ magicEndpoint: `${APP_ORIGIN}/magic`,
+ },
+ async ({ email }: { email: string }) => {
+ logger.info("Magic link user authenticated", { email });
+
+ try {
+ const { user, isNewUser } = await findOrCreateUser({
+ email,
+ authenticationMethod: "MAGIC_LINK",
+ });
+
+ await postAuthentication({ user, isNewUser, loginMethod: "MAGIC_LINK" });
+
+ return { userId: user.id };
+ } catch (error) {
+ logger.debug("Magic link user failed to authenticate", {
+ error: JSON.stringify(error),
+ });
+ throw error;
+ }
+ },
+);
+
+export function addEmailLinkStrategy(authenticator: Authenticator) {
+ authenticator.use(emailStrategy as any, "email-link");
+}
diff --git a/apps/webapp/package.json b/apps/webapp/package.json
index 08430ec..1035765 100644
--- a/apps/webapp/package.json
+++ b/apps/webapp/package.json
@@ -57,6 +57,7 @@
"dayjs": "^1.11.10",
"date-fns": "^4.1.0",
"express": "^4.18.1",
+ "emails": "workspace:*",
"ioredis": "^5.6.1",
"isbot": "^4.1.0",
"jose": "^5.2.3",
@@ -69,6 +70,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remix-auth": "^4.2.0",
+ "@nichtsam/remix-auth-email-link": "3.0.0",
"remix-auth-oauth2": "^3.4.1",
"remix-themes": "^1.3.1",
"remix-typedjson": "0.3.1",
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..3d1a6f6
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,74 @@
+ARG NODE_IMAGE=node:20.11.1-bullseye-slim@sha256:5a5a92b3a8d392691c983719dbdc65d9f30085d6dcd65376e7a32e6fe9bf4cbe
+
+FROM ${NODE_IMAGE} AS pruner
+
+WORKDIR /core
+
+COPY --chown=node:node . .
+RUN npx -q turbo@1.10.9 prune --scope=webapp --docker
+RUN find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
+
+# Base strategy to have layer caching
+FROM ${NODE_IMAGE} AS base
+RUN apt-get update && apt-get install -y openssl dumb-init
+WORKDIR /core
+COPY --chown=node:node .gitignore .gitignore
+COPY --from=pruner --chown=node:node /core/out/json/ .
+COPY --from=pruner --chown=node:node /core/out/pnpm-lock.yaml ./pnpm-lock.yaml
+COPY --from=pruner --chown=node:node /core/out/pnpm-workspace.yaml ./pnpm-workspace.yaml
+
+## Dev deps
+FROM base AS dev-deps
+WORKDIR /core
+# Corepack is used to install pnpm
+RUN corepack enable
+ENV NODE_ENV development
+RUN pnpm install --ignore-scripts --no-frozen-lockfile
+
+## Production deps
+FROM base AS production-deps
+WORKDIR /core
+# Corepack is used to install pnpm
+RUN corepack enable
+ENV NODE_ENV production
+RUN pnpm install --prod --no-frozen-lockfile
+COPY --from=pruner --chown=node:node /core/packages/database/prisma/schema.prisma /core/packages/database/prisma/schema.prisma
+# RUN pnpm add @prisma/client@5.1.1 -w
+ENV NPM_CONFIG_IGNORE_WORKSPACE_ROOT_CHECK true
+RUN pnpx prisma@5.4.1 generate --schema /core/packages/database/prisma/schema.prisma
+
+## Builder (builds the webapp)
+FROM base AS builder
+WORKDIR /core
+# Corepack is used to install pnpm
+RUN corepack enable
+
+COPY --from=pruner --chown=node:node /core/out/full/ .
+COPY --from=dev-deps --chown=node:node /core/ .
+COPY --chown=node:node turbo.json turbo.json
+COPY --chown=node:node docker/scripts ./scripts
+RUN chmod +x ./scripts/wait-for-it.sh
+RUN chmod +x ./scripts/entrypoint.sh
+COPY --chown=node:node .configs/tsconfig.base.json .configs/tsconfig.base.json
+RUN pnpm run generate
+RUN pnpm run build --filter=webapp...
+
+# Runner
+FROM ${NODE_IMAGE} AS runner
+RUN apt-get update && apt-get install -y openssl netcat-openbsd ca-certificates
+WORKDIR /core
+RUN corepack enable
+ENV NODE_ENV production
+
+COPY --from=base /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=pruner --chown=node:node /core/out/full/ .
+COPY --from=production-deps --chown=node:node /core .
+COPY --from=builder --chown=node:node /core/apps/webapp/build/server.js ./apps/webapp/build/server.js
+COPY --from=builder --chown=node:node /core/apps/webapp/build ./apps/webapp/build
+COPY --from=builder --chown=node:node /core/apps/webapp/public ./apps/webapp/public
+COPY --from=builder --chown=node:node /core/scripts ./scripts
+
+EXPOSE 3000
+
+USER node
+CMD ["./scripts/entrypoint.sh"]
diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml
new file mode 100644
index 0000000..e69de29
diff --git a/docker/scripts/entrypoint.sh b/docker/scripts/entrypoint.sh
new file mode 100755
index 0000000..c972f33
--- /dev/null
+++ b/docker/scripts/entrypoint.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -xe
+
+if [ -n "$DATABASE_HOST" ]; then
+ scripts/wait-for-it.sh ${DATABASE_HOST} -- echo "database is up"
+fi
+
+# Run migrations
+pnpm --filter @core/database db:migrate:deploy
+
+# Copy over required prisma files
+cp packages/database/prisma/schema.prisma apps/webapp/prisma/
+cp node_modules/@prisma/engines/*.node apps/webapp/prisma/
+
+cd /core/apps/webapp
+# exec dumb-init pnpm run start:local
+NODE_PATH='/core/node_modules/.pnpm/node_modules' exec dumb-init node --max-old-space-size=8192 ./build/server.js
+
diff --git a/docker/scripts/wait-for-it.sh b/docker/scripts/wait-for-it.sh
new file mode 100755
index 0000000..1ebf3b0
--- /dev/null
+++ b/docker/scripts/wait-for-it.sh
@@ -0,0 +1,184 @@
+#!/bin/sh
+
+# The MIT License (MIT)
+#
+# Copyright (c) 2017 Eficode Oy
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+set -- "$@" -- "$TIMEOUT" "$QUIET" "$PROTOCOL" "$HOST" "$PORT" "$result"
+TIMEOUT=15
+QUIET=0
+# The protocol to make the request with, either "tcp" or "http"
+PROTOCOL="tcp"
+
+echoerr() {
+ if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi
+}
+
+usage() {
+ exitcode="$1"
+ cat << USAGE >&2
+Usage:
+ $0 host:port|url [-t timeout] [-- command args]
+ -q | --quiet Do not output any status messages
+ -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout
+ -- COMMAND ARGS Execute command with args after the test finishes
+USAGE
+ exit "$exitcode"
+}
+
+wait_for() {
+ case "$PROTOCOL" in
+ tcp)
+ if ! command -v nc >/dev/null; then
+ echoerr 'nc command is missing!'
+ exit 1
+ fi
+ ;;
+ wget)
+ if ! command -v wget >/dev/null; then
+ echoerr 'wget command is missing!'
+ exit 1
+ fi
+ ;;
+ esac
+
+ while :; do
+ case "$PROTOCOL" in
+ tcp)
+ nc -w 1 -z "$HOST" "$PORT" > /dev/null 2>&1
+ ;;
+ http)
+ wget --timeout=1 -q "$HOST" -O /dev/null > /dev/null 2>&1
+ ;;
+ *)
+ echoerr "Unknown protocol '$PROTOCOL'"
+ exit 1
+ ;;
+ esac
+
+ result=$?
+
+ if [ $result -eq 0 ] ; then
+ if [ $# -gt 7 ] ; then
+ for result in $(seq $(($# - 7))); do
+ result=$1
+ shift
+ set -- "$@" "$result"
+ done
+
+ TIMEOUT=$2 QUIET=$3 PROTOCOL=$4 HOST=$5 PORT=$6 result=$7
+ shift 7
+ exec "$@"
+ fi
+ exit 0
+ fi
+
+ if [ "$TIMEOUT" -le 0 ]; then
+ break
+ fi
+ TIMEOUT=$((TIMEOUT - 1))
+
+ sleep 1
+ done
+ echo "Operation timed out" >&2
+ exit 1
+}
+
+while :; do
+ case "$1" in
+ http://*|https://*)
+ HOST="$1"
+ PROTOCOL="http"
+ shift 1
+ ;;
+ *:* )
+ HOST=$(printf "%s\n" "$1"| cut -d : -f 1)
+ PORT=$(printf "%s\n" "$1"| cut -d : -f 2)
+ shift 1
+ ;;
+ -q | --quiet)
+ QUIET=1
+ shift 1
+ ;;
+ -q-*)
+ QUIET=0
+ echoerr "Unknown option: $1"
+ usage 1
+ ;;
+ -q*)
+ QUIET=1
+ result=$1
+ shift 1
+ set -- -"${result#-q}" "$@"
+ ;;
+ -t | --timeout)
+ TIMEOUT="$2"
+ shift 2
+ ;;
+ -t*)
+ TIMEOUT="${1#-t}"
+ shift 1
+ ;;
+ --timeout=*)
+ TIMEOUT="${1#*=}"
+ shift 1
+ ;;
+ --)
+ shift
+ break
+ ;;
+ --help)
+ usage 0
+ ;;
+ -*)
+ QUIET=0
+ echoerr "Unknown option: $1"
+ usage 1
+ ;;
+ *)
+ QUIET=0
+ echoerr "Unknown argument: $1"
+ usage 1
+ ;;
+ esac
+done
+
+if ! [ "$TIMEOUT" -ge 0 ] 2>/dev/null; then
+ echoerr "Error: invalid timeout '$TIMEOUT'"
+ usage 3
+fi
+
+case "$PROTOCOL" in
+ tcp)
+ if [ "$HOST" = "" ] || [ "$PORT" = "" ]; then
+ echoerr "Error: you need to provide a host and port to test."
+ usage 2
+ fi
+ ;;
+ http)
+ if [ "$HOST" = "" ]; then
+ echoerr "Error: you need to provide a host to test."
+ usage 2
+ fi
+ ;;
+esac
+
+wait_for "$@"
\ No newline at end of file
diff --git a/packages/database/prisma/migrations/20250611173339_add_magic_link/migration.sql b/packages/database/prisma/migrations/20250611173339_add_magic_link/migration.sql
new file mode 100644
index 0000000..1e48db7
--- /dev/null
+++ b/packages/database/prisma/migrations/20250611173339_add_magic_link/migration.sql
@@ -0,0 +1,2 @@
+-- AlterEnum
+ALTER TYPE "AuthenticationMethod" ADD VALUE 'MAGIC_LINK';
diff --git a/packages/database/prisma/schema.prisma b/packages/database/prisma/schema.prisma
index 386d51a..7035de3 100644
--- a/packages/database/prisma/schema.prisma
+++ b/packages/database/prisma/schema.prisma
@@ -61,6 +61,7 @@ model Workspace {
enum AuthenticationMethod {
GOOGLE
+ MAGIC_LINK
}
/// Used to generate PersonalAccessTokens, they're one-time use
diff --git a/packages/emails/.gitignore b/packages/emails/.gitignore
new file mode 100644
index 0000000..9e9e879
--- /dev/null
+++ b/packages/emails/.gitignore
@@ -0,0 +1 @@
+.react-email
\ No newline at end of file
diff --git a/packages/emails/README.md b/packages/emails/README.md
new file mode 100644
index 0000000..d0ef603
--- /dev/null
+++ b/packages/emails/README.md
@@ -0,0 +1,17 @@
+# Emails
+
+## Getting Started
+
+1. First, install the dependencies:
+
+```sh
+pnpm install --filter emails
+```
+
+2. Then, run the development server:
+
+```sh
+pnpm run dev --filter emails
+```
+
+Open [localhost:3080](http://localhost:3080) with your browser to see the result.
diff --git a/packages/emails/emails/components/BasePath.tsx b/packages/emails/emails/components/BasePath.tsx
new file mode 100644
index 0000000..ef9852c
--- /dev/null
+++ b/packages/emails/emails/components/BasePath.tsx
@@ -0,0 +1,10 @@
+// Use a global variable to store the base path
+let globalBasePath: string = "http://localhost:3000";
+
+export function setGlobalBasePath(basePath: string) {
+ globalBasePath = basePath;
+}
+
+export function getGlobalBasePath() {
+ return globalBasePath;
+}
diff --git a/packages/emails/emails/components/Footer.tsx b/packages/emails/emails/components/Footer.tsx
new file mode 100644
index 0000000..b2e02d4
--- /dev/null
+++ b/packages/emails/emails/components/Footer.tsx
@@ -0,0 +1,17 @@
+import { Hr, Link, Text } from "@react-email/components";
+import React from "react";
+import { footer, footerAnchor, hr } from "./styles";
+
+export function Footer() {
+ return (
+ <>
+
+
+ ©Sol.ai
+
+ C.O.R.E
+
+
+ >
+ );
+}
diff --git a/packages/emails/emails/components/Image.tsx b/packages/emails/emails/components/Image.tsx
new file mode 100644
index 0000000..3009f58
--- /dev/null
+++ b/packages/emails/emails/components/Image.tsx
@@ -0,0 +1,13 @@
+import { Img } from "@react-email/components";
+import * as React from "react";
+import { getGlobalBasePath } from "./BasePath";
+
+type ImageProps = Omit[0], "src"> & {
+ path: string;
+};
+
+export function Image({ path, ...props }: ImageProps) {
+ const basePath = getGlobalBasePath();
+
+ return
;
+}
diff --git a/packages/emails/emails/components/styles.ts b/packages/emails/emails/components/styles.ts
new file mode 100644
index 0000000..6c07873
--- /dev/null
+++ b/packages/emails/emails/components/styles.ts
@@ -0,0 +1,113 @@
+export const h1 = {
+ color: "#D7D9DD",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "24px",
+ fontWeight: "bold",
+ margin: "40px 0",
+ padding: "0",
+};
+
+export const main = {
+ backgroundColor: "#15171A",
+ padding: "0 20px",
+};
+
+export const container = {
+ backgroundColor: "#15171A",
+ margin: "0 auto",
+ padding: "20px 0 48px",
+ marginBottom: "64px",
+};
+
+export const box = {
+ padding: "0 48px",
+};
+
+export const hr = {
+ borderColor: "#272A2E",
+ margin: "20px 0",
+};
+
+export const paragraph = {
+ color: "#878C99",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "16px",
+ lineHeight: "24px",
+ textAlign: "left" as const,
+};
+
+export const paragraphLight = {
+ color: "#D7D9DD",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "16px",
+ lineHeight: "24px",
+ textAlign: "left" as const,
+};
+
+export const paragraphTight = {
+ color: "#D7D9DD",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "16px",
+ lineHeight: "16px",
+ textAlign: "left" as const,
+};
+
+export const bullets = {
+ color: "#D7D9DD",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "16px",
+ lineHeight: "24px",
+ textAlign: "left" as const,
+ margin: "0",
+};
+
+export const anchor = {
+ color: "#826DFF",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "16px",
+ textDecoration: "underline",
+};
+
+export const button = {
+ backgroundColor: "#826DFF",
+ borderRadius: "5px",
+ color: "#D7D9DD",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "16px",
+ fontWeight: "bold",
+ textDecoration: "none",
+ textAlign: "center" as const,
+ display: "block",
+};
+
+export const footer = {
+ color: "#878C99",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "12px",
+ lineHeight: "16px",
+};
+
+export const footerItalic = {
+ color: "#878C99",
+ fontStyle: "italic",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ fontSize: "12px",
+ lineHeight: "16px",
+};
+
+export const footerAnchor = {
+ color: "#878C99",
+ fontFamily:
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ fontSize: "12px",
+ textDecoration: "underline",
+};
diff --git a/packages/emails/emails/invite.tsx b/packages/emails/emails/invite.tsx
new file mode 100644
index 0000000..3b30f9f
--- /dev/null
+++ b/packages/emails/emails/invite.tsx
@@ -0,0 +1,49 @@
+import { Body, Container, Head, Html, Link, Preview, Text } from "@react-email/components";
+import { z } from "zod";
+import { Footer } from "./components/Footer";
+import { Image } from "./components/Image";
+import { anchor, container, h1, main, paragraphLight } from "./components/styles";
+
+export const InviteEmailSchema = z.object({
+ email: z.literal("invite"),
+ orgName: z.string(),
+ inviterName: z.string().optional(),
+ inviterEmail: z.string(),
+ inviteLink: z.string().url(),
+});
+
+export default function Email({
+ orgName,
+ inviterName,
+ inviterEmail,
+ inviteLink,
+}: z.infer) {
+ return (
+
+
+ {`You've been invited to ${orgName}`}
+
+
+ {`You've been invited to ${orgName}`}
+
+ {inviterName ?? inviterEmail} has invited you to join their organization on Sol.ai.
+
+
+ Click here to view the invitation
+
+
+
+
+
+
+
+ );
+}
diff --git a/packages/emails/emails/magic-link.tsx b/packages/emails/emails/magic-link.tsx
new file mode 100644
index 0000000..b39b941
--- /dev/null
+++ b/packages/emails/emails/magic-link.tsx
@@ -0,0 +1,39 @@
+import { Body, Container, Head, Html, Link, Preview, Text } from "@react-email/components";
+import { Footer } from "./components/Footer";
+import { Image } from "./components/Image";
+import { anchor, container, h1, main, paragraphLight } from "./components/styles";
+
+export default function Email({ magicLink }: { magicLink: string }) {
+ return (
+
+
+ Log in with this magic link 🪄
+
+
+ Log in to C.O.R.E.
+
+ Click here to log in with this magic link
+
+
+ If you didn't try to log in, you can safely ignore this email.
+
+
+
+
+
+
+ );
+}
diff --git a/packages/emails/emails/welcome.tsx b/packages/emails/emails/welcome.tsx
new file mode 100644
index 0000000..137a49c
--- /dev/null
+++ b/packages/emails/emails/welcome.tsx
@@ -0,0 +1,53 @@
+import { Body, Head, Html, Link, Preview, Section, Text } from "@react-email/components";
+import { Footer } from "./components/Footer";
+import { anchor, bullets, footerItalic, main, paragraphLight } from "./components/styles";
+
+export default function Email({ name }: { name?: string }) {
+ return (
+
+
+ Welcome to C.O.R.E. - Your Personal AI Assistant
+
+ Hey {name ?? "there"},
+ Welcome to C.O.R.E., your new personal AI assistant!
+
+ I'm excited to help you streamline your daily tasks, boost your productivity, and make
+ your work life easier. C.O.R.E. is designed to be intuitive and powerful, adapting to your
+ unique needs and preferences.
+
+
+ To get started, you can{" "}
+
+ visit your dashboard
+ {" "}
+ where you'll find all the features and capabilities at your disposal. Whether it's
+ managing your schedule, handling communications, or automating repetitive tasks, I'm here
+ to help.
+
+
+
+ If you have any questions or need assistance, don't hesitate to reach out. You can:{"\n"}•
+ Ask me directly through the chat interface{"\n"}•{" "}
+
+ Visit our support center
+
+ {"\n"}• Join our{" "}
+
+ Discord community
+ {" "}
+ to connect with other users and our team
+
+
+ Looking forward to being your trusted assistant!
+
+ Best regards,
+ C.O.R.E.
+ Your AI Assistant
+
+ You can customize your notification preferences anytime in your account settings.
+
+
+
+
+ );
+}
diff --git a/packages/emails/package.json b/packages/emails/package.json
new file mode 100644
index 0000000..85cb7ab
--- /dev/null
+++ b/packages/emails/package.json
@@ -0,0 +1,29 @@
+{
+ "private": true,
+ "name": "emails",
+ "version": "1.0.0",
+ "description": "Send emails",
+ "main": "./src/index.tsx",
+ "types": "./src/index.tsx",
+ "scripts": {
+ "dev": "PORT=3080 email dev"
+ },
+ "dependencies": {
+ "@aws-sdk/client-ses": "^3.716.0",
+ "@react-email/components": "0.0.16",
+ "@react-email/render": "^0.0.12",
+ "nodemailer": "^6.9.16",
+ "react": "^18.2.0",
+ "react-email": "^2.1.1",
+ "resend": "^3.2.0",
+ "tiny-invariant": "^1.2.0",
+ "zod": "3.23.8"
+ },
+ "devDependencies": {
+ "@types/nodemailer": "^6.4.17",
+ "@types/react": "18.2.69"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+}
diff --git a/packages/emails/src/index.tsx b/packages/emails/src/index.tsx
new file mode 100644
index 0000000..ec0cff2
--- /dev/null
+++ b/packages/emails/src/index.tsx
@@ -0,0 +1,96 @@
+import { ReactElement } from "react";
+
+import { z } from "zod";
+
+import { setGlobalBasePath } from "../emails/components/BasePath";
+
+import InviteEmail, { InviteEmailSchema } from "../emails/invite";
+import MagicLinkEmail from "../emails/magic-link";
+import WelcomeEmail from "../emails/welcome";
+import { constructMailTransport, MailTransport, MailTransportOptions } from "./transports";
+
+export { type MailTransportOptions };
+
+export const DeliverEmailSchema = z
+ .discriminatedUnion("email", [
+ z.object({
+ email: z.literal("magic_link"),
+ magicLink: z.string().url(),
+ }),
+ InviteEmailSchema,
+ ])
+ .and(z.object({ to: z.string() }));
+
+export type DeliverEmail = z.infer;
+
+export type SendPlainTextOptions = { to: string; subject: string; text: string };
+
+export class EmailClient {
+ #transport: MailTransport;
+
+ #imagesBaseUrl: string;
+ #from: string;
+ #replyTo: string;
+
+ constructor(config: {
+ transport?: MailTransportOptions;
+ imagesBaseUrl: string;
+ from: string;
+ replyTo: string;
+ }) {
+ this.#transport = constructMailTransport(config.transport ?? { type: undefined });
+
+ this.#imagesBaseUrl = config.imagesBaseUrl;
+ this.#from = config.from;
+ this.#replyTo = config.replyTo;
+ }
+
+ async send(data: DeliverEmail) {
+ const { subject, component } = this.#getTemplate(data);
+
+ setGlobalBasePath(this.#imagesBaseUrl);
+
+ return await this.#transport.send({
+ to: data.to,
+ subject,
+ react: component,
+ from: this.#from,
+ replyTo: this.#replyTo,
+ });
+ }
+
+ async sendPlainText(options: SendPlainTextOptions) {
+ await this.#transport.sendPlainText({
+ ...options,
+ from: this.#from,
+ replyTo: this.#replyTo,
+ });
+ }
+
+ #getTemplate(data: DeliverEmail): {
+ subject: string;
+ component: ReactElement;
+ } {
+ switch (data.email) {
+ case "magic_link":
+ return {
+ subject: "Magic sign-in link for C.O.R.E.",
+ component: ,
+ };
+ case "invite":
+ return {
+ subject: `You've been invited to join ${data.orgName} on C.O.R.E.`,
+ component: ,
+ };
+ }
+ }
+}
+
+function formatErrorMessageForSubject(message?: string) {
+ if (!message) {
+ return "";
+ }
+
+ const singleLine = message.replace(/[\r\n]+/g, " ");
+ return singleLine.length > 30 ? singleLine.substring(0, 27) + "..." : singleLine;
+}
diff --git a/packages/emails/src/transports/aws-ses.ts b/packages/emails/src/transports/aws-ses.ts
new file mode 100644
index 0000000..58a136e
--- /dev/null
+++ b/packages/emails/src/transports/aws-ses.ts
@@ -0,0 +1,67 @@
+import { render } from "@react-email/render";
+import { EmailError, MailMessage, MailTransport, PlainTextMailMessage } from "./index";
+import nodemailer from "nodemailer"
+import * as awsSes from "@aws-sdk/client-ses"
+
+export type AwsSesMailTransportOptions = {
+ type: 'aws-ses',
+}
+
+export class AwsSesMailTransport implements MailTransport {
+ #client: nodemailer.Transporter;
+
+ constructor(options: AwsSesMailTransportOptions) {
+ const ses = new awsSes.SESClient()
+
+ this.#client = nodemailer.createTransport({
+ SES: {
+ aws: awsSes,
+ ses
+ }
+ })
+ }
+
+ async send({to, from, replyTo, subject, react}: MailMessage): Promise {
+ try {
+ await this.#client.sendMail({
+ from: from,
+ to,
+ replyTo: replyTo,
+ subject,
+ html: render(react),
+ });
+ }
+ catch (error) {
+ if (error instanceof Error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${error.name}: ${error.message}`
+ );
+ throw new EmailError(error);
+ } else {
+ throw error;
+ }
+ }
+ }
+
+ async sendPlainText({to, from, replyTo, subject, text}: PlainTextMailMessage): Promise {
+ try {
+ await this.#client.sendMail({
+ from: from,
+ to,
+ replyTo: replyTo,
+ subject,
+ text: text,
+ });
+ }
+ catch (error) {
+ if (error instanceof Error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${error.name}: ${error.message}`
+ );
+ throw new EmailError(error);
+ } else {
+ throw error;
+ }
+ }
+ }
+}
diff --git a/packages/emails/src/transports/index.ts b/packages/emails/src/transports/index.ts
new file mode 100644
index 0000000..af85ab6
--- /dev/null
+++ b/packages/emails/src/transports/index.ts
@@ -0,0 +1,52 @@
+import { ReactElement } from "react";
+import { AwsSesMailTransport, AwsSesMailTransportOptions } from "./aws-ses";
+import { NullMailTransport, NullMailTransportOptions } from "./null";
+import { ResendMailTransport, ResendMailTransportOptions } from "./resend";
+import { SmtpMailTransport, SmtpMailTransportOptions } from "./smtp";
+
+export type MailMessage = {
+ to: string;
+ from: string;
+ replyTo: string;
+ subject: string;
+ react: ReactElement;
+};
+
+export type PlainTextMailMessage = {
+ to: string;
+ from: string;
+ replyTo: string;
+ subject: string;
+ text: string;
+}
+
+export interface MailTransport {
+ send(message: MailMessage): Promise;
+ sendPlainText(message: PlainTextMailMessage): Promise;
+}
+
+export class EmailError extends Error {
+ constructor({ name, message }: { name: string; message: string }) {
+ super(message);
+ this.name = name;
+ }
+}
+
+export type MailTransportOptions =
+ AwsSesMailTransportOptions |
+ ResendMailTransportOptions |
+ NullMailTransportOptions |
+ SmtpMailTransportOptions
+
+export function constructMailTransport(options: MailTransportOptions): MailTransport {
+ switch(options.type) {
+ case "aws-ses":
+ return new AwsSesMailTransport(options);
+ case "resend":
+ return new ResendMailTransport(options);
+ case "smtp":
+ return new SmtpMailTransport(options);
+ case undefined:
+ return new NullMailTransport(options);
+ }
+}
diff --git a/packages/emails/src/transports/null.ts b/packages/emails/src/transports/null.ts
new file mode 100644
index 0000000..bb8fe10
--- /dev/null
+++ b/packages/emails/src/transports/null.ts
@@ -0,0 +1,29 @@
+import { render } from "@react-email/render";
+import { MailMessage, MailTransport, PlainTextMailMessage } from "./index";
+
+export type NullMailTransportOptions = {
+ type: undefined,
+}
+
+export class NullMailTransport implements MailTransport {
+ constructor(options: NullMailTransportOptions) {
+ }
+
+ async send({to, subject, react}: MailMessage): Promise {
+ console.log(`
+##### sendEmail to ${to}, subject: ${subject}
+
+${render(react, {
+ plainText: true,
+ })}
+ `);
+ }
+
+ async sendPlainText({to, subject, text}: PlainTextMailMessage): Promise {
+ console.log(`
+##### sendEmail to ${to}, subject: ${subject}
+
+${text}
+ `);
+ }
+}
diff --git a/packages/emails/src/transports/resend.ts b/packages/emails/src/transports/resend.ts
new file mode 100644
index 0000000..9241dd4
--- /dev/null
+++ b/packages/emails/src/transports/resend.ts
@@ -0,0 +1,51 @@
+import { EmailError, MailMessage, MailTransport, PlainTextMailMessage } from "./index";
+import { Resend } from "resend";
+
+export type ResendMailTransportOptions = {
+ type: 'resend',
+ config: {
+ apiKey?: string
+ }
+}
+
+export class ResendMailTransport implements MailTransport {
+ #client: Resend;
+
+ constructor(options: ResendMailTransportOptions) {
+ this.#client = new Resend(options.config.apiKey)
+ }
+
+ async send({to, from, replyTo, subject, react}: MailMessage): Promise {
+ const result = await this.#client.emails.send({
+ from: from,
+ to,
+ reply_to: replyTo,
+ subject,
+ react,
+ });
+
+ if (result.error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}`
+ );
+ throw new EmailError(result.error);
+ }
+ }
+
+ async sendPlainText({to, from, replyTo, subject, text}: PlainTextMailMessage): Promise {
+ const result = await this.#client.emails.send({
+ from: from,
+ to,
+ reply_to: replyTo,
+ subject,
+ text,
+ });
+
+ if (result.error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}`
+ );
+ throw new EmailError(result.error);
+ }
+ }
+}
diff --git a/packages/emails/src/transports/smtp.ts b/packages/emails/src/transports/smtp.ts
new file mode 100644
index 0000000..5dfd1de
--- /dev/null
+++ b/packages/emails/src/transports/smtp.ts
@@ -0,0 +1,66 @@
+import { render } from "@react-email/render";
+import nodemailer from "nodemailer";
+import { EmailError, MailMessage, MailTransport, PlainTextMailMessage } from "./index";
+
+export type SmtpMailTransportOptions = {
+ type: "smtp";
+ config: {
+ host?: string;
+ port?: number;
+ secure?: boolean;
+ auth?: {
+ user?: string;
+ pass?: string;
+ };
+ };
+};
+
+export class SmtpMailTransport implements MailTransport {
+ #client: nodemailer.Transporter;
+
+ constructor(options: SmtpMailTransportOptions) {
+ this.#client = nodemailer.createTransport(options.config);
+ }
+
+ async send({ to, from, replyTo, subject, react }: MailMessage): Promise {
+ try {
+ await this.#client.sendMail({
+ from: from,
+ to,
+ replyTo: replyTo,
+ subject,
+ html: render(react),
+ });
+ } catch (error) {
+ if (error instanceof Error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${error.name}: ${error.message}`
+ );
+ throw new EmailError(error);
+ } else {
+ throw error;
+ }
+ }
+ }
+
+ async sendPlainText({ to, from, replyTo, subject, text }: PlainTextMailMessage): Promise {
+ try {
+ await this.#client.sendMail({
+ from: from,
+ to,
+ replyTo: replyTo,
+ subject,
+ text: text,
+ });
+ } catch (error) {
+ if (error instanceof Error) {
+ console.error(
+ `Failed to send email to ${to}, ${subject}. Error ${error.name}: ${error.message}`
+ );
+ throw new EmailError(error);
+ } else {
+ throw error;
+ }
+ }
+ }
+}
diff --git a/packages/emails/tsconfig.json b/packages/emails/tsconfig.json
new file mode 100644
index 0000000..fabe2cd
--- /dev/null
+++ b/packages/emails/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "incremental": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "target": "ES2015",
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6341ef3..5a26925 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -48,6 +48,9 @@ importers:
'@core/types':
specifier: workspace:*
version: link:../../packages/types
+ '@nichtsam/remix-auth-email-link':
+ specifier: 3.0.0
+ version: 3.0.0(remix-auth@4.2.0)
'@opentelemetry/api':
specifier: 1.9.0
version: 1.9.0
@@ -165,6 +168,9 @@ importers:
dayjs:
specifier: ^1.11.10
version: 1.11.13
+ emails:
+ specifier: workspace:*
+ version: link:../../packages/emails
express:
specifier: ^4.18.1
version: 4.21.2
@@ -221,7 +227,7 @@ importers:
version: 0.3.1(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/server-runtime@2.16.7(typescript@5.8.3))(react@18.3.1)
remix-utils:
specifier: ^7.7.0
- version: 7.7.0(@remix-run/node@2.1.0(typescript@5.8.3))(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/router@1.23.0)(react@18.3.1)(zod@3.23.8)
+ version: 7.7.0(@remix-run/node@2.1.0(typescript@5.8.3))(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/router@1.23.0)(crypto-js@4.2.0)(react@18.3.1)(zod@3.23.8)
tailwind-merge:
specifier: ^2.6.0
version: 2.6.0
@@ -249,7 +255,7 @@ importers:
devDependencies:
'@remix-run/dev':
specifier: 2.16.7
- version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))(yaml@2.8.0)
+ version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)
'@remix-run/eslint-config':
specifier: 2.16.7
version: 2.16.7(eslint@8.57.1)(react@18.3.1)(typescript@5.8.3)
@@ -264,7 +270,7 @@ importers:
version: 0.5.16(tailwindcss@4.1.7)
'@tailwindcss/vite':
specifier: ^4.1.7
- version: 4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))
+ version: 4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
'@types/compression':
specifier: ^1.7.2
version: 1.8.0
@@ -294,7 +300,7 @@ importers:
version: 10.4.21(postcss@8.5.3)
css-loader:
specifier: ^6.10.0
- version: 6.11.0
+ version: 6.11.0(webpack@5.99.9(esbuild@0.25.5))
esbuild:
specifier: ^0.25.5
version: 0.25.5
@@ -330,7 +336,7 @@ importers:
version: 16.1.0(postcss@8.5.3)
postcss-loader:
specifier: ^8.1.1
- version: 8.1.1(postcss@8.5.3)(typescript@5.8.3)
+ version: 8.1.1(postcss@8.5.3)(typescript@5.8.3)(webpack@5.99.9(esbuild@0.25.5))
prettier:
specifier: ^3.5.3
version: 3.5.3
@@ -348,10 +354,10 @@ importers:
version: 5.8.3
vite:
specifier: ^6.0.0
- version: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ version: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
vite-tsconfig-paths:
specifier: ^4.2.1
- version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))
+ version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))
packages/database:
dependencies:
@@ -369,6 +375,43 @@ importers:
specifier: 6.0.1
version: 6.0.1
+ packages/emails:
+ dependencies:
+ '@aws-sdk/client-ses':
+ specifier: ^3.716.0
+ version: 3.826.0
+ '@react-email/components':
+ specifier: 0.0.16
+ version: 0.0.16(@types/react@18.2.69)(react@18.3.1)
+ '@react-email/render':
+ specifier: ^0.0.12
+ version: 0.0.12
+ nodemailer:
+ specifier: ^6.9.16
+ version: 6.10.1
+ react:
+ specifier: ^18.2.0
+ version: 18.3.1
+ react-email:
+ specifier: ^2.1.1
+ version: 2.1.6(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.2)(eslint@8.57.1)
+ resend:
+ specifier: ^3.2.0
+ version: 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ tiny-invariant:
+ specifier: ^1.2.0
+ version: 1.3.3
+ zod:
+ specifier: 3.23.8
+ version: 3.23.8
+ devDependencies:
+ '@types/nodemailer':
+ specifier: ^6.4.17
+ version: 6.4.17
+ '@types/react':
+ specifier: 18.2.69
+ version: 18.2.69
+
packages/types:
dependencies:
'@prisma/client':
@@ -433,6 +476,115 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@aws-crypto/sha256-browser@5.2.0':
+ resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
+
+ '@aws-crypto/sha256-js@5.2.0':
+ resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
+
+ '@aws-crypto/util@5.2.0':
+ resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
+
+ '@aws-sdk/client-ses@3.826.0':
+ resolution: {integrity: sha512-rCuj6Fd8pyDA/gZKyI/C4nAHTRT2w1L+DpEecxfQikFJLwUGZ8Nvk3JxRt0XADqDbdOmrgH/cc11kpEjO7sjEw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/client-sso@3.826.0':
+ resolution: {integrity: sha512-/FEKnUC3xPkLL4RuRydwzx+y4b55HIX6qLPbGnyIs+sNmCUyc/62ijtV1Ml+b++YzEF6jWNBsJOxeyZdgrJ3Ig==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/core@3.826.0':
+ resolution: {integrity: sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-env@3.826.0':
+ resolution: {integrity: sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-http@3.826.0':
+ resolution: {integrity: sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-ini@3.826.0':
+ resolution: {integrity: sha512-g7n+qSklq/Lzjxe2Ke5QFNCgYn26a3ydZnbFIk8QqYin4pzG+qiunaqJjpV3c/EeHMlfK8bBc7MXAylKzGRccQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-node@3.826.0':
+ resolution: {integrity: sha512-UfIJXxHjmSxH6bea00HBPLkjNI2D04enQA/xNLZvB+4xtzt1/gYdCis1P4/73f5aGVVVB4/zQMobBbnjkrmbQw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-process@3.826.0':
+ resolution: {integrity: sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-sso@3.826.0':
+ resolution: {integrity: sha512-F19J3zcfoom6OnQ0MyAtvduVKQXPgkz9i5ExSO01J2CzjbyMhCDA99qAjHYe+LwhW+W7P/jzBPd0+uOQ2Nhh9Q==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/credential-provider-web-identity@3.826.0':
+ resolution: {integrity: sha512-o27GZ6Hy7qhuvMFVUL2eFEpBzf33Jaa/x3u3SHwU0nL7ko7jmbpeF0x4+wmagpI9X2IvVlUxIs0VaQ3YayPLEA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-host-header@3.821.0':
+ resolution: {integrity: sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-logger@3.821.0':
+ resolution: {integrity: sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-recursion-detection@3.821.0':
+ resolution: {integrity: sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/middleware-user-agent@3.826.0':
+ resolution: {integrity: sha512-j404+EcfBbtTlAhyObjXbdKwwDXO1pCxHvR5Fw8FXNvp/H330j6YnXgs3SJ6d3bZUwUJ/ztPx2S5AlBbLVLDFw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/nested-clients@3.826.0':
+ resolution: {integrity: sha512-p7olPq0uTtHqGuXI1GSc/gzKDvV55PMbLtnmupEDfnY9SoRu+QatbWQ6da9sI1lhOcNmRMgiNQBXFzaUFrG+SQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/region-config-resolver@3.821.0':
+ resolution: {integrity: sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/token-providers@3.826.0':
+ resolution: {integrity: sha512-iCOcVAqGPSHtQL8ZBXifZMEcHyUl9wJ8HvLZ5l1ohA/3ZNP+dqEPGi7jfhR5jZKs+xyp2jxByFqfil9PjI9c5A==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/types@3.821.0':
+ resolution: {integrity: sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-endpoints@3.821.0':
+ resolution: {integrity: sha512-Uknt/zUZnLE76zaAAPEayOeF5/4IZ2puTFXvcSCWHsi9m3tqbb9UozlnlVqvCZLCRWfQryZQoG2W4XSS3qgk5A==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-locate-window@3.804.0':
+ resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==}
+ engines: {node: '>=18.0.0'}
+
+ '@aws-sdk/util-user-agent-browser@3.821.0':
+ resolution: {integrity: sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==}
+
+ '@aws-sdk/util-user-agent-node@3.826.0':
+ resolution: {integrity: sha512-wHw6bZQWIMcFF/8r03aY9Itp6JLBYY4absGGhCDK1dc3tPEfi8NVSdb05a/Oz+g4TVaDdxLo0OQ/OKMS1DFRHQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ aws-crt: '>=1.0.0'
+ peerDependenciesMeta:
+ aws-crt:
+ optional: true
+
+ '@aws-sdk/xml-builder@3.821.0':
+ resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==}
+ engines: {node: '>=18.0.0'}
+
'@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
@@ -441,6 +593,10 @@ packages:
resolution: {integrity: sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==}
engines: {node: '>=6.9.0'}
+ '@babel/core@7.24.5':
+ resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.27.3':
resolution: {integrity: sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==}
engines: {node: '>=6.9.0'}
@@ -518,6 +674,11 @@ packages:
resolution: {integrity: sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==}
engines: {node: '>=6.9.0'}
+ '@babel/parser@7.24.5':
+ resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/parser@7.27.3':
resolution: {integrity: sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==}
engines: {node: '>=6.0.0'}
@@ -693,6 +854,18 @@ packages:
'@emotion/hash@0.9.2':
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+ '@emotion/is-prop-valid@0.8.8':
+ resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
+
+ '@emotion/memoize@0.7.4':
+ resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==}
+
+ '@esbuild/aix-ppc64@0.19.11':
+ resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/aix-ppc64@0.21.5':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
@@ -711,6 +884,12 @@ packages:
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.19.11':
+ resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm64@0.21.5':
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
engines: {node: '>=12'}
@@ -735,6 +914,12 @@ packages:
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.19.11':
+ resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-arm@0.21.5':
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
@@ -753,6 +938,12 @@ packages:
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.19.11':
+ resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/android-x64@0.21.5':
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
@@ -771,6 +962,12 @@ packages:
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.19.11':
+ resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-arm64@0.21.5':
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
engines: {node: '>=12'}
@@ -789,6 +986,12 @@ packages:
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.19.11':
+ resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.21.5':
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
engines: {node: '>=12'}
@@ -807,6 +1010,12 @@ packages:
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.19.11':
+ resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-arm64@0.21.5':
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
@@ -825,6 +1034,12 @@ packages:
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.19.11':
+ resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.21.5':
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
engines: {node: '>=12'}
@@ -843,6 +1058,12 @@ packages:
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.19.11':
+ resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm64@0.21.5':
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
engines: {node: '>=12'}
@@ -861,6 +1082,12 @@ packages:
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.19.11':
+ resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-arm@0.21.5':
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
@@ -879,6 +1106,12 @@ packages:
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.19.11':
+ resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-ia32@0.21.5':
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
@@ -903,6 +1136,12 @@ packages:
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.19.11':
+ resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-loong64@0.21.5':
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
engines: {node: '>=12'}
@@ -921,6 +1160,12 @@ packages:
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.19.11':
+ resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.21.5':
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
engines: {node: '>=12'}
@@ -939,6 +1184,12 @@ packages:
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.19.11':
+ resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.21.5':
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
@@ -957,6 +1208,12 @@ packages:
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.19.11':
+ resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.21.5':
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
@@ -975,6 +1232,12 @@ packages:
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.19.11':
+ resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-s390x@0.21.5':
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
@@ -993,6 +1256,12 @@ packages:
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.19.11':
+ resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/linux-x64@0.21.5':
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
engines: {node: '>=12'}
@@ -1017,6 +1286,12 @@ packages:
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.19.11':
+ resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
'@esbuild/netbsd-x64@0.21.5':
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
engines: {node: '>=12'}
@@ -1041,6 +1316,12 @@ packages:
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.19.11':
+ resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.21.5':
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
engines: {node: '>=12'}
@@ -1059,6 +1340,12 @@ packages:
cpu: [x64]
os: [sunos]
+ '@esbuild/sunos-x64@0.19.11':
+ resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/sunos-x64@0.21.5':
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
@@ -1077,6 +1364,12 @@ packages:
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.19.11':
+ resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-arm64@0.21.5':
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
engines: {node: '>=12'}
@@ -1095,6 +1388,12 @@ packages:
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.19.11':
+ resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-ia32@0.21.5':
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
@@ -1113,6 +1412,12 @@ packages:
cpu: [x64]
os: [win32]
+ '@esbuild/win32-x64@0.19.11':
+ resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
'@esbuild/win32-x64@0.21.5':
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
engines: {node: '>=12'}
@@ -1197,6 +1502,9 @@ packages:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/source-map@0.3.6':
+ resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
+
'@jridgewell/sourcemap-codec@1.5.0':
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
@@ -1218,6 +1526,9 @@ packages:
'@mjackson/headers@0.10.0':
resolution: {integrity: sha512-U1Eu1gF979k7ZoIBsJyD+T5l9MjtPONsZfoXfktsQHPJD0s7SokBGx+tLKDLsOY+gzVYAWS0yRFDNY8cgbQzWQ==}
+ '@mjackson/headers@0.9.0':
+ resolution: {integrity: sha512-1WFCu2iRaqbez9hcYYI611vcH1V25R+fDfOge/CyKc8sdbzniGfy/FRhNd3DgvFF4ZEEX2ayBrvFHLtOpfvadw==}
+
'@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3':
resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==}
cpu: [arm64]
@@ -1251,6 +1562,68 @@ packages:
'@napi-rs/wasm-runtime@0.2.10':
resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==}
+ '@next/env@14.1.4':
+ resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
+
+ '@next/swc-darwin-arm64@14.1.4':
+ resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@next/swc-darwin-x64@14.1.4':
+ resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@next/swc-linux-arm64-gnu@14.1.4':
+ resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-arm64-musl@14.1.4':
+ resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-x64-gnu@14.1.4':
+ resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-linux-x64-musl@14.1.4':
+ resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-win32-arm64-msvc@14.1.4':
+ resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@next/swc-win32-ia32-msvc@14.1.4':
+ resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@next/swc-win32-x64-msvc@14.1.4':
+ resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@nichtsam/remix-auth-email-link@3.0.0':
+ resolution: {integrity: sha512-Bfyslhaly+UAIBjXhrM86r/f/hphZzKgAWiI4yAMTnemiL6cHksS5fNqisv3A2VYE4ECpxYsNKNQsqd2UJtOVQ==}
+ peerDependencies:
+ remix-auth: ^4.0.0
+
'@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
@@ -1286,6 +1659,9 @@ packages:
resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ '@one-ini/wasm@0.1.1':
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+
'@opentelemetry/api@1.9.0':
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
@@ -1327,9 +1703,15 @@ packages:
'@prisma/engines@5.4.1':
resolution: {integrity: sha512-vJTdY4la/5V3N7SFvWRmSMUh4mIQnyb/MNoDjzVbh9iLmEC+uEykj/1GPviVsorvfz7DbYSQC4RiwmlEpTEvGA==}
+ '@radix-ui/colors@1.0.1':
+ resolution: {integrity: sha512-xySw8f0ZVsAEP+e7iLl3EvcBXX7gsIlC1Zso/sPBW9gIWerBTgz6axrjU+MZ39wD+WFi5h5zdWpsg3+hwt2Qsg==}
+
'@radix-ui/number@1.1.1':
resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
+ '@radix-ui/primitive@1.1.0':
+ resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
+
'@radix-ui/primitive@1.1.2':
resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==}
@@ -1359,6 +1741,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-arrow@1.1.0':
+ resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-arrow@1.1.7':
resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
peerDependencies:
@@ -1398,6 +1793,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-collapsible@1.1.0':
+ resolution: {integrity: sha512-zQY7Epa8sTL0mq4ajSJpjgn2YmCgyrG7RsQgLp3C0LQVkG7+Tf6Pv1CeNWZLyqMjhdPkBa5Lx7wYBeSu7uCSTA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-collapsible@1.1.11':
resolution: {integrity: sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==}
peerDependencies:
@@ -1411,6 +1819,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-collection@1.1.0':
+ resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-collection@1.1.7':
resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
peerDependencies:
@@ -1424,6 +1845,24 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-compose-refs@1.0.1':
+ resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.0':
+ resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-compose-refs@1.1.2':
resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
peerDependencies:
@@ -1433,6 +1872,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-context@1.1.0':
+ resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-context@1.1.2':
resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
peerDependencies:
@@ -1455,6 +1903,15 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-direction@1.1.0':
+ resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-direction@1.1.1':
resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
peerDependencies:
@@ -1464,6 +1921,19 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-dismissable-layer@1.1.0':
+ resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-dismissable-layer@1.1.10':
resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==}
peerDependencies:
@@ -1490,6 +1960,15 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-focus-guards@1.1.0':
+ resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-focus-guards@1.1.2':
resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==}
peerDependencies:
@@ -1499,6 +1978,19 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-focus-scope@1.1.0':
+ resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-focus-scope@1.1.7':
resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
peerDependencies:
@@ -1517,6 +2009,15 @@ packages:
peerDependencies:
react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
+ '@radix-ui/react-id@1.1.0':
+ resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-id@1.1.1':
resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
peerDependencies:
@@ -1552,6 +2053,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-popover@1.1.1':
+ resolution: {integrity: sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-popover@1.1.14':
resolution: {integrity: sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==}
peerDependencies:
@@ -1565,6 +2079,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-popper@1.2.0':
+ resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-popper@1.2.7':
resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==}
peerDependencies:
@@ -1578,6 +2105,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-portal@1.1.1':
+ resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-portal@1.1.9':
resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
peerDependencies:
@@ -1591,6 +2131,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-presence@1.1.0':
+ resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-presence@1.1.4':
resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==}
peerDependencies:
@@ -1604,6 +2157,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-primitive@2.0.0':
+ resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-primitive@2.1.3':
resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
peerDependencies:
@@ -1617,6 +2183,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-roving-focus@1.1.0':
+ resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-roving-focus@1.1.10':
resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==}
peerDependencies:
@@ -1669,6 +2248,24 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-slot@1.0.2':
+ resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-slot@1.1.0':
+ resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-slot@1.2.3':
resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
peerDependencies:
@@ -1717,6 +2314,45 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-toggle-group@1.1.0':
+ resolution: {integrity: sha512-PpTJV68dZU2oqqgq75Uzto5o/XfOVgkrJ9rulVmfTKxWp3HfUjHE6CP/WLRR4AzPX9HWxw7vFow2me85Yu+Naw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-toggle@1.1.0':
+ resolution: {integrity: sha512-gwoxaKZ0oJ4vIgzsfESBuSgJNdc0rv12VhHgcqN0TEJmmZixXG/2XpsLK8kzNWYcnaoRIEEQc0bEi3dIvdUpjw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.1.1':
+ resolution: {integrity: sha512-LLE8nzNE4MzPMw3O2zlVlkLFid3y9hMUs7uCbSHyKSo+tCN4yMCf+ZCCcfrYgsOC0TiHBPQ1mtpJ2liY3ZT3SQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-tooltip@1.2.7':
resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==}
peerDependencies:
@@ -1730,6 +2366,15 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-use-callback-ref@1.1.0':
+ resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-callback-ref@1.1.1':
resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
peerDependencies:
@@ -1739,6 +2384,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-controllable-state@1.1.0':
+ resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-controllable-state@1.2.2':
resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
peerDependencies:
@@ -1757,6 +2411,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-escape-keydown@1.1.0':
+ resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-escape-keydown@1.1.1':
resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
peerDependencies:
@@ -1775,6 +2438,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-layout-effect@1.1.0':
+ resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-layout-effect@1.1.1':
resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
peerDependencies:
@@ -1793,6 +2465,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-rect@1.1.0':
+ resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-rect@1.1.1':
resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
peerDependencies:
@@ -1802,6 +2483,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-size@1.1.0':
+ resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-size@1.1.1':
resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
peerDependencies:
@@ -1811,6 +2501,19 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-visually-hidden@1.1.0':
+ resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-visually-hidden@1.2.3':
resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
peerDependencies:
@@ -1824,9 +2527,141 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/rect@1.1.0':
+ resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+
'@radix-ui/rect@1.1.1':
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
+ '@react-email/body@0.0.7':
+ resolution: {integrity: sha512-vjJ5P1MUNWV0KNivaEWA6MGj/I3c764qQJMsKjCHlW6mkFJ4SXbm2OlQFtKAb++Bj8LDqBlnE6oW77bWcMc0NA==}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/button@0.0.14':
+ resolution: {integrity: sha512-SMk40moGcAvkHIALX4XercQlK0PNeeEIam6OXHw68ea9WtzzqVwiK4pzLY0iiMI9B4xWHcaS2lCPf3cKbQBf1Q==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/code-block@0.0.3':
+ resolution: {integrity: sha512-nxhl7WjjM2cOYtl0boBZfSObTrUCz2LbarcMyHkTVAsA9rbjbtWAQF7jmlefXJusk3Uol5l2c8hTh2lHLlHTRQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/code-inline@0.0.1':
+ resolution: {integrity: sha512-SeZKTB9Q4+TUafzeUm/8tGK3dFgywUHb1od/BrAiJCo/im65aT+oJfggJLjK2jCdSsus8odcK2kReeM3/FCNTQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/column@0.0.9':
+ resolution: {integrity: sha512-1ekqNBgmbS6m97/sUFOnVvQtLYljUWamw8Y44VId95v6SjiJ4ca+hMcdOteHWBH67xkRofEOWTvqDRea5SBV8w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/components@0.0.16':
+ resolution: {integrity: sha512-1WATpMSH03cRvhfNjGl/Up3seZJOzN9KLzlk3Q9g/cqNhZEJ7HYxoZM4AQKAI0V3ttXzzxKv8Oj+AZQLHDiICA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/container@0.0.11':
+ resolution: {integrity: sha512-jzl/EHs0ClXIRFamfH+NR/cqv4GsJJscqRhdYtnWYuRAsWpKBM1muycrrPqIVhWvWi6sFHInWTt07jX+bDc3SQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/font@0.0.5':
+ resolution: {integrity: sha512-if/qKYmH3rJ2egQJoKbV8SfKCPavu+ikUq/naT/UkCr8Q0lkk309tRA0x7fXG/WeIrmcipjMzFRGTm2TxTecDw==}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/head@0.0.7':
+ resolution: {integrity: sha512-IcXL4jc0H1qzAXJCD9ajcRFBQdbUHkjKJyiUeogpaYSVZSq6cVDWQuGaI23TA9k+pI2TFeQimogUFb3Kgeeudw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/heading@0.0.11':
+ resolution: {integrity: sha512-EF5ZtRCxhHPw3m+8iibKKg0RAvAeHj1AP68sjU7s6+J+kvRgllr/E972Wi5Y8UvcIGossCvpX1WrSMDzeB4puA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/hr@0.0.7':
+ resolution: {integrity: sha512-8suK0M/deXHt0DBSeKhSC4bnCBCBm37xk6KJh9M0/FIKlvdltQBem52YUiuqVl1XLB87Y6v6tvspn3SZ9fuxEA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/html@0.0.7':
+ resolution: {integrity: sha512-oy7OoRtoOKApVI/5Lz1OZptMKmMYJu9Xn6+lOmdBQchAuSdQtWJqxhrSj/iI/mm8HZWo6MZEQ6SFpfOuf8/P6Q==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/img@0.0.7':
+ resolution: {integrity: sha512-up9tM2/dJ24u/CFjcvioKbyGuPw1yeJg605QA7VkrygEhd0CoQEjjgumfugpJ+VJgIt4ZjT9xMVCK5QWTIWoaA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/link@0.0.7':
+ resolution: {integrity: sha512-hXPChT3ZMyKnUSA60BLEMD2maEgyB2A37yg5bASbLMrXmsExHi6/IS1h2XiUPLDK4KqH5KFaFxi2cdNo1JOKwA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/markdown@0.0.9':
+ resolution: {integrity: sha512-t//19Zz+W5svKqrSrqoOLpf6dq70jbwYxX8Z+NEMi4LqylklccOaYAyKrkYyulfZwhW7KDH9d2wjVk5jfUABxQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/preview@0.0.8':
+ resolution: {integrity: sha512-Jm0KUYBZQd2w0s2QRMQy0zfHdo3Ns+9bYSE1OybjknlvhANirjuZw9E5KfWgdzO7PyrRtB1OBOQD8//Obc4uIQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/render@0.0.12':
+ resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==}
+ engines: {node: '>=18.0.0'}
+
+ '@react-email/render@0.0.16':
+ resolution: {integrity: sha512-wDaMy27xAq1cJHtSFptp0DTKPuV2GYhloqia95ub/DH9Dea1aWYsbdM918MOc/b/HvVS3w1z8DWzfAk13bGStQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.2.0
+ react-dom: ^18.2.0
+
+ '@react-email/row@0.0.7':
+ resolution: {integrity: sha512-h7pwrLVGk5CIx7Ai/oPxBgCCAGY7BEpCUQ7FCzi4+eThcs5IdjSwDPefLEkwaFS8KZc56UNwTAH92kNq5B7blg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/section@0.0.11':
+ resolution: {integrity: sha512-3bZ/DuvX1julATI7oqYza6pOtWZgLJDBaa62LFFEvYjisyN+k6lrP2KOucPsDKu2DOkUzlQgK0FOm6VQJX+C0w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/tailwind@0.0.15':
+ resolution: {integrity: sha512-TE3NQ7VKhhvv3Zv0Z1NtoV6AF7aOWiG4juVezMZw1hZCG0mkN6iXC63u23vPQi12y6xCp20ZUHfg67kQeDSP/g==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
+ '@react-email/text@0.0.7':
+ resolution: {integrity: sha512-eHCx0mdllGcgK9X7wiLKjNZCBRfxRVNjD3NNYRmOc3Icbl8M9JHriJIfxBuGCmGg2UAORK5P3KmaLQ8b99/pbA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: 18.2.0
+
'@remix-run/changelog-github@0.0.5':
resolution: {integrity: sha512-43tqwUqWqirbv6D9uzo55ASPsCJ61Ein1k/M8qn+Qpros0MmbmuzjLVPmtaxfxfe2ANX0LefLvCD0pAgr1tp4g==}
@@ -2074,6 +2909,262 @@ packages:
'@rushstack/eslint-patch@1.11.0':
resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
+
+ '@smithy/abort-controller@4.0.4':
+ resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/config-resolver@4.1.4':
+ resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/core@3.5.3':
+ resolution: {integrity: sha512-xa5byV9fEguZNofCclv6v9ra0FYh5FATQW/da7FQUVTic94DfrN/NvmKZjrMyzbpqfot9ZjBaO8U1UeTbmSLuA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/credential-provider-imds@4.0.6':
+ resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/fetch-http-handler@5.0.4':
+ resolution: {integrity: sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/hash-node@4.0.4':
+ resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/invalid-dependency@4.0.4':
+ resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/is-array-buffer@2.2.0':
+ resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/is-array-buffer@4.0.0':
+ resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-content-length@4.0.4':
+ resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-endpoint@4.1.11':
+ resolution: {integrity: sha512-zDogwtRLzKl58lVS8wPcARevFZNBOOqnmzWWxVe9XiaXU2CADFjvJ9XfNibgkOWs08sxLuSr81NrpY4mgp9OwQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-retry@4.1.12':
+ resolution: {integrity: sha512-wvIH70c4e91NtRxdaLZF+mbLZ/HcC6yg7ySKUiufL6ESp6zJUSnJucZ309AvG9nqCFHSRB5I6T3Ez1Q9wCh0Ww==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-serde@4.0.8':
+ resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-stack@4.0.4':
+ resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/node-config-provider@4.1.3':
+ resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/node-http-handler@4.0.6':
+ resolution: {integrity: sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/property-provider@4.0.4':
+ resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/protocol-http@5.1.2':
+ resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/querystring-builder@4.0.4':
+ resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/querystring-parser@4.0.4':
+ resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/service-error-classification@4.0.5':
+ resolution: {integrity: sha512-LvcfhrnCBvCmTee81pRlh1F39yTS/+kYleVeLCwNtkY8wtGg8V/ca9rbZZvYIl8OjlMtL6KIjaiL/lgVqHD2nA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/shared-ini-file-loader@4.0.4':
+ resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/signature-v4@5.1.2':
+ resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/smithy-client@4.4.3':
+ resolution: {integrity: sha512-xxzNYgA0HD6ETCe5QJubsxP0hQH3QK3kbpJz3QrosBCuIWyEXLR/CO5hFb2OeawEKUxMNhz3a1nuJNN2np2RMA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/types@4.3.1':
+ resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/url-parser@4.0.4':
+ resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-base64@4.0.0':
+ resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-body-length-browser@4.0.0':
+ resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-body-length-node@4.0.0':
+ resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-buffer-from@2.2.0':
+ resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-buffer-from@4.0.0':
+ resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-config-provider@4.0.0':
+ resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-defaults-mode-browser@4.0.19':
+ resolution: {integrity: sha512-mvLMh87xSmQrV5XqnUYEPoiFFeEGYeAKIDDKdhE2ahqitm8OHM3aSvhqL6rrK6wm1brIk90JhxDf5lf2hbrLbQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-defaults-mode-node@4.0.19':
+ resolution: {integrity: sha512-8tYnx+LUfj6m+zkUUIrIQJxPM1xVxfRBvoGHua7R/i6qAxOMjqR6CpEpDwKoIs1o0+hOjGvkKE23CafKL0vJ9w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-endpoints@3.0.6':
+ resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-hex-encoding@4.0.0':
+ resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-middleware@4.0.4':
+ resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-retry@4.0.5':
+ resolution: {integrity: sha512-V7MSjVDTlEt/plmOFBn1762Dyu5uqMrV2Pl2X0dYk4XvWfdWJNe9Bs5Bzb56wkCuiWjSfClVMGcsuKrGj7S/yg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-stream@4.2.2':
+ resolution: {integrity: sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-uri-escape@4.0.0':
+ resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-utf8@2.3.0':
+ resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-utf8@4.0.0':
+ resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/util-waiter@4.0.5':
+ resolution: {integrity: sha512-4QvC49HTteI1gfemu0I1syWovJgPvGn7CVUoN9ZFkdvr/cCFkrEL7qNCdx/2eICqDWEGnnr68oMdSIPCLAriSQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@socket.io/component-emitter@3.1.2':
+ resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+
+ '@swc/core-darwin-arm64@1.3.101':
+ resolution: {integrity: sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.3.101':
+ resolution: {integrity: sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.3.101':
+ resolution: {integrity: sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.3.101':
+ resolution: {integrity: sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-arm64-musl@1.3.101':
+ resolution: {integrity: sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-x64-gnu@1.3.101':
+ resolution: {integrity: sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-linux-x64-musl@1.3.101':
+ resolution: {integrity: sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-win32-arm64-msvc@1.3.101':
+ resolution: {integrity: sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.3.101':
+ resolution: {integrity: sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.3.101':
+ resolution: {integrity: sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.3.101':
+ resolution: {integrity: sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': ^0.5.0
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/helpers@0.5.2':
+ resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
+
+ '@swc/types@0.1.23':
+ resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==}
+
'@tailwindcss/container-queries@0.1.1':
resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==}
peerDependencies:
@@ -2221,6 +3312,9 @@ packages:
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+ '@types/cors@2.8.19':
+ resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
+
'@types/d3-array@3.2.1':
resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
@@ -2320,6 +3414,12 @@ packages:
'@types/diff-match-patch@1.0.36':
resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
+ '@types/eslint-scope@3.7.7':
+ resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
+
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
@@ -2374,6 +3474,9 @@ packages:
'@types/node@22.15.21':
resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==}
+ '@types/nodemailer@6.4.17':
+ resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==}
+
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -2394,9 +3497,18 @@ packages:
peerDependencies:
'@types/react': ^18.0.0
+ '@types/react@18.2.47':
+ resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==}
+
+ '@types/react@18.2.69':
+ resolution: {integrity: sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q==}
+
'@types/react@18.3.23':
resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==}
+ '@types/scheduler@0.26.0':
+ resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==}
+
'@types/semver@7.7.0':
resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==}
@@ -2409,6 +3521,9 @@ packages:
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
+ '@types/webpack@5.28.5':
+ resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
+
'@typescript-eslint/eslint-plugin@5.62.0':
resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2628,9 +3743,64 @@ packages:
'@web3-storage/multipart-parser@1.0.0':
resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==}
+ '@webassemblyjs/ast@1.14.1':
+ resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2':
+ resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
+
+ '@webassemblyjs/helper-api-error@1.13.2':
+ resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
+
+ '@webassemblyjs/helper-buffer@1.14.1':
+ resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2':
+ resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
+
+ '@webassemblyjs/ieee754@1.13.2':
+ resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
+
+ '@webassemblyjs/leb128@1.13.2':
+ resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
+
+ '@webassemblyjs/utf8@1.13.2':
+ resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
+
+ '@xtuc/ieee754@1.2.0':
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ '@xtuc/long@4.2.2':
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
'@zxing/text-encoding@0.9.0':
resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
@@ -2675,9 +3845,25 @@ packages:
react:
optional: true
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-keywords@5.1.0:
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@@ -2706,6 +3892,9 @@ packages:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -2787,6 +3976,13 @@ packages:
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines: {node: '>= 0.4'}
+ autoprefixer@10.4.14:
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
autoprefixer@10.4.21:
resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -2819,6 +4015,10 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ base64id@2.0.0:
+ resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
+ engines: {node: ^4.5.0 || >= 5.9}
+
basic-auth@2.0.1:
resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
engines: {node: '>= 0.8'}
@@ -2838,6 +4038,9 @@ packages:
resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ bowser@2.11.0:
+ resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -2871,6 +4074,10 @@ packages:
bullmq@5.53.2:
resolution: {integrity: sha512-xHgxrP/yNJHD7VCw1h+eRBh+2TCPBCM39uC9gCyksYc6ufcJP+HTZ/A2lzB2x7qMFWrvsX7tM40AT2BmdkYL/Q==}
+ busboy@1.6.0:
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
+ engines: {node: '>=10.16.0'}
+
bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
@@ -2944,6 +4151,10 @@ packages:
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+ chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@@ -2959,6 +4170,10 @@ packages:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
+ chrome-trace-event@1.0.4:
+ resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
+ engines: {node: '>=6.0'}
+
ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
@@ -2978,6 +4193,9 @@ packages:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
+ client-only@0.0.1:
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+
cliui@6.0.0:
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
@@ -2993,6 +4211,10 @@ packages:
resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
engines: {node: '>=6'}
+ clsx@2.1.0:
+ resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
+ engines: {node: '>=6'}
+
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -3023,6 +4245,21 @@ packages:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+ commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+
+ commander@11.1.0:
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
commander@5.1.0:
resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
engines: {node: '>= 6'}
@@ -3048,6 +4285,9 @@ packages:
confbox@0.2.2:
resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+ config-chain@1.1.13:
+ resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
+
content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
@@ -3084,6 +4324,10 @@ packages:
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ cors@2.8.5:
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ engines: {node: '>= 0.10'}
+
cosmiconfig@9.0.0:
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
@@ -3109,6 +4353,9 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ crypto-js@4.2.0:
+ resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
+
css-loader@6.11.0:
resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==}
engines: {node: '>= 12.13.0'}
@@ -3304,6 +4551,10 @@ packages:
dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+ debounce@2.0.0:
+ resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==}
+ engines: {node: '>=18'}
+
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -3320,6 +4571,15 @@ packages:
supports-color:
optional: true
+ debug@4.3.7:
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@4.4.1:
resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
engines: {node: '>=6.0'}
@@ -3411,6 +4671,9 @@ packages:
engines: {node: '>=0.8.0'}
hasBin: true
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
diff-match-patch@1.0.5:
resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
@@ -3422,6 +4685,9 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -3436,6 +4702,19 @@ packages:
dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
+
dotenv-cli@7.4.4:
resolution: {integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==}
hasBin: true
@@ -3466,6 +4745,11 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ editorconfig@1.0.4:
+ resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
+ engines: {node: '>=14'}
+ hasBin: true
+
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -3489,6 +4773,17 @@ packages:
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ engine.io-client@6.5.4:
+ resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==}
+
+ engine.io-parser@5.2.3:
+ resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+ engines: {node: '>=10.0.0'}
+
+ engine.io@6.5.5:
+ resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==}
+ engines: {node: '>=10.2.0'}
+
enhanced-resolve@5.18.1:
resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
@@ -3497,6 +4792,10 @@ packages:
resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
engines: {node: '>=8.6'}
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
@@ -3681,6 +4980,11 @@ packages:
engines: {node: '>=12'}
hasBin: true
+ esbuild@0.19.11:
+ resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==}
+ engines: {node: '>=12'}
+ hasBin: true
+
esbuild@0.21.5:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
@@ -3712,6 +5016,17 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
+ eslint-config-prettier@9.0.0:
+ resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-config-turbo@1.10.12:
+ resolution: {integrity: sha512-z3jfh+D7UGYlzMWGh+Kqz++hf8LOE96q3o5R8X4HTjmxaBWlLAWG+0Ounr38h+JLR2TJno0hU9zfzoPNkR9BdA==}
+ peerDependencies:
+ eslint: '>6.6.0'
+
eslint-import-resolver-node@0.3.7:
resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
@@ -3817,6 +5132,11 @@ packages:
peerDependencies:
eslint: ^7.5.0 || ^8.0.0
+ eslint-plugin-turbo@1.10.12:
+ resolution: {integrity: sha512-uNbdj+ohZaYo4tFJ6dStRXu2FZigwulR1b3URPXe0Q8YaE7thuekKNP+54CHtZPH9Zey9dmDx5btAQl9mfzGOw==}
+ peerDependencies:
+ eslint: '>6.6.0'
+
eslint-plugin-turbo@2.5.3:
resolution: {integrity: sha512-DlXZd+LgpDlxH/6IsiAXLhy82x0jeJDm0XBEqP6Le08uy0HBQkjCUt7SmXNp8esAtX9RYe6oDClbNbmI1jtK5g==}
peerDependencies:
@@ -3919,6 +5239,10 @@ packages:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
+ events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
@@ -3944,6 +5268,9 @@ packages:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
+ fast-deep-equal@2.0.1:
+ resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -3957,6 +5284,13 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ fast-uri@3.0.6:
+ resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+
+ fast-xml-parser@4.4.1:
+ resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
+ hasBin: true
+
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
@@ -4023,6 +5357,17 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+ framer-motion@10.17.4:
+ resolution: {integrity: sha512-CYBSs6cWfzcasAX8aofgKFZootmkQtR4qxbfTOksBLny/lbUfkGbQAFOS3qnl6Uau1N9y8tUpI7mVIrHgkFjLQ==}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -4114,6 +5459,14 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
+ glob@10.3.4:
+ resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
glob@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
@@ -4215,6 +5568,13 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
+ html-to-text@9.0.5:
+ resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==}
+ engines: {node: '>=14'}
+
+ htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+
http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: '>= 0.8'}
@@ -4266,6 +5626,9 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
@@ -4485,6 +5848,10 @@ packages:
resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
engines: {node: '>= 0.4'}
+ jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
+
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
@@ -4495,6 +5862,10 @@ packages:
javascript-stringify@2.1.0:
resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
jiti@1.21.7:
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
hasBin: true
@@ -4506,6 +5877,15 @@ packages:
jose@5.10.0:
resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==}
+ js-beautify@1.15.4:
+ resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ js-cookie@3.0.5:
+ resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
+ engines: {node: '>=14'}
+
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -4535,6 +5915,9 @@ packages:
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
json-schema@0.4.0:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
@@ -4583,6 +5966,9 @@ packages:
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines: {node: '>=0.10'}
+ leac@0.6.0:
+ resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
+
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -4651,6 +6037,10 @@ packages:
resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
engines: {node: '>= 12.0.0'}
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
@@ -4662,6 +6052,10 @@ packages:
resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
engines: {node: '>=6'}
+ loader-runner@4.3.0:
+ resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ engines: {node: '>=6.11.5'}
+
loader-utils@3.3.1:
resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==}
engines: {node: '>= 12.13.0'}
@@ -4761,10 +6155,20 @@ packages:
resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==}
engines: {node: '>=0.10.0'}
+ marked@7.0.4:
+ resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==}
+ engines: {node: '>= 16'}
+ hasBin: true
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
+ md-to-react-email@5.0.2:
+ resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==}
+ peerDependencies:
+ react: 18.x
+
mdast-util-definitions@5.1.2:
resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==}
@@ -4950,6 +6354,10 @@ packages:
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@9.0.1:
+ resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -5045,6 +6453,9 @@ packages:
msgpackr@1.11.4:
resolution: {integrity: sha512-uaff7RG9VIC4jacFW9xzL3jc0iM32DNHe4jYVycBcjUePT/Klnfj7pqtWJt9khvDFizmjN2TlYniYmSS2LIaZg==}
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -5069,6 +6480,9 @@ packages:
resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==}
engines: {node: '>= 0.6'}
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
neo4j-driver-bolt-connection@5.28.1:
resolution: {integrity: sha512-nY8GBhjOW7J0rDtpiyJn6kFdk2OiNVZZhZrO8//mwNXnf5VQJ6HqZQTDthH/9pEaX0Jvbastz1xU7ZL8xzqY0w==}
@@ -5078,6 +6492,21 @@ packages:
neo4j-driver@5.28.1:
resolution: {integrity: sha512-jbyBwyM0a3RLGcP43q3hIxPUPxA+1bE04RovOKdNAS42EtBMVCKcPSeOvWiHxgXp1ZFd0a8XqK+7LtguInOLUg==}
+ next@14.1.4:
+ resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
+ engines: {node: '>=18.17.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ sass:
+ optional: true
+
node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
@@ -5100,9 +6529,18 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ nodemailer@6.10.1:
+ resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==}
+ engines: {node: '>=6.0.0'}
+
non.geist@1.0.4:
resolution: {integrity: sha512-2spmLTgz5ipZrFGLiI1YkiHb8Yit0yFySPvWzal3wCwCFilMFQQ/Jwwz4lcEatwIKUpOeMYwyFwP8MJ8EVKqGA==}
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -5152,6 +6590,10 @@ packages:
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
engines: {node: '>= 6'}
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
@@ -5278,6 +6720,9 @@ packages:
resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==}
engines: {node: '>=6'}
+ parseley@0.12.1:
+ resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -5318,6 +6763,9 @@ packages:
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+ peberminta@0.9.0:
+ resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
+
peek-stream@1.1.3:
resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==}
@@ -5351,6 +6799,10 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
pkg-dir@4.2.0:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
@@ -5374,6 +6826,12 @@ packages:
postcss-functions@3.0.0:
resolution: {integrity: sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ==}
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
postcss-import@16.1.0:
resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==}
engines: {node: '>=18.0.0'}
@@ -5383,6 +6841,12 @@ packages:
postcss-js@2.0.3:
resolution: {integrity: sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==}
+ postcss-js@4.0.1:
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
postcss-load-config@4.0.2:
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
@@ -5440,6 +6904,12 @@ packages:
postcss-nested@4.2.3:
resolution: {integrity: sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==}
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
postcss-selector-parser@6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
@@ -5470,6 +6940,14 @@ packages:
resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==}
engines: {node: '>=6.0.0'}
+ postcss@8.4.31:
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ postcss@8.4.38:
+ resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
+ engines: {node: ^10 || ^12 || >=14}
+
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
@@ -5573,6 +7051,11 @@ packages:
resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==}
engines: {node: '>=10'}
+ prism-react-renderer@2.1.0:
+ resolution: {integrity: sha512-I5cvXHjA1PVGbGm1MsWCpvBCRrYyxEri0MC7/JbfIfYfcXAxHyO5PaUjs3A8H5GW6kJcLhTHxxMaOZZpRZD2iQ==}
+ peerDependencies:
+ react: '>=16.0.0'
+
prism-react-renderer@2.4.1:
resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==}
peerDependencies:
@@ -5583,6 +7066,10 @@ packages:
engines: {node: '>=16.13'}
hasBin: true
+ prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+
proc-log@3.0.0:
resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -5608,6 +7095,9 @@ packages:
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+ proto-list@1.2.4:
+ resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
+
proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -5646,6 +7136,9 @@ packages:
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
engines: {node: '>=8'}
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -5654,11 +7147,21 @@ packages:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
+ react-dom@18.2.0:
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
+ peerDependencies:
+ react: ^18.2.0
+
react-dom@18.3.1:
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
react: ^18.3.1
+ react-email@2.1.6:
+ resolution: {integrity: sha512-BtR9VI1CMq4953wfiBmzupKlWcRThaWG2dDgl1vWAllK3tNNmJNerwY4VlmASRDQZE3LpLXU3+lf8N/VAKdbZQ==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -5668,6 +7171,9 @@ packages:
react-lifecycles-compat@3.0.4:
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
+ react-promise-suspense@0.3.4:
+ resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==}
+
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
@@ -5682,6 +7188,16 @@ packages:
'@types/react':
optional: true
+ react-remove-scroll@2.5.7:
+ resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react-remove-scroll@2.7.1:
resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==}
engines: {node: '>=10'}
@@ -5727,6 +7243,10 @@ packages:
react: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react@18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ engines: {node: '>=0.10.0'}
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -5860,6 +7380,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
require-like@0.1.2:
resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
@@ -5870,6 +7394,10 @@ packages:
resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==}
engines: {node: '>=0.10.5'}
+ resend@3.5.0:
+ resolution: {integrity: sha512-bKu4LhXSecP6krvhfDzyDESApYdNfjirD5kykkT1xO0Cj9TKSiGh5Void4pGTs3Am+inSnp4dg0B5XzdwHBJOQ==}
+ engines: {node: '>=18'}
+
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -5961,9 +7489,16 @@ packages:
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+ schema-utils@4.3.2:
+ resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
+ engines: {node: '>= 10.13.0'}
+
secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
+ selderee@0.11.0:
+ resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
+
semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
@@ -5981,6 +7516,9 @@ packages:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
serve-static@1.16.2:
resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
engines: {node: '>= 0.8.0'}
@@ -6057,6 +7595,31 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ socket.io-adapter@2.5.5:
+ resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
+
+ socket.io-client@4.7.3:
+ resolution: {integrity: sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==}
+ engines: {node: '>=10.0.0'}
+
+ socket.io-parser@4.2.4:
+ resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
+ engines: {node: '>=10.0.0'}
+
+ socket.io@4.7.3:
+ resolution: {integrity: sha512-SE+UIQXBQE+GPG2oszWMlsEmWtHVqw/h1VrYJGK5/MC7CH5p58N448HwIrtREcvR4jfdOJAY4ieQfxMr55qbbw==}
+ engines: {node: '>=10.2.0'}
+
+ sonner@1.3.1:
+ resolution: {integrity: sha512-+rOAO56b2eI3q5BtgljERSn2umRk63KFIvgb2ohbZ5X+Eb5u+a/7/0ZgswYqgBMg8dyl7n6OXd9KasA8QF9ToA==}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+
+ source-map-js@1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -6100,6 +7663,10 @@ packages:
stable-hash@0.0.5:
resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
+ stacktrace-parser@0.1.10:
+ resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
+ engines: {node: '>=6'}
+
standard-as-callback@2.1.0:
resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
@@ -6120,6 +7687,10 @@ packages:
stream-transform@2.1.3:
resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
+ streamsearch@1.1.0:
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
+ engines: {node: '>=10.0.0'}
+
string-hash@1.1.3:
resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==}
@@ -6187,9 +7758,30 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
+ strnum@1.1.2:
+ resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
+
style-to-object@0.4.4:
resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
+ styled-jsx@5.1.1:
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@babel/core': '*'
+ babel-plugin-macros: '*'
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ babel-plugin-macros:
+ optional: true
+
+ sucrase@3.35.0:
+ resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -6202,6 +7794,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -6211,6 +7807,9 @@ packages:
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ tailwind-merge@2.2.0:
+ resolution: {integrity: sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==}
+
tailwind-merge@2.6.0:
resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
@@ -6238,6 +7837,11 @@ packages:
engines: {node: '>=8.9.0'}
hasBin: true
+ tailwindcss@3.4.0:
+ resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
tailwindcss@4.1.7:
resolution: {integrity: sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==}
@@ -6264,9 +7868,37 @@ packages:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'}
+ terser-webpack-plugin@5.3.14:
+ resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
+ terser@5.42.0:
+ resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
throttleit@2.1.0:
resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
engines: {node: '>=18'}
@@ -6315,6 +7947,9 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
tsconfck@3.1.6:
resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
engines: {node: ^18 || >=20}
@@ -6402,6 +8037,10 @@ packages:
resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
engines: {node: '>=8'}
+ type-fest@0.7.1:
+ resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
+ engines: {node: '>=8'}
+
type-fest@0.8.1:
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
engines: {node: '>=8'}
@@ -6430,6 +8069,11 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
+ typescript@5.1.6:
+ resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
typescript@5.5.4:
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
engines: {node: '>=14.17'}
@@ -6671,6 +8315,10 @@ packages:
yaml:
optional: true
+ watchpack@2.4.4:
+ resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==}
+ engines: {node: '>=10.13.0'}
+
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
@@ -6687,6 +8335,20 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webpack-sources@3.3.2:
+ resolution: {integrity: sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==}
+ engines: {node: '>=10.13.0'}
+
+ webpack@5.99.9:
+ resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@@ -6758,6 +8420,22 @@ packages:
utf-8-validate:
optional: 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
+
+ xmlhttprequest-ssl@2.0.0:
+ resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==}
+ engines: {node: '>=0.4.0'}
+
xtend@4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
@@ -6877,6 +8555,357 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
+ '@aws-crypto/sha256-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/util-locate-window': 3.804.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.8.1
+
+ '@aws-crypto/sha256-js@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.821.0
+ tslib: 2.8.1
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@aws-crypto/util@5.2.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.8.1
+
+ '@aws-sdk/client-ses@3.826.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/credential-provider-node': 3.826.0
+ '@aws-sdk/middleware-host-header': 3.821.0
+ '@aws-sdk/middleware-logger': 3.821.0
+ '@aws-sdk/middleware-recursion-detection': 3.821.0
+ '@aws-sdk/middleware-user-agent': 3.826.0
+ '@aws-sdk/region-config-resolver': 3.821.0
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/util-endpoints': 3.821.0
+ '@aws-sdk/util-user-agent-browser': 3.821.0
+ '@aws-sdk/util-user-agent-node': 3.826.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.5.3
+ '@smithy/fetch-http-handler': 5.0.4
+ '@smithy/hash-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.11
+ '@smithy/middleware-retry': 4.1.12
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.0.6
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.19
+ '@smithy/util-defaults-mode-node': 4.0.19
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.5
+ '@smithy/util-utf8': 4.0.0
+ '@smithy/util-waiter': 4.0.5
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sso@3.826.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/middleware-host-header': 3.821.0
+ '@aws-sdk/middleware-logger': 3.821.0
+ '@aws-sdk/middleware-recursion-detection': 3.821.0
+ '@aws-sdk/middleware-user-agent': 3.826.0
+ '@aws-sdk/region-config-resolver': 3.821.0
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/util-endpoints': 3.821.0
+ '@aws-sdk/util-user-agent-browser': 3.821.0
+ '@aws-sdk/util-user-agent-node': 3.826.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.5.3
+ '@smithy/fetch-http-handler': 5.0.4
+ '@smithy/hash-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.11
+ '@smithy/middleware-retry': 4.1.12
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.0.6
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.19
+ '@smithy/util-defaults-mode-node': 4.0.19
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.5
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/core@3.826.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/xml-builder': 3.821.0
+ '@smithy/core': 3.5.3
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/signature-v4': 5.1.2
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-utf8': 4.0.0
+ fast-xml-parser: 4.4.1
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-env@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-http@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/fetch-http-handler': 5.0.4
+ '@smithy/node-http-handler': 4.0.6
+ '@smithy/property-provider': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-stream': 4.2.2
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-ini@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/credential-provider-env': 3.826.0
+ '@aws-sdk/credential-provider-http': 3.826.0
+ '@aws-sdk/credential-provider-process': 3.826.0
+ '@aws-sdk/credential-provider-sso': 3.826.0
+ '@aws-sdk/credential-provider-web-identity': 3.826.0
+ '@aws-sdk/nested-clients': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-node@3.826.0':
+ dependencies:
+ '@aws-sdk/credential-provider-env': 3.826.0
+ '@aws-sdk/credential-provider-http': 3.826.0
+ '@aws-sdk/credential-provider-ini': 3.826.0
+ '@aws-sdk/credential-provider-process': 3.826.0
+ '@aws-sdk/credential-provider-sso': 3.826.0
+ '@aws-sdk/credential-provider-web-identity': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-process@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/credential-provider-sso@3.826.0':
+ dependencies:
+ '@aws-sdk/client-sso': 3.826.0
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/token-providers': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/credential-provider-web-identity@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/nested-clients': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/middleware-host-header@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-logger@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-recursion-detection@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/middleware-user-agent@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/util-endpoints': 3.821.0
+ '@smithy/core': 3.5.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/nested-clients@3.826.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/middleware-host-header': 3.821.0
+ '@aws-sdk/middleware-logger': 3.821.0
+ '@aws-sdk/middleware-recursion-detection': 3.821.0
+ '@aws-sdk/middleware-user-agent': 3.826.0
+ '@aws-sdk/region-config-resolver': 3.821.0
+ '@aws-sdk/types': 3.821.0
+ '@aws-sdk/util-endpoints': 3.821.0
+ '@aws-sdk/util-user-agent-browser': 3.821.0
+ '@aws-sdk/util-user-agent-node': 3.826.0
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/core': 3.5.3
+ '@smithy/fetch-http-handler': 5.0.4
+ '@smithy/hash-node': 4.0.4
+ '@smithy/invalid-dependency': 4.0.4
+ '@smithy/middleware-content-length': 4.0.4
+ '@smithy/middleware-endpoint': 4.1.11
+ '@smithy/middleware-retry': 4.1.12
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/node-http-handler': 4.0.6
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-body-length-node': 4.0.0
+ '@smithy/util-defaults-mode-browser': 4.0.19
+ '@smithy/util-defaults-mode-node': 4.0.19
+ '@smithy/util-endpoints': 3.0.6
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.5
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/region-config-resolver@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@aws-sdk/token-providers@3.826.0':
+ dependencies:
+ '@aws-sdk/core': 3.826.0
+ '@aws-sdk/nested-clients': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/types@3.821.0':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/util-endpoints@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/types': 4.3.1
+ '@smithy/util-endpoints': 3.0.6
+ tslib: 2.8.1
+
+ '@aws-sdk/util-locate-window@3.804.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@aws-sdk/util-user-agent-browser@3.821.0':
+ dependencies:
+ '@aws-sdk/types': 3.821.0
+ '@smithy/types': 4.3.1
+ bowser: 2.11.0
+ tslib: 2.8.1
+
+ '@aws-sdk/util-user-agent-node@3.826.0':
+ dependencies:
+ '@aws-sdk/middleware-user-agent': 3.826.0
+ '@aws-sdk/types': 3.821.0
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@aws-sdk/xml-builder@3.821.0':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
'@babel/code-frame@7.27.1':
dependencies:
'@babel/helper-validator-identifier': 7.27.1
@@ -6885,6 +8914,26 @@ snapshots:
'@babel/compat-data@7.27.3': {}
+ '@babel/core@7.24.5':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.24.5)
+ '@babel/helpers': 7.27.3
+ '@babel/parser': 7.27.3
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.27.3
+ '@babel/types': 7.27.3
+ convert-source-map: 2.0.0
+ debug: 4.4.1
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/core@7.27.3':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -6960,6 +9009,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.27.3
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.27.3(@babel/core@7.27.3)':
dependencies:
'@babel/core': 7.27.3
@@ -7002,6 +9060,10 @@ snapshots:
'@babel/template': 7.27.2
'@babel/types': 7.27.3
+ '@babel/parser@7.24.5':
+ dependencies:
+ '@babel/types': 7.27.3
+
'@babel/parser@7.27.3':
dependencies:
'@babel/types': 7.27.3
@@ -7307,6 +9369,17 @@ snapshots:
'@emotion/hash@0.9.2': {}
+ '@emotion/is-prop-valid@0.8.8':
+ dependencies:
+ '@emotion/memoize': 0.7.4
+ optional: true
+
+ '@emotion/memoize@0.7.4':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.19.11':
+ optional: true
+
'@esbuild/aix-ppc64@0.21.5':
optional: true
@@ -7316,6 +9389,9 @@ snapshots:
'@esbuild/android-arm64@0.17.6':
optional: true
+ '@esbuild/android-arm64@0.19.11':
+ optional: true
+
'@esbuild/android-arm64@0.21.5':
optional: true
@@ -7328,6 +9404,9 @@ snapshots:
'@esbuild/android-arm@0.17.6':
optional: true
+ '@esbuild/android-arm@0.19.11':
+ optional: true
+
'@esbuild/android-arm@0.21.5':
optional: true
@@ -7337,6 +9416,9 @@ snapshots:
'@esbuild/android-x64@0.17.6':
optional: true
+ '@esbuild/android-x64@0.19.11':
+ optional: true
+
'@esbuild/android-x64@0.21.5':
optional: true
@@ -7346,6 +9428,9 @@ snapshots:
'@esbuild/darwin-arm64@0.17.6':
optional: true
+ '@esbuild/darwin-arm64@0.19.11':
+ optional: true
+
'@esbuild/darwin-arm64@0.21.5':
optional: true
@@ -7355,6 +9440,9 @@ snapshots:
'@esbuild/darwin-x64@0.17.6':
optional: true
+ '@esbuild/darwin-x64@0.19.11':
+ optional: true
+
'@esbuild/darwin-x64@0.21.5':
optional: true
@@ -7364,6 +9452,9 @@ snapshots:
'@esbuild/freebsd-arm64@0.17.6':
optional: true
+ '@esbuild/freebsd-arm64@0.19.11':
+ optional: true
+
'@esbuild/freebsd-arm64@0.21.5':
optional: true
@@ -7373,6 +9464,9 @@ snapshots:
'@esbuild/freebsd-x64@0.17.6':
optional: true
+ '@esbuild/freebsd-x64@0.19.11':
+ optional: true
+
'@esbuild/freebsd-x64@0.21.5':
optional: true
@@ -7382,6 +9476,9 @@ snapshots:
'@esbuild/linux-arm64@0.17.6':
optional: true
+ '@esbuild/linux-arm64@0.19.11':
+ optional: true
+
'@esbuild/linux-arm64@0.21.5':
optional: true
@@ -7391,6 +9488,9 @@ snapshots:
'@esbuild/linux-arm@0.17.6':
optional: true
+ '@esbuild/linux-arm@0.19.11':
+ optional: true
+
'@esbuild/linux-arm@0.21.5':
optional: true
@@ -7400,6 +9500,9 @@ snapshots:
'@esbuild/linux-ia32@0.17.6':
optional: true
+ '@esbuild/linux-ia32@0.19.11':
+ optional: true
+
'@esbuild/linux-ia32@0.21.5':
optional: true
@@ -7412,6 +9515,9 @@ snapshots:
'@esbuild/linux-loong64@0.17.6':
optional: true
+ '@esbuild/linux-loong64@0.19.11':
+ optional: true
+
'@esbuild/linux-loong64@0.21.5':
optional: true
@@ -7421,6 +9527,9 @@ snapshots:
'@esbuild/linux-mips64el@0.17.6':
optional: true
+ '@esbuild/linux-mips64el@0.19.11':
+ optional: true
+
'@esbuild/linux-mips64el@0.21.5':
optional: true
@@ -7430,6 +9539,9 @@ snapshots:
'@esbuild/linux-ppc64@0.17.6':
optional: true
+ '@esbuild/linux-ppc64@0.19.11':
+ optional: true
+
'@esbuild/linux-ppc64@0.21.5':
optional: true
@@ -7439,6 +9551,9 @@ snapshots:
'@esbuild/linux-riscv64@0.17.6':
optional: true
+ '@esbuild/linux-riscv64@0.19.11':
+ optional: true
+
'@esbuild/linux-riscv64@0.21.5':
optional: true
@@ -7448,6 +9563,9 @@ snapshots:
'@esbuild/linux-s390x@0.17.6':
optional: true
+ '@esbuild/linux-s390x@0.19.11':
+ optional: true
+
'@esbuild/linux-s390x@0.21.5':
optional: true
@@ -7457,6 +9575,9 @@ snapshots:
'@esbuild/linux-x64@0.17.6':
optional: true
+ '@esbuild/linux-x64@0.19.11':
+ optional: true
+
'@esbuild/linux-x64@0.21.5':
optional: true
@@ -7469,6 +9590,9 @@ snapshots:
'@esbuild/netbsd-x64@0.17.6':
optional: true
+ '@esbuild/netbsd-x64@0.19.11':
+ optional: true
+
'@esbuild/netbsd-x64@0.21.5':
optional: true
@@ -7481,6 +9605,9 @@ snapshots:
'@esbuild/openbsd-x64@0.17.6':
optional: true
+ '@esbuild/openbsd-x64@0.19.11':
+ optional: true
+
'@esbuild/openbsd-x64@0.21.5':
optional: true
@@ -7490,6 +9617,9 @@ snapshots:
'@esbuild/sunos-x64@0.17.6':
optional: true
+ '@esbuild/sunos-x64@0.19.11':
+ optional: true
+
'@esbuild/sunos-x64@0.21.5':
optional: true
@@ -7499,6 +9629,9 @@ snapshots:
'@esbuild/win32-arm64@0.17.6':
optional: true
+ '@esbuild/win32-arm64@0.19.11':
+ optional: true
+
'@esbuild/win32-arm64@0.21.5':
optional: true
@@ -7508,6 +9641,9 @@ snapshots:
'@esbuild/win32-ia32@0.17.6':
optional: true
+ '@esbuild/win32-ia32@0.19.11':
+ optional: true
+
'@esbuild/win32-ia32@0.21.5':
optional: true
@@ -7517,6 +9653,9 @@ snapshots:
'@esbuild/win32-x64@0.17.6':
optional: true
+ '@esbuild/win32-x64@0.19.11':
+ optional: true
+
'@esbuild/win32-x64@0.21.5':
optional: true
@@ -7605,6 +9744,11 @@ snapshots:
'@jridgewell/set-array@1.2.1': {}
+ '@jridgewell/source-map@0.3.6':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/trace-mapping@0.3.25':
@@ -7654,6 +9798,8 @@ snapshots:
'@mjackson/headers@0.10.0': {}
+ '@mjackson/headers@0.9.0': {}
+
'@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3':
optional: true
@@ -7679,6 +9825,41 @@ snapshots:
'@tybys/wasm-util': 0.9.0
optional: true
+ '@next/env@14.1.4': {}
+
+ '@next/swc-darwin-arm64@14.1.4':
+ optional: true
+
+ '@next/swc-darwin-x64@14.1.4':
+ optional: true
+
+ '@next/swc-linux-arm64-gnu@14.1.4':
+ optional: true
+
+ '@next/swc-linux-arm64-musl@14.1.4':
+ optional: true
+
+ '@next/swc-linux-x64-gnu@14.1.4':
+ optional: true
+
+ '@next/swc-linux-x64-musl@14.1.4':
+ optional: true
+
+ '@next/swc-win32-arm64-msvc@14.1.4':
+ optional: true
+
+ '@next/swc-win32-ia32-msvc@14.1.4':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@14.1.4':
+ optional: true
+
+ '@nichtsam/remix-auth-email-link@3.0.0(remix-auth@4.2.0)':
+ dependencies:
+ '@mjackson/headers': 0.9.0
+ crypto-js: 4.2.0
+ remix-auth: 4.2.0
+
'@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
dependencies:
eslint-scope: 5.1.1
@@ -7730,6 +9911,8 @@ snapshots:
dependencies:
which: 3.0.1
+ '@one-ini/wasm@0.1.1': {}
+
'@opentelemetry/api@1.9.0': {}
'@oslojs/asn1@1.0.0':
@@ -7764,8 +9947,12 @@ snapshots:
'@prisma/engines@5.4.1': {}
+ '@radix-ui/colors@1.0.1': {}
+
'@radix-ui/number@1.1.1': {}
+ '@radix-ui/primitive@1.1.0': {}
+
'@radix-ui/primitive@1.1.2': {}
'@radix-ui/react-accordion@1.2.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
@@ -7799,6 +9986,15 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -7837,6 +10033,22 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-collapsible@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -7853,6 +10065,18 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
@@ -7865,12 +10089,31 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.69)(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.27.3
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.69
+
+ '@radix-ui/react-compose-refs@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-context@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-context@1.1.2(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
@@ -7899,12 +10142,31 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-direction@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-direction@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -7933,12 +10195,29 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-focus-guards@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-focus-guards@1.1.2(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
@@ -7954,6 +10233,13 @@ snapshots:
dependencies:
react: 18.3.1
+ '@radix-ui/react-id@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-id@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1)
@@ -7996,6 +10282,29 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-popover@1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ aria-hidden: 1.2.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-popover@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -8019,6 +10328,24 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -8037,6 +10364,16 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -8047,6 +10384,16 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
@@ -8057,6 +10404,15 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-slot': 1.2.3(@types/react@18.3.23)(react@18.3.1)
@@ -8066,6 +10422,23 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -8138,6 +10511,21 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-slot@1.0.2(@types/react@18.2.69)(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.27.3
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.69)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.69
+
+ '@radix-ui/react-slot@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-slot@1.2.3(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1)
@@ -8196,6 +10584,52 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-toggle-group@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-toggle': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
+ '@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
+ '@radix-ui/react-tooltip@1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.2
@@ -8216,12 +10650,25 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.23)(react@18.3.1)
@@ -8237,6 +10684,13 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.23)(react@18.3.1)
@@ -8251,6 +10705,12 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
react: 18.3.1
@@ -8263,6 +10723,13 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-use-rect@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.0
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-rect@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/rect': 1.1.1
@@ -8270,6 +10737,13 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-use-size@1.1.0(@types/react@18.2.47)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
'@radix-ui/react-use-size@1.1.1(@types/react@18.3.23)(react@18.3.1)':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.23)(react@18.3.1)
@@ -8277,6 +10751,15 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+
'@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -8286,8 +10769,132 @@ snapshots:
'@types/react': 18.3.23
'@types/react-dom': 18.3.7(@types/react@18.3.23)
+ '@radix-ui/rect@1.1.0': {}
+
'@radix-ui/rect@1.1.1': {}
+ '@react-email/body@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/button@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/code-block@0.0.3(react@18.3.1)':
+ dependencies:
+ prismjs: 1.29.0
+ react: 18.3.1
+
+ '@react-email/code-inline@0.0.1(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/column@0.0.9(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/components@0.0.16(@types/react@18.2.69)(react@18.3.1)':
+ dependencies:
+ '@react-email/body': 0.0.7(react@18.3.1)
+ '@react-email/button': 0.0.14(react@18.3.1)
+ '@react-email/code-block': 0.0.3(react@18.3.1)
+ '@react-email/code-inline': 0.0.1(react@18.3.1)
+ '@react-email/column': 0.0.9(react@18.3.1)
+ '@react-email/container': 0.0.11(react@18.3.1)
+ '@react-email/font': 0.0.5(react@18.3.1)
+ '@react-email/head': 0.0.7(react@18.3.1)
+ '@react-email/heading': 0.0.11(@types/react@18.2.69)(react@18.3.1)
+ '@react-email/hr': 0.0.7(react@18.3.1)
+ '@react-email/html': 0.0.7(react@18.3.1)
+ '@react-email/img': 0.0.7(react@18.3.1)
+ '@react-email/link': 0.0.7(react@18.3.1)
+ '@react-email/markdown': 0.0.9(react@18.3.1)
+ '@react-email/preview': 0.0.8(react@18.3.1)
+ '@react-email/render': 0.0.12
+ '@react-email/row': 0.0.7(react@18.3.1)
+ '@react-email/section': 0.0.11(react@18.3.1)
+ '@react-email/tailwind': 0.0.15(react@18.3.1)
+ '@react-email/text': 0.0.7(react@18.3.1)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@types/react'
+
+ '@react-email/container@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/font@0.0.5(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/head@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/heading@0.0.11(@types/react@18.2.69)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.69)(react@18.3.1)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@types/react'
+
+ '@react-email/hr@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/html@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/img@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/link@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/markdown@0.0.9(react@18.3.1)':
+ dependencies:
+ md-to-react-email: 5.0.2(react@18.3.1)
+ react: 18.3.1
+
+ '@react-email/preview@0.0.8(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/render@0.0.12':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.4
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+
+ '@react-email/render@0.0.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-promise-suspense: 0.3.4
+
+ '@react-email/row@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/section@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/tailwind@0.0.15(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/text@0.0.7(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
'@remix-run/changelog-github@0.0.5':
dependencies:
'@changesets/errors': 0.1.4
@@ -8297,7 +10904,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))(yaml@2.8.0)':
+ '@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))(yaml@2.8.0)':
dependencies:
'@babel/core': 7.27.3
'@babel/generator': 7.27.3
@@ -8314,7 +10921,7 @@ snapshots:
'@remix-run/router': 1.23.0
'@remix-run/server-runtime': 2.16.7(typescript@5.8.3)
'@types/mdx': 2.0.13
- '@vanilla-extract/integration': 6.5.0(@types/node@22.15.21)(lightningcss@1.30.1)
+ '@vanilla-extract/integration': 6.5.0(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0)
arg: 5.0.2
cacache: 17.1.4
chalk: 4.1.2
@@ -8354,12 +10961,12 @@ snapshots:
tar-fs: 2.1.3
tsconfig-paths: 4.2.0
valibot: 0.41.0(typescript@5.8.3)
- vite-node: 3.1.4(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ vite-node: 3.1.4(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
ws: 7.5.10
optionalDependencies:
'@remix-run/serve': 2.16.7(typescript@5.8.3)
typescript: 5.8.3
- vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -8605,6 +11212,345 @@ snapshots:
'@rushstack/eslint-patch@1.11.0': {}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ dependencies:
+ domhandler: 5.0.3
+ selderee: 0.11.0
+
+ '@smithy/abort-controller@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/config-resolver@4.1.4':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-config-provider': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/core@3.5.3':
+ dependencies:
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-body-length-browser': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-stream': 4.2.2
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/credential-provider-imds@4.0.6':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/fetch-http-handler@5.0.4':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/querystring-builder': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/hash-node@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/invalid-dependency@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/is-array-buffer@2.2.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/is-array-buffer@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/middleware-content-length@4.0.4':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/middleware-endpoint@4.1.11':
+ dependencies:
+ '@smithy/core': 3.5.3
+ '@smithy/middleware-serde': 4.0.8
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ '@smithy/url-parser': 4.0.4
+ '@smithy/util-middleware': 4.0.4
+ tslib: 2.8.1
+
+ '@smithy/middleware-retry@4.1.12':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/service-error-classification': 4.0.5
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-retry': 4.0.5
+ tslib: 2.8.1
+ uuid: 9.0.1
+
+ '@smithy/middleware-serde@4.0.8':
+ dependencies:
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/middleware-stack@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/node-config-provider@4.1.3':
+ dependencies:
+ '@smithy/property-provider': 4.0.4
+ '@smithy/shared-ini-file-loader': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/node-http-handler@4.0.6':
+ dependencies:
+ '@smithy/abort-controller': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/querystring-builder': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/property-provider@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/protocol-http@5.1.2':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/querystring-builder@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ '@smithy/util-uri-escape': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/querystring-parser@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/service-error-classification@4.0.5':
+ dependencies:
+ '@smithy/types': 4.3.1
+
+ '@smithy/shared-ini-file-loader@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/signature-v4@5.1.2':
+ dependencies:
+ '@smithy/is-array-buffer': 4.0.0
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-hex-encoding': 4.0.0
+ '@smithy/util-middleware': 4.0.4
+ '@smithy/util-uri-escape': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/smithy-client@4.4.3':
+ dependencies:
+ '@smithy/core': 3.5.3
+ '@smithy/middleware-endpoint': 4.1.11
+ '@smithy/middleware-stack': 4.0.4
+ '@smithy/protocol-http': 5.1.2
+ '@smithy/types': 4.3.1
+ '@smithy/util-stream': 4.2.2
+ tslib: 2.8.1
+
+ '@smithy/types@4.3.1':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/url-parser@4.0.4':
+ dependencies:
+ '@smithy/querystring-parser': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-base64@4.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-body-length-browser@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-body-length-node@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-buffer-from@2.2.0':
+ dependencies:
+ '@smithy/is-array-buffer': 2.2.0
+ tslib: 2.8.1
+
+ '@smithy/util-buffer-from@4.0.0':
+ dependencies:
+ '@smithy/is-array-buffer': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-config-provider@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-defaults-mode-browser@4.0.19':
+ dependencies:
+ '@smithy/property-provider': 4.0.4
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ bowser: 2.11.0
+ tslib: 2.8.1
+
+ '@smithy/util-defaults-mode-node@4.0.19':
+ dependencies:
+ '@smithy/config-resolver': 4.1.4
+ '@smithy/credential-provider-imds': 4.0.6
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/property-provider': 4.0.4
+ '@smithy/smithy-client': 4.4.3
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-endpoints@3.0.6':
+ dependencies:
+ '@smithy/node-config-provider': 4.1.3
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-hex-encoding@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-middleware@4.0.4':
+ dependencies:
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-retry@4.0.5':
+ dependencies:
+ '@smithy/service-error-classification': 4.0.5
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@smithy/util-stream@4.2.2':
+ dependencies:
+ '@smithy/fetch-http-handler': 5.0.4
+ '@smithy/node-http-handler': 4.0.6
+ '@smithy/types': 4.3.1
+ '@smithy/util-base64': 4.0.0
+ '@smithy/util-buffer-from': 4.0.0
+ '@smithy/util-hex-encoding': 4.0.0
+ '@smithy/util-utf8': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-uri-escape@4.0.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@smithy/util-utf8@2.3.0':
+ dependencies:
+ '@smithy/util-buffer-from': 2.2.0
+ tslib: 2.8.1
+
+ '@smithy/util-utf8@4.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 4.0.0
+ tslib: 2.8.1
+
+ '@smithy/util-waiter@4.0.5':
+ dependencies:
+ '@smithy/abort-controller': 4.0.4
+ '@smithy/types': 4.3.1
+ tslib: 2.8.1
+
+ '@socket.io/component-emitter@3.1.2': {}
+
+ '@swc/core-darwin-arm64@1.3.101':
+ optional: true
+
+ '@swc/core-darwin-x64@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.3.101':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.3.101':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.3.101':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.3.101':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.3.101':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.3.101':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.3.101':
+ optional: true
+
+ '@swc/core@1.3.101(@swc/helpers@0.5.2)':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.23
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.3.101
+ '@swc/core-darwin-x64': 1.3.101
+ '@swc/core-linux-arm-gnueabihf': 1.3.101
+ '@swc/core-linux-arm64-gnu': 1.3.101
+ '@swc/core-linux-arm64-musl': 1.3.101
+ '@swc/core-linux-x64-gnu': 1.3.101
+ '@swc/core-linux-x64-musl': 1.3.101
+ '@swc/core-win32-arm64-msvc': 1.3.101
+ '@swc/core-win32-ia32-msvc': 1.3.101
+ '@swc/core-win32-x64-msvc': 1.3.101
+ '@swc/helpers': 0.5.2
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/helpers@0.5.2':
+ dependencies:
+ tslib: 2.8.1
+
+ '@swc/types@0.1.23':
+ dependencies:
+ '@swc/counter': 0.1.3
+
'@tailwindcss/container-queries@0.1.1(tailwindcss@4.1.7)':
dependencies:
tailwindcss: 4.1.7
@@ -8694,12 +11640,12 @@ snapshots:
postcss-selector-parser: 6.0.10
tailwindcss: 4.1.7
- '@tailwindcss/vite@4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))':
+ '@tailwindcss/vite@4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0))':
dependencies:
'@tailwindcss/node': 4.1.7
'@tailwindcss/oxide': 4.1.7
tailwindcss: 4.1.7
- vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
'@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
@@ -8749,6 +11695,10 @@ snapshots:
'@types/cookie@0.6.0': {}
+ '@types/cors@2.8.19':
+ dependencies:
+ '@types/node': 22.15.21
+
'@types/d3-array@3.2.1': {}
'@types/d3-axis@3.0.6':
@@ -8872,6 +11822,16 @@ snapshots:
'@types/diff-match-patch@1.0.36': {}
+ '@types/eslint-scope@3.7.7':
+ dependencies:
+ '@types/eslint': 9.6.1
+ '@types/estree': 1.0.7
+
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.7
+ '@types/json-schema': 7.0.15
+
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.7
@@ -8930,6 +11890,10 @@ snapshots:
dependencies:
undici-types: 6.21.0
+ '@types/nodemailer@6.4.17':
+ dependencies:
+ '@types/node': 22.15.21
+
'@types/normalize-package-data@2.4.4': {}
'@types/prismjs@1.26.5': {}
@@ -8940,15 +11904,33 @@ snapshots:
'@types/range-parser@1.2.7': {}
+ '@types/react-dom@18.3.7(@types/react@18.2.69)':
+ dependencies:
+ '@types/react': 18.2.69
+
'@types/react-dom@18.3.7(@types/react@18.3.23)':
dependencies:
'@types/react': 18.3.23
+ '@types/react@18.2.47':
+ dependencies:
+ '@types/prop-types': 15.7.14
+ '@types/scheduler': 0.26.0
+ csstype: 3.1.3
+
+ '@types/react@18.2.69':
+ dependencies:
+ '@types/prop-types': 15.7.14
+ '@types/scheduler': 0.26.0
+ csstype: 3.1.3
+
'@types/react@18.3.23':
dependencies:
'@types/prop-types': 15.7.14
csstype: 3.1.3
+ '@types/scheduler@0.26.0': {}
+
'@types/semver@7.7.0': {}
'@types/send@0.17.4':
@@ -8964,6 +11946,17 @@ snapshots:
'@types/unist@2.0.11': {}
+ '@types/webpack@5.28.5(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)':
+ dependencies:
+ '@types/node': 22.15.21
+ tapable: 2.2.2
+ webpack: 5.99.9(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+ - webpack-cli
+
'@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
@@ -9212,21 +12205,21 @@ snapshots:
transitivePeerDependencies:
- babel-plugin-macros
- '@vanilla-extract/integration@6.5.0(@types/node@22.15.21)(lightningcss@1.30.1)':
+ '@vanilla-extract/integration@6.5.0(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0)':
dependencies:
'@babel/core': 7.27.3
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.3)
'@vanilla-extract/babel-plugin-debug-ids': 1.2.0
'@vanilla-extract/css': 1.17.2
- esbuild: 0.17.6
+ esbuild: 0.19.11
eval: 0.1.8
find-up: 5.0.0
javascript-stringify: 2.1.0
lodash: 4.17.21
mlly: 1.7.4
outdent: 0.8.0
- vite: 5.4.19(@types/node@22.15.21)(lightningcss@1.30.1)
- vite-node: 1.6.1(@types/node@22.15.21)(lightningcss@1.30.1)
+ vite: 5.4.19(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0)
+ vite-node: 1.6.1(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -9243,9 +12236,91 @@ snapshots:
'@web3-storage/multipart-parser@1.0.0': {}
+ '@webassemblyjs/ast@1.14.1':
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2': {}
+
+ '@webassemblyjs/helper-api-error@1.13.2': {}
+
+ '@webassemblyjs/helper-buffer@1.14.1': {}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ dependencies:
+ '@webassemblyjs/floating-point-hex-parser': 1.13.2
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/wasm-gen': 1.14.1
+
+ '@webassemblyjs/ieee754@1.13.2':
+ dependencies:
+ '@xtuc/ieee754': 1.2.0
+
+ '@webassemblyjs/leb128@1.13.2':
+ dependencies:
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/utf8@1.13.2': {}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/helper-wasm-section': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-opt': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ '@webassemblyjs/wast-printer': 1.14.1
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@xtuc/long': 4.2.2
+
+ '@xtuc/ieee754@1.2.0': {}
+
+ '@xtuc/long@4.2.2': {}
+
'@zxing/text-encoding@0.9.0':
optional: true
+ abbrev@2.0.0: {}
+
abort-controller@3.0.0:
dependencies:
event-target-shim: 5.0.1
@@ -9288,6 +12363,15 @@ snapshots:
optionalDependencies:
react: 18.3.1
+ ajv-formats@2.1.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
+ ajv-keywords@5.1.0(ajv@8.17.1):
+ dependencies:
+ ajv: 8.17.1
+ fast-deep-equal: 3.1.3
+
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@@ -9295,6 +12379,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.6
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
ansi-colors@4.1.3: {}
ansi-regex@5.0.1: {}
@@ -9313,6 +12404,8 @@ snapshots:
ansi-styles@6.2.1: {}
+ any-promise@1.3.0: {}
+
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
@@ -9419,6 +12512,16 @@ snapshots:
async-function@1.0.0: {}
+ autoprefixer@10.4.14(postcss@8.4.38):
+ dependencies:
+ browserslist: 4.24.5
+ caniuse-lite: 1.0.30001718
+ fraction.js: 4.3.7
+ normalize-range: 0.1.2
+ picocolors: 1.1.1
+ postcss: 8.4.38
+ postcss-value-parser: 4.2.0
+
autoprefixer@10.4.21(postcss@8.5.3):
dependencies:
browserslist: 4.24.5
@@ -9453,6 +12556,8 @@ snapshots:
base64-js@1.5.1: {}
+ base64id@2.0.0: {}
+
basic-auth@2.0.1:
dependencies:
safe-buffer: 5.1.2
@@ -9486,6 +12591,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ bowser@2.11.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -9538,6 +12645,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ busboy@1.6.0:
+ dependencies:
+ streamsearch: 1.1.0
+
bytes@3.1.2: {}
cac@6.7.14: {}
@@ -9613,6 +12724,18 @@ snapshots:
chardet@0.7.0: {}
+ chokidar@3.5.3:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
@@ -9631,6 +12754,8 @@ snapshots:
chownr@3.0.0: {}
+ chrome-trace-event@1.0.4: {}
+
ci-info@3.9.0: {}
class-variance-authority@0.7.1:
@@ -9645,6 +12770,8 @@ snapshots:
cli-spinners@2.9.2: {}
+ client-only@0.0.1: {}
+
cliui@6.0.0:
dependencies:
string-width: 4.2.3
@@ -9661,6 +12788,8 @@ snapshots:
clsx@1.2.1: {}
+ clsx@2.1.0: {}
+
clsx@2.1.1: {}
cluster-key-slot@1.1.2: {}
@@ -9689,6 +12818,14 @@ snapshots:
comma-separated-tokens@2.0.3: {}
+ commander@10.0.1: {}
+
+ commander@11.1.0: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
commander@5.1.0: {}
commander@7.2.0: {}
@@ -9715,6 +12852,11 @@ snapshots:
confbox@0.2.2: {}
+ config-chain@1.1.13:
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+
content-disposition@0.5.4:
dependencies:
safe-buffer: 5.2.1
@@ -9737,6 +12879,11 @@ snapshots:
core-util-is@1.0.3: {}
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
cosmiconfig@9.0.0(typescript@5.8.3):
dependencies:
env-paths: 2.2.1
@@ -9766,7 +12913,9 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- css-loader@6.11.0:
+ crypto-js@4.2.0: {}
+
+ css-loader@6.11.0(webpack@5.99.9(esbuild@0.25.5)):
dependencies:
icss-utils: 5.1.0(postcss@8.5.3)
postcss: 8.5.3
@@ -9776,6 +12925,8 @@ snapshots:
postcss-modules-values: 4.0.0(postcss@8.5.3)
postcss-value-parser: 4.2.0
semver: 7.7.2
+ optionalDependencies:
+ webpack: 5.99.9(esbuild@0.25.5)
css-unit-converter@1.1.2: {}
@@ -9978,6 +13129,8 @@ snapshots:
dayjs@1.11.13: {}
+ debounce@2.0.0: {}
+
debug@2.6.9:
dependencies:
ms: 2.0.0
@@ -9986,6 +13139,10 @@ snapshots:
dependencies:
ms: 2.1.3
+ debug@4.3.7:
+ dependencies:
+ ms: 2.1.3
+
debug@4.4.1:
dependencies:
ms: 2.1.3
@@ -10072,6 +13229,8 @@ snapshots:
defined: 1.0.1
minimist: 1.2.8
+ didyoumean@1.2.2: {}
+
diff-match-patch@1.0.5: {}
diff@5.2.0: {}
@@ -10080,6 +13239,8 @@ snapshots:
dependencies:
path-type: 4.0.0
+ dlv@1.1.3: {}
+
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
@@ -10095,6 +13256,24 @@ snapshots:
'@babel/runtime': 7.27.3
csstype: 3.1.3
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ domelementtype@2.3.0: {}
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domutils@3.2.2:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
dotenv-cli@7.4.4:
dependencies:
cross-spawn: 7.0.6
@@ -10125,6 +13304,13 @@ snapshots:
eastasianwidth@0.2.0: {}
+ editorconfig@1.0.4:
+ dependencies:
+ '@one-ini/wasm': 0.1.1
+ commander: 10.0.1
+ minimatch: 9.0.1
+ semver: 7.7.2
+
ee-first@1.1.1: {}
electron-to-chromium@1.5.158: {}
@@ -10141,6 +13327,37 @@ snapshots:
dependencies:
once: 1.4.0
+ engine.io-client@6.5.4:
+ dependencies:
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.3.7
+ engine.io-parser: 5.2.3
+ ws: 8.17.1
+ xmlhttprequest-ssl: 2.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ engine.io-parser@5.2.3: {}
+
+ engine.io@6.5.5:
+ dependencies:
+ '@types/cookie': 0.4.1
+ '@types/cors': 2.8.19
+ '@types/node': 22.15.21
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cookie: 0.4.2
+ cors: 2.8.5
+ debug: 4.3.7
+ engine.io-parser: 5.2.3
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
enhanced-resolve@5.18.1:
dependencies:
graceful-fs: 4.2.11
@@ -10151,6 +13368,8 @@ snapshots:
ansi-colors: 4.1.3
strip-ansi: 6.0.1
+ entities@4.5.0: {}
+
env-paths@2.2.1: {}
err-code@2.0.3: {}
@@ -10388,6 +13607,32 @@ snapshots:
'@esbuild/win32-ia32': 0.17.6
'@esbuild/win32-x64': 0.17.6
+ esbuild@0.19.11:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.19.11
+ '@esbuild/android-arm': 0.19.11
+ '@esbuild/android-arm64': 0.19.11
+ '@esbuild/android-x64': 0.19.11
+ '@esbuild/darwin-arm64': 0.19.11
+ '@esbuild/darwin-x64': 0.19.11
+ '@esbuild/freebsd-arm64': 0.19.11
+ '@esbuild/freebsd-x64': 0.19.11
+ '@esbuild/linux-arm': 0.19.11
+ '@esbuild/linux-arm64': 0.19.11
+ '@esbuild/linux-ia32': 0.19.11
+ '@esbuild/linux-loong64': 0.19.11
+ '@esbuild/linux-mips64el': 0.19.11
+ '@esbuild/linux-ppc64': 0.19.11
+ '@esbuild/linux-riscv64': 0.19.11
+ '@esbuild/linux-s390x': 0.19.11
+ '@esbuild/linux-x64': 0.19.11
+ '@esbuild/netbsd-x64': 0.19.11
+ '@esbuild/openbsd-x64': 0.19.11
+ '@esbuild/sunos-x64': 0.19.11
+ '@esbuild/win32-arm64': 0.19.11
+ '@esbuild/win32-ia32': 0.19.11
+ '@esbuild/win32-x64': 0.19.11
+
esbuild@0.21.5:
optionalDependencies:
'@esbuild/aix-ppc64': 0.21.5
@@ -10454,6 +13699,15 @@ snapshots:
dependencies:
eslint: 8.57.1
+ eslint-config-prettier@9.0.0(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+
+ eslint-config-turbo@1.10.12(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+ eslint-plugin-turbo: 1.10.12(eslint@8.57.1)
+
eslint-import-resolver-node@0.3.7:
dependencies:
debug: 3.2.7
@@ -10651,6 +13905,11 @@ snapshots:
- supports-color
- typescript
+ eslint-plugin-turbo@1.10.12(eslint@8.57.1):
+ dependencies:
+ dotenv: 16.0.3
+ eslint: 8.57.1
+
eslint-plugin-turbo@2.5.3(eslint@8.57.1)(turbo@2.5.3):
dependencies:
dotenv: 16.0.3
@@ -10784,6 +14043,8 @@ snapshots:
event-target-shim@5.0.1: {}
+ events@3.3.0: {}
+
execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
@@ -10846,6 +14107,8 @@ snapshots:
iconv-lite: 0.4.24
tmp: 0.0.33
+ fast-deep-equal@2.0.1: {}
+
fast-deep-equal@3.1.3: {}
fast-glob@3.3.3:
@@ -10860,6 +14123,12 @@ snapshots:
fast-levenshtein@2.0.6: {}
+ fast-uri@3.0.6: {}
+
+ fast-xml-parser@4.4.1:
+ dependencies:
+ strnum: 1.1.2
+
fastq@1.19.1:
dependencies:
reusify: 1.1.0
@@ -10932,6 +14201,14 @@ snapshots:
fraction.js@4.3.7: {}
+ framer-motion@10.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ tslib: 2.8.1
+ optionalDependencies:
+ '@emotion/is-prop-valid': 0.8.8
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
fresh@0.5.2: {}
fs-constants@1.0.0: {}
@@ -11030,6 +14307,16 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob-to-regexp@0.4.1: {}
+
+ glob@10.3.4:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ path-scurry: 1.11.1
+
glob@10.4.5:
dependencies:
foreground-child: 3.3.1
@@ -11152,6 +14439,21 @@ snapshots:
html-tags@3.3.1: {}
+ html-to-text@9.0.5:
+ dependencies:
+ '@selderee/plugin-htmlparser2': 0.11.0
+ deepmerge: 4.3.1
+ dom-serializer: 2.0.0
+ htmlparser2: 8.0.2
+ selderee: 0.11.0
+
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ entities: 4.5.0
+
http-errors@2.0.0:
dependencies:
depd: 2.0.0
@@ -11196,6 +14498,8 @@ snapshots:
inherits@2.0.4: {}
+ ini@1.3.8: {}
+
inline-style-parser@0.1.1: {}
internal-slot@1.1.0:
@@ -11408,6 +14712,12 @@ snapshots:
has-symbols: 1.1.0
set-function-name: 2.0.2
+ jackspeak@2.3.6:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
@@ -11420,12 +14730,28 @@ snapshots:
javascript-stringify@2.1.0: {}
+ jest-worker@27.5.1:
+ dependencies:
+ '@types/node': 22.15.21
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
jiti@1.21.7: {}
jiti@2.4.2: {}
jose@5.10.0: {}
+ js-beautify@1.15.4:
+ dependencies:
+ config-chain: 1.1.13
+ editorconfig: 1.0.4
+ glob: 10.4.5
+ js-cookie: 3.0.5
+ nopt: 7.2.1
+
+ js-cookie@3.0.5: {}
+
js-tokens@4.0.0: {}
js-yaml@3.14.1:
@@ -11447,6 +14773,8 @@ snapshots:
json-schema-traverse@0.4.1: {}
+ json-schema-traverse@1.0.0: {}
+
json-schema@0.4.0: {}
json-stable-stringify-without-jsonify@1.0.1: {}
@@ -11494,6 +14822,8 @@ snapshots:
dependencies:
language-subtag-registry: 0.3.23
+ leac@0.6.0: {}
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
@@ -11544,6 +14874,8 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.30.1
lightningcss-win32-x64-msvc: 1.30.1
+ lilconfig@2.1.0: {}
+
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
@@ -11555,6 +14887,8 @@ snapshots:
pify: 4.0.1
strip-bom: 3.0.0
+ loader-runner@4.3.0: {}
+
loader-utils@3.3.1: {}
local-pkg@1.1.1:
@@ -11633,8 +14967,15 @@ snapshots:
markdown-extensions@1.1.1: {}
+ marked@7.0.4: {}
+
math-intrinsics@1.1.0: {}
+ md-to-react-email@5.0.2(react@18.3.1):
+ dependencies:
+ marked: 7.0.4
+ react: 18.3.1
+
mdast-util-definitions@5.1.2:
dependencies:
'@types/mdast': 3.0.15
@@ -12012,6 +15353,10 @@ snapshots:
dependencies:
brace-expansion: 1.1.11
+ minimatch@9.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@9.0.3:
dependencies:
brace-expansion: 2.0.1
@@ -12108,6 +15453,12 @@ snapshots:
optionalDependencies:
msgpackr-extract: 3.0.3
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
nanoid@3.3.8: {}
napi-postinstall@0.2.4: {}
@@ -12120,6 +15471,8 @@ snapshots:
negotiator@0.6.4: {}
+ neo-async@2.6.2: {}
+
neo4j-driver-bolt-connection@5.28.1:
dependencies:
buffer: 6.0.3
@@ -12134,6 +15487,32 @@ snapshots:
neo4j-driver-core: 5.28.1
rxjs: 7.8.2
+ next@14.1.4(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@next/env': 14.1.4
+ '@swc/helpers': 0.5.2
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001718
+ graceful-fs: 4.2.11
+ postcss: 8.4.31
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1)
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 14.1.4
+ '@next/swc-darwin-x64': 14.1.4
+ '@next/swc-linux-arm64-gnu': 14.1.4
+ '@next/swc-linux-arm64-musl': 14.1.4
+ '@next/swc-linux-x64-gnu': 14.1.4
+ '@next/swc-linux-x64-musl': 14.1.4
+ '@next/swc-win32-arm64-msvc': 14.1.4
+ '@next/swc-win32-ia32-msvc': 14.1.4
+ '@next/swc-win32-x64-msvc': 14.1.4
+ '@opentelemetry/api': 1.9.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
node-abort-controller@3.1.1: {}
node-emoji@1.11.0:
@@ -12151,8 +15530,14 @@ snapshots:
node-releases@2.0.19: {}
+ nodemailer@6.10.1: {}
+
non.geist@1.0.4: {}
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -12203,6 +15588,8 @@ snapshots:
object-hash@2.2.0: {}
+ object-hash@3.0.0: {}
+
object-inspect@1.13.4: {}
object-is@1.1.6:
@@ -12354,6 +15741,11 @@ snapshots:
parse-ms@2.1.0: {}
+ parseley@0.12.1:
+ dependencies:
+ leac: 0.6.0
+ peberminta: 0.9.0
+
parseurl@1.3.3: {}
path-exists@4.0.0: {}
@@ -12382,6 +15774,8 @@ snapshots:
pathe@2.0.3: {}
+ peberminta@0.9.0: {}
+
peek-stream@1.1.3:
dependencies:
buffer-from: 1.1.2
@@ -12408,6 +15802,8 @@ snapshots:
pify@4.0.1: {}
+ pirates@4.0.7: {}
+
pkg-dir@4.2.0:
dependencies:
find-up: 4.1.0
@@ -12437,6 +15833,13 @@ snapshots:
postcss: 6.0.23
postcss-value-parser: 3.3.1
+ postcss-import@15.1.0(postcss@8.5.3):
+ dependencies:
+ postcss: 8.5.3
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.10
+
postcss-import@16.1.0(postcss@8.5.3):
dependencies:
postcss: 8.5.3
@@ -12449,6 +15852,11 @@ snapshots:
camelcase-css: 2.0.1
postcss: 7.0.39
+ postcss-js@4.0.1(postcss@8.5.3):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.5.3
+
postcss-load-config@4.0.2(postcss@8.5.3):
dependencies:
lilconfig: 3.1.3
@@ -12456,12 +15864,14 @@ snapshots:
optionalDependencies:
postcss: 8.5.3
- postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.3):
+ postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.3)(webpack@5.99.9(esbuild@0.25.5)):
dependencies:
cosmiconfig: 9.0.0(typescript@5.8.3)
jiti: 1.21.7
postcss: 8.5.3
semver: 7.7.2
+ optionalDependencies:
+ webpack: 5.99.9(esbuild@0.25.5)
transitivePeerDependencies:
- typescript
@@ -12503,6 +15913,11 @@ snapshots:
postcss: 7.0.39
postcss-selector-parser: 6.1.2
+ postcss-nested@6.2.0(postcss@8.5.3):
+ dependencies:
+ postcss: 8.5.3
+ postcss-selector-parser: 6.1.2
+
postcss-selector-parser@6.0.10:
dependencies:
cssesc: 3.0.0
@@ -12539,6 +15954,18 @@ snapshots:
picocolors: 0.2.1
source-map: 0.6.1
+ postcss@8.4.31:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.4.38:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
postcss@8.5.3:
dependencies:
nanoid: 3.3.8
@@ -12583,6 +16010,12 @@ snapshots:
dependencies:
parse-ms: 2.1.0
+ prism-react-renderer@2.1.0(react@18.3.1):
+ dependencies:
+ '@types/prismjs': 1.26.5
+ clsx: 1.2.1
+ react: 18.3.1
+
prism-react-renderer@2.4.1(react@18.3.1):
dependencies:
'@types/prismjs': 1.26.5
@@ -12593,6 +16026,8 @@ snapshots:
dependencies:
'@prisma/engines': 5.4.1
+ prismjs@1.29.0: {}
+
proc-log@3.0.0: {}
process-nextick-args@2.0.1: {}
@@ -12612,6 +16047,8 @@ snapshots:
property-information@6.5.0: {}
+ proto-list@1.2.4: {}
+
proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
@@ -12654,6 +16091,10 @@ snapshots:
quick-lru@4.0.1: {}
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
range-parser@1.2.1: {}
raw-body@2.5.2:
@@ -12663,20 +16104,93 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
+ react-dom@18.2.0(react@18.2.0):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.2.0
+ scheduler: 0.23.2
+
react-dom@18.3.1(react@18.3.1):
dependencies:
loose-envify: 1.4.0
react: 18.3.1
scheduler: 0.23.2
+ react-email@2.1.6(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.2)(eslint@8.57.1):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/parser': 7.24.5
+ '@radix-ui/colors': 1.0.1
+ '@radix-ui/react-collapsible': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.3.1)
+ '@radix-ui/react-toggle-group': 1.1.0(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip': 1.1.1(@types/react-dom@18.3.7(@types/react@18.2.47))(@types/react@18.2.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@swc/core': 1.3.101(@swc/helpers@0.5.2)
+ '@types/react': 18.2.47
+ '@types/react-dom': 18.3.7(@types/react@18.2.69)
+ '@types/webpack': 5.28.5(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)
+ autoprefixer: 10.4.14(postcss@8.4.38)
+ chalk: 4.1.2
+ chokidar: 3.5.3
+ clsx: 2.1.0
+ commander: 11.1.0
+ debounce: 2.0.0
+ esbuild: 0.19.11
+ eslint-config-prettier: 9.0.0(eslint@8.57.1)
+ eslint-config-turbo: 1.10.12(eslint@8.57.1)
+ framer-motion: 10.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ glob: 10.3.4
+ log-symbols: 4.1.0
+ mime-types: 2.1.35
+ next: 14.1.4(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ normalize-path: 3.0.0
+ ora: 5.4.1
+ postcss: 8.4.38
+ prism-react-renderer: 2.1.0(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ socket.io: 4.7.3
+ socket.io-client: 4.7.3
+ sonner: 1.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ source-map-js: 1.0.2
+ stacktrace-parser: 0.1.10
+ tailwind-merge: 2.2.0
+ tailwindcss: 3.4.0
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - '@opentelemetry/api'
+ - '@swc/helpers'
+ - babel-plugin-macros
+ - bufferutil
+ - eslint
+ - sass
+ - supports-color
+ - ts-node
+ - uglify-js
+ - utf-8-validate
+ - webpack-cli
+
react-is@16.13.1: {}
react-is@17.0.2: {}
react-lifecycles-compat@3.0.4: {}
+ react-promise-suspense@0.3.4:
+ dependencies:
+ fast-deep-equal: 2.0.1
+
react-refresh@0.14.2: {}
+ react-remove-scroll-bar@2.3.8(@types/react@18.2.47)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.3(@types/react@18.2.47)(react@18.3.1)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
react-remove-scroll-bar@2.3.8(@types/react@18.3.23)(react@18.3.1):
dependencies:
react: 18.3.1
@@ -12685,6 +16199,17 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ react-remove-scroll@2.5.7(@types/react@18.2.47)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.8(@types/react@18.2.47)(react@18.3.1)
+ react-style-singleton: 2.2.3(@types/react@18.2.47)(react@18.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@18.2.47)(react@18.3.1)
+ use-sidecar: 1.1.3(@types/react@18.2.47)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.2.47
+
react-remove-scroll@2.7.1(@types/react@18.3.23)(react@18.3.1):
dependencies:
react: 18.3.1
@@ -12713,6 +16238,14 @@ snapshots:
'@remix-run/router': 1.23.0
react: 18.3.1
+ react-style-singleton@2.2.3(@types/react@18.2.47)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
react-style-singleton@2.2.3(@types/react@18.3.23)(react@18.3.1):
dependencies:
get-nonce: 1.0.1
@@ -12732,6 +16265,10 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
react-lifecycles-compat: 3.0.4
+ react@18.2.0:
+ dependencies:
+ loose-envify: 1.4.0
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -12874,24 +16411,34 @@ snapshots:
'@remix-run/server-runtime': 2.16.7(typescript@5.8.3)
react: 18.3.1
- remix-utils@7.7.0(@remix-run/node@2.1.0(typescript@5.8.3))(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/router@1.23.0)(react@18.3.1)(zod@3.23.8):
+ remix-utils@7.7.0(@remix-run/node@2.1.0(typescript@5.8.3))(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/router@1.23.0)(crypto-js@4.2.0)(react@18.3.1)(zod@3.23.8):
dependencies:
type-fest: 4.41.0
optionalDependencies:
'@remix-run/node': 2.1.0(typescript@5.8.3)
'@remix-run/react': 2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)
'@remix-run/router': 1.23.0
+ crypto-js: 4.2.0
react: 18.3.1
zod: 3.23.8
require-directory@2.1.1: {}
+ require-from-string@2.0.2: {}
+
require-like@0.1.2: {}
require-main-filename@2.0.0: {}
requireindex@1.2.0: {}
+ resend@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@react-email/render': 0.0.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ transitivePeerDependencies:
+ - react
+ - react-dom
+
resolve-from@4.0.0: {}
resolve-from@5.0.0: {}
@@ -13001,8 +16548,19 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ schema-utils@4.3.2:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
+
secure-json-parse@2.7.0: {}
+ selderee@0.11.0:
+ dependencies:
+ parseley: 0.12.1
+
semver@5.7.2: {}
semver@6.3.1: {}
@@ -13027,6 +16585,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
serve-static@1.16.2:
dependencies:
encodeurl: 2.0.0
@@ -13123,6 +16685,54 @@ snapshots:
wcwidth: 1.0.1
yargs: 15.4.1
+ socket.io-adapter@2.5.5:
+ dependencies:
+ debug: 4.3.7
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ socket.io-client@4.7.3:
+ dependencies:
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.3.7
+ engine.io-client: 6.5.4
+ socket.io-parser: 4.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ socket.io-parser@4.2.4:
+ dependencies:
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.3.7
+ transitivePeerDependencies:
+ - supports-color
+
+ socket.io@4.7.3:
+ dependencies:
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cors: 2.8.5
+ debug: 4.3.7
+ engine.io: 6.5.5
+ socket.io-adapter: 2.5.5
+ socket.io-parser: 4.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ sonner@1.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ source-map-js@1.0.2: {}
+
source-map-js@1.2.1: {}
source-map-support@0.5.21:
@@ -13163,6 +16773,10 @@ snapshots:
stable-hash@0.0.5: {}
+ stacktrace-parser@0.1.10:
+ dependencies:
+ type-fest: 0.7.1
+
standard-as-callback@2.1.0: {}
statuses@2.0.1: {}
@@ -13180,6 +16794,8 @@ snapshots:
dependencies:
mixme: 0.5.10
+ streamsearch@1.1.0: {}
+
string-hash@1.1.3: {}
string-width@4.2.3:
@@ -13275,10 +16891,29 @@ snapshots:
strip-json-comments@3.1.1: {}
+ strnum@1.1.2: {}
+
style-to-object@0.4.4:
dependencies:
inline-style-parser: 0.1.1
+ styled-jsx@5.1.1(@babel/core@7.24.5)(react@18.3.1):
+ dependencies:
+ client-only: 0.0.1
+ react: 18.3.1
+ optionalDependencies:
+ '@babel/core': 7.24.5
+
+ sucrase@3.35.0:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ commander: 4.1.1
+ glob: 10.4.5
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.7
+ ts-interface-checker: 0.1.13
+
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@@ -13291,6 +16926,10 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
supports-preserve-symlinks-flag@1.0.0: {}
swr@2.3.3(react@18.3.1):
@@ -13299,6 +16938,10 @@ snapshots:
react: 18.3.1
use-sync-external-store: 1.5.0(react@18.3.1)
+ tailwind-merge@2.2.0:
+ dependencies:
+ '@babel/runtime': 7.27.3
+
tailwind-merge@2.6.0: {}
tailwind-scrollbar-hide@2.0.0(tailwindcss@4.1.7):
@@ -13345,6 +16988,33 @@ snapshots:
reduce-css-calc: 2.1.8
resolve: 1.22.10
+ tailwindcss@3.4.0:
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.3
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.7
+ lilconfig: 2.1.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.3
+ postcss-import: 15.1.0(postcss@8.5.3)
+ postcss-js: 4.0.1(postcss@8.5.3)
+ postcss-load-config: 4.0.2(postcss@8.5.3)
+ postcss-nested: 6.2.0(postcss@8.5.3)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.10
+ sucrase: 3.35.0
+ transitivePeerDependencies:
+ - ts-node
+
tailwindcss@4.1.7: {}
tapable@2.2.2: {}
@@ -13384,8 +17054,47 @@ snapshots:
term-size@2.2.1: {}
+ terser-webpack-plugin@5.3.14(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)(webpack@5.99.9):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ jest-worker: 27.5.1
+ schema-utils: 4.3.2
+ serialize-javascript: 6.0.2
+ terser: 5.42.0
+ webpack: 5.99.9(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)
+ optionalDependencies:
+ '@swc/core': 1.3.101(@swc/helpers@0.5.2)
+ esbuild: 0.19.11
+
+ terser-webpack-plugin@5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5)):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ jest-worker: 27.5.1
+ schema-utils: 4.3.2
+ serialize-javascript: 6.0.2
+ terser: 5.42.0
+ webpack: 5.99.9(esbuild@0.25.5)
+ optionalDependencies:
+ esbuild: 0.25.5
+ optional: true
+
+ terser@5.42.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.6
+ acorn: 8.14.1
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
text-table@0.2.0: {}
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
throttleit@2.1.0: {}
through2@2.0.5:
@@ -13424,6 +17133,8 @@ snapshots:
dependencies:
typescript: 5.8.3
+ ts-interface-checker@0.1.13: {}
+
tsconfck@3.1.6(typescript@5.8.3):
optionalDependencies:
typescript: 5.8.3
@@ -13499,6 +17210,8 @@ snapshots:
type-fest@0.6.0: {}
+ type-fest@0.7.1: {}
+
type-fest@0.8.1: {}
type-fest@4.41.0: {}
@@ -13541,6 +17254,8 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
+ typescript@5.1.6: {}
+
typescript@5.5.4: {}
typescript@5.8.3: {}
@@ -13648,6 +17363,13 @@ snapshots:
dependencies:
punycode: 2.3.1
+ use-callback-ref@1.3.3(@types/react@18.2.47)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
use-callback-ref@1.3.3(@types/react@18.3.23)(react@18.3.1):
dependencies:
react: 18.3.1
@@ -13655,6 +17377,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.23
+ use-sidecar@1.1.3(@types/react@18.2.47)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 18.2.47
+
use-sidecar@1.1.3(@types/react@18.3.23)(react@18.3.1):
dependencies:
detect-node-es: 1.1.0
@@ -13713,13 +17443,13 @@ snapshots:
unist-util-stringify-position: 3.0.3
vfile-message: 3.1.4
- vite-node@1.6.1(@types/node@22.15.21)(lightningcss@1.30.1):
+ vite-node@1.6.1(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0):
dependencies:
cac: 6.7.14
debug: 4.4.1
pathe: 1.1.2
picocolors: 1.1.1
- vite: 5.4.19(@types/node@22.15.21)(lightningcss@1.30.1)
+ vite: 5.4.19(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0)
transitivePeerDependencies:
- '@types/node'
- less
@@ -13731,13 +17461,13 @@ snapshots:
- supports-color
- terser
- vite-node@3.1.4(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0):
+ vite-node@3.1.4(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
dependencies:
cac: 6.7.14
debug: 4.4.1
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -13752,18 +17482,18 @@ snapshots:
- tsx
- yaml
- vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)):
+ vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)):
dependencies:
debug: 4.4.1
globrex: 0.1.2
tsconfck: 3.1.6(typescript@5.8.3)
optionalDependencies:
- vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@5.4.19(@types/node@22.15.21)(lightningcss@1.30.1):
+ vite@5.4.19(@types/node@22.15.21)(lightningcss@1.30.1)(terser@5.42.0):
dependencies:
esbuild: 0.21.5
postcss: 8.5.3
@@ -13772,8 +17502,9 @@ snapshots:
'@types/node': 22.15.21
fsevents: 2.3.3
lightningcss: 1.30.1
+ terser: 5.42.0
- vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0):
+ vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.42.0)(yaml@2.8.0):
dependencies:
esbuild: 0.25.5
fdir: 6.4.4(picomatch@4.0.2)
@@ -13786,8 +17517,14 @@ snapshots:
fsevents: 2.3.3
jiti: 2.4.2
lightningcss: 1.30.1
+ terser: 5.42.0
yaml: 2.8.0
+ watchpack@2.4.4:
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
wcwidth@1.0.1:
dependencies:
defaults: 1.0.4
@@ -13804,6 +17541,71 @@ snapshots:
webidl-conversions@3.0.1: {}
+ webpack-sources@3.3.2: {}
+
+ webpack@5.99.9(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11):
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.7
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.14.1
+ browserslist: 4.24.5
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.18.1
+ es-module-lexer: 1.7.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.0
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 4.3.2
+ tapable: 2.2.2
+ terser-webpack-plugin: 5.3.14(@swc/core@1.3.101(@swc/helpers@0.5.2))(esbuild@0.19.11)(webpack@5.99.9)
+ watchpack: 2.4.4
+ webpack-sources: 3.3.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ webpack@5.99.9(esbuild@0.25.5):
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.7
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.14.1
+ browserslist: 4.24.5
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.18.1
+ es-module-lexer: 1.7.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.0
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 4.3.2
+ tapable: 2.2.2
+ terser-webpack-plugin: 5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5))
+ watchpack: 2.4.4
+ webpack-sources: 3.3.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+ optional: true
+
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@@ -13893,6 +17695,10 @@ snapshots:
ws@7.5.10: {}
+ ws@8.17.1: {}
+
+ xmlhttprequest-ssl@2.0.0: {}
+
xtend@4.0.2: {}
y18n@4.0.3: {}
diff --git a/turbo.json b/turbo.json
index 82fb0c9..c56c02e 100644
--- a/turbo.json
+++ b/turbo.json
@@ -56,6 +56,7 @@
"NEO4J_URI",
"NEO4J_USERNAME",
"NEO4J_PASSWORD",
- "OPENAI_API_KEY"
+ "OPENAI_API_KEY",
+ "MAGIC_LINK_SECRET"
]
}