From e775aeb20e2e785ab6c1a75de7e7bf2fd6dc3031 Mon Sep 17 00:00:00 2001
From: Divyanshgupta030 <145568562+Divyanshgupta030@users.noreply.github.com>
Date: Sun, 10 Nov 2024 20:25:27 +0530
Subject: [PATCH] add auth
---
apps/api/app/api/[[...route]]/hello.ts | 46 +
apps/api/app/api/[[...route]]/mail.ts | 62 +
apps/api/app/api/[[...route]]/route.ts | 124 +-
apps/api/package.json | 8 +-
apps/api/tsconfig.json | 10 +-
apps/app/package.json | 7 +-
apps/www/app/(auth)/dashboard/page.tsx | 14 +
apps/www/app/(auth)/sign-in/page.tsx | 9 +
apps/www/app/(auth)/sign-up/page.tsx | 9 +
.../www/app/sign-in/[[...sign-in]]/layout.tsx | 16 -
apps/www/app/sign-in/[[...sign-in]]/page.tsx | 63 -
.../components/custom/account-switcher.tsx | 37 +
.../www/components/custom/signInComponent.tsx | 75 +
.../www/components/custom/signUpComponent.tsx | 90 +
apps/www/components/ui/button.tsx | 26 +-
apps/www/components/ui/form.tsx | 178 ++
apps/www/components/ui/label.tsx | 26 +
apps/www/lib/auth-client.ts | 13 +
apps/www/lib/server.ts | 16 +
apps/www/package.json | 9 +-
packages/auth/package.json | 18 +
packages/auth/src/auth.ts | 36 +
.../20241110144439_auth/migration.sql | 57 +
.../prisma/migrations/migration_lock.toml | 3 +
packages/database/prisma/schema.prisma | 55 +-
packages/mail/.gitignore | 3 +
packages/mail/package.json | 24 +
packages/mail/src/constants.ts | 0
packages/mail/src/index.ts | 39 +
packages/mail/src/template/template.tsx | 127 ++
packages/mail/tsconfig.json | 10 +
packages/types/package.json | 14 +
packages/types/src/mail.ts | 13 +
pnpm-lock.yaml | 1870 ++++++++++++++++-
34 files changed, 2944 insertions(+), 163 deletions(-)
create mode 100644 apps/api/app/api/[[...route]]/hello.ts
create mode 100644 apps/api/app/api/[[...route]]/mail.ts
create mode 100644 apps/www/app/(auth)/dashboard/page.tsx
create mode 100644 apps/www/app/(auth)/sign-in/page.tsx
create mode 100644 apps/www/app/(auth)/sign-up/page.tsx
delete mode 100644 apps/www/app/sign-in/[[...sign-in]]/layout.tsx
delete mode 100644 apps/www/app/sign-in/[[...sign-in]]/page.tsx
create mode 100644 apps/www/components/custom/account-switcher.tsx
create mode 100644 apps/www/components/custom/signInComponent.tsx
create mode 100644 apps/www/components/custom/signUpComponent.tsx
create mode 100644 apps/www/components/ui/form.tsx
create mode 100644 apps/www/components/ui/label.tsx
create mode 100644 apps/www/lib/auth-client.ts
create mode 100644 apps/www/lib/server.ts
create mode 100644 packages/auth/package.json
create mode 100644 packages/auth/src/auth.ts
create mode 100644 packages/database/prisma/migrations/20241110144439_auth/migration.sql
create mode 100644 packages/database/prisma/migrations/migration_lock.toml
create mode 100644 packages/mail/.gitignore
create mode 100644 packages/mail/package.json
create mode 100644 packages/mail/src/constants.ts
create mode 100644 packages/mail/src/index.ts
create mode 100644 packages/mail/src/template/template.tsx
create mode 100644 packages/mail/tsconfig.json
create mode 100644 packages/types/package.json
create mode 100644 packages/types/src/mail.ts
diff --git a/apps/api/app/api/[[...route]]/hello.ts b/apps/api/app/api/[[...route]]/hello.ts
new file mode 100644
index 0000000..9788240
--- /dev/null
+++ b/apps/api/app/api/[[...route]]/hello.ts
@@ -0,0 +1,46 @@
+import { Hono } from "hono";
+const app = new Hono();
+import { prisma } from "@repo/db";
+app
+ .get("/", async (c) => {
+ const user = await prisma.user.findMany();
+ return c.json({
+ user,
+ });
+ })
+ .patch(async (c) => {
+ const name = await c.req.json();
+ const test = await prisma.user.update({
+ where: {
+ id: "123",
+ },
+ data: {
+ name: name.name,
+ },
+ });
+ return c.json({
+ test,
+ });
+ })
+ .delete(async (c) => {
+ const test = await prisma.user.delete({
+ where: {
+ id: "2",
+ },
+ });
+ return c.json({
+ test,
+ });
+ })
+ .post(async (c) => {
+ const body = await c.req.json();
+ console.log(body);
+ const test = await prisma.user.create({
+ data: body,
+ });
+ return c.json({
+ test,
+ });
+ });
+
+export default app;
diff --git a/apps/api/app/api/[[...route]]/mail.ts b/apps/api/app/api/[[...route]]/mail.ts
new file mode 100644
index 0000000..1db0248
--- /dev/null
+++ b/apps/api/app/api/[[...route]]/mail.ts
@@ -0,0 +1,62 @@
+import { Hono } from "hono";
+import { sendBatchEmail, sendEmail } from "@repo/mail";
+import { mailBatchSchema, mailSchema } from "@repo/types";
+import { zValidator } from "@hono/zod-validator";
+
+const app = new Hono();
+
+app
+ .post("/send", zValidator("json", mailSchema), async (c) => {
+ const { email, subject } = c.req.valid("json");
+ const { data, error } = await sendEmail(email, subject);
+ if (error) {
+ return c.json(
+ {
+ message: "Email sent failed",
+ },
+ 400,
+ );
+ }
+ return c.json(
+ {
+ message: "Email sent successfully",
+ data,
+ },
+ 200,
+ );
+ })
+ .get((c) => {
+ return c.json({
+ message: "mail api is alive",
+ status: 200,
+ });
+ });
+
+app
+ .post("/send-batch", zValidator("json", mailBatchSchema), async (c) => {
+ const { emails, subject } = c.req.valid("json");
+ const { data, error } = await sendBatchEmail(emails, subject);
+ if (error) {
+ return c.json(
+ {
+ message: "Email sent failed",
+ },
+ 400,
+ );
+ }
+ return c.json(
+ {
+ message: "All Emails sent successfully",
+ data,
+ },
+ 200,
+ );
+ })
+ .get((c) => {
+ return c.json({
+ message: "all mail api is alive",
+ status: 200,
+ });
+ });
+
+export default app;
diff --git a/apps/api/app/api/[[...route]]/route.ts b/apps/api/app/api/[[...route]]/route.ts
index d9ad22f..f26676f 100644
--- a/apps/api/app/api/[[...route]]/route.ts
+++ b/apps/api/app/api/[[...route]]/route.ts
@@ -1,52 +1,69 @@
-import { prisma } from "@repo/db";
-import { Hono } from "hono";
import { handle } from "hono/vercel";
+import { Hono } from "hono";
+import { auth } from "@repo/auth";
+import { cors } from "hono/cors";
+import mail from "./mail";
+import hello from "./hello";
+
+const allowedOrigins = [
+ "http://localhost:3003",
+ "https://www.plura.pro",
+ "http://app.plura.pro",
+];
export const runtime = "nodejs";
-const app = new Hono().basePath("/api");
+const app = new Hono<{
+ Variables: {
+ user: typeof auth.$Infer.Session.user | null;
+ session: typeof auth.$Infer.Session.session | null;
+ };
+}>().basePath("/api");
-app
- .get("/hello", async (c) => {
- const test = await prisma.user.findMany();
- return c.json({
- test,
- });
- })
- .patch(async (c) => {
- const name = await c.req.json();
- const test = await prisma.user.update({
- where: {
- id: "123",
- },
- data: {
- name: name.name,
- },
- });
- return c.json({
- test,
- });
- })
- .delete(async (c) => {
- const test = await prisma.user.delete({
- where: {
- id: "2",
+app.use(
+ "/auth/**",
+ cors({
+ origin: allowedOrigins,
+ allowHeaders: ["Content-Type", "Authorization"],
+ allowMethods: ["POST", "GET", "OPTIONS"],
+ exposeHeaders: ["Content-Length"],
+ maxAge: 600,
+ credentials: true,
+ }),
+);
+app.options("/auth/**", (c) => {
+ const origin = c.req.raw.headers.get("origin") ?? "";
+
+ if (allowedOrigins.includes(origin)) {
+ return new Response(null, {
+ status: 204,
+ headers: {
+ "Access-Control-Allow-Origin": origin,
+ "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
+ "Access-Control-Allow-Headers": "Content-Type, Authorization",
+ "Access-Control-Allow-Credentials": "true",
+ "Access-Control-Max-Age": "600",
},
});
- return c.json({
- test,
- });
- })
- .post(async (c) => {
- const body = await c.req.json();
- console.log(body);
- const test = await prisma.user.create({
- data: body,
- });
- return c.json({
- test,
- });
+ }
+
+ return new Response("Forbidden", {
+ status: 403,
});
+});
+app.use("*", async (c, next) => {
+ const session = await auth.api.getSession({ headers: c.req.raw.headers });
+
+ if (!session) {
+ c.set("user", null);
+ c.set("session", null);
+ return next();
+ }
+
+ c.set("user", session.user);
+ c.set("session", session.session);
+ return next();
+});
app.get("/health", async (c) => {
return c.json({
@@ -54,10 +71,33 @@ app.get("/health", async (c) => {
status: 200,
});
});
+app.get("/session", async (c) => {
+ const session = c.get("session");
+ const user = c.get("user");
+
+ if (!user) return c.body(null, 401);
+
+ return c.json({
+ session,
+ user,
+ });
+});
+app.route("/hello", hello);
+app.route("/mail", mail);
+app.on(["POST", "GET"], "/auth/**", (c) => {
+ return auth.handler(c.req.raw);
+});
+app.get("/multi-sessions", async (c) => {
+ const res = await auth.api.listDeviceSessions({
+ headers: c.req.raw.headers,
+ });
+ return c.json(res);
+});
const GET = handle(app);
const POST = handle(app);
const PATCH = handle(app);
const DELETE = handle(app);
+const OPTIONS = handle(app);
-export { GET, PATCH, POST, DELETE };
+export { GET, PATCH, POST, DELETE, OPTIONS };
diff --git a/apps/api/package.json b/apps/api/package.json
index 8ef407c..50bc7fd 100644
--- a/apps/api/package.json
+++ b/apps/api/package.json
@@ -13,17 +13,21 @@
"format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache"
},
"dependencies": {
+ "@hono/node-server": "^1.13.5",
+ "@hono/zod-validator": "^0.4.1",
+ "@repo/auth": "workspace:*",
"@repo/db": "workspace:*",
- "contentlayer2": "^0.5.3",
"hono": "^4.6.9",
"next": "15.0.2",
"react": "19.0.0-rc-02c0e824-20241028",
- "react-dom": "19.0.0-rc-02c0e824-20241028"
+ "react-dom": "19.0.0-rc-02c0e824-20241028",
+ "zod": "^3.23.8"
},
"devDependencies": {
"@types/node": "18.11.18",
"@types/react": "18.0.26",
"@types/react-dom": "18.0.10",
+ "dotenv": "^16.4.5",
"typescript": "^5"
}
}
\ No newline at end of file
diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json
index f614f33..85ea767 100644
--- a/apps/api/tsconfig.json
+++ b/apps/api/tsconfig.json
@@ -12,8 +12,8 @@
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
- "module": "NodeNext",
- "moduleResolution": "NodeNext",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
@@ -34,8 +34,10 @@
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
- ".next/types/**/*.ts"
- ],
+ ".next/types/**/*.ts",
+ "src/**/*.ts",
+ "src/**/*.d.ts"
+, "../../packages/types/auth.ts" ],
"exclude": [
"node_modules"
]
diff --git a/apps/app/package.json b/apps/app/package.json
index 7d1b5ef..3b67683 100644
--- a/apps/app/package.json
+++ b/apps/app/package.json
@@ -47,7 +47,10 @@
"sonner": "^1.7.0",
"tailwind-merge": "^2.5.4",
"tailwindcss-animate": "^1.0.7",
- "zod": "^3.23.8"
+ "zod": "^3.23.8",
+ "@repo/auth": "workspace:*",
+ "@repo/db": "workspace:*",
+ "@repo/types": "workspace:*"
},
"devDependencies": {
"@types/node": "^20",
@@ -60,4 +63,4 @@
"tailwindcss": "^3.4.1",
"typescript": "^5"
}
-}
+}
\ No newline at end of file
diff --git a/apps/www/app/(auth)/dashboard/page.tsx b/apps/www/app/(auth)/dashboard/page.tsx
new file mode 100644
index 0000000..0df0b68
--- /dev/null
+++ b/apps/www/app/(auth)/dashboard/page.tsx
@@ -0,0 +1,14 @@
+import AccountSwitcher from "@/components/custom/account-switcher";
+import { getMultipleSessions, getSession } from "@/lib/server";
+
+export default async function page() {
+ const session = await getSession();
+ const multipleSessions = await getMultipleSessions();
+ return (
+
+
+
{JSON.stringify(session, null, 1)}
+
{JSON.stringify(multipleSessions,null,2)}
+
+ );
+}
diff --git a/apps/www/app/(auth)/sign-in/page.tsx b/apps/www/app/(auth)/sign-in/page.tsx
new file mode 100644
index 0000000..bd81345
--- /dev/null
+++ b/apps/www/app/(auth)/sign-in/page.tsx
@@ -0,0 +1,9 @@
+import SignInComponent from "@/components/custom/signInComponent";
+
+export default function page() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/www/app/(auth)/sign-up/page.tsx b/apps/www/app/(auth)/sign-up/page.tsx
new file mode 100644
index 0000000..ebdb563
--- /dev/null
+++ b/apps/www/app/(auth)/sign-up/page.tsx
@@ -0,0 +1,9 @@
+import SignUpComponent from "@/components/custom/signUpComponent";
+
+export default function page() {
+ return (
+
+
+
+ );
+}
diff --git a/apps/www/app/sign-in/[[...sign-in]]/layout.tsx b/apps/www/app/sign-in/[[...sign-in]]/layout.tsx
deleted file mode 100644
index 6425796..0000000
--- a/apps/www/app/sign-in/[[...sign-in]]/layout.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { SiteFooter } from "@/components/custom/site/footer";
-import { SiteHeader } from "@/components/custom/site/header";
-
-interface AppLayoutProps {
- children: React.ReactNode;
-}
-
-export default function AppLayout({ children }: AppLayoutProps) {
- return (
-
-
- {children}
-
-
- );
-}
diff --git a/apps/www/app/sign-in/[[...sign-in]]/page.tsx b/apps/www/app/sign-in/[[...sign-in]]/page.tsx
deleted file mode 100644
index 76e5c85..0000000
--- a/apps/www/app/sign-in/[[...sign-in]]/page.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { Button } from "@/components/ui/button";
-import { PiGithubLogoBold } from "react-icons/pi";
-import { SiDiscord } from "react-icons/si";
-import { FcGoogle } from "react-icons/fc";
-import { Input } from "@/components/ui/input";
-import Link from "next/link";
-export default function SignInPage() {
- return (
-
-
-
-
-
- Transform how you work.
-
-
- Log In Your Plura Account
-
-
-
-
-
-
-
-
-
-
-
-
- Email
-
-
-
-
- already a member
-
-
-
- {/* experiment here*/}
-
-
-
- );
-}
diff --git a/apps/www/components/custom/account-switcher.tsx b/apps/www/components/custom/account-switcher.tsx
new file mode 100644
index 0000000..9bcfb90
--- /dev/null
+++ b/apps/www/components/custom/account-switcher.tsx
@@ -0,0 +1,37 @@
+"use client";
+import { authClient } from "@/lib/auth-client";
+import { Session } from "@repo/auth";
+import { useRouter } from "next/navigation";
+interface Props {
+ session: Session[];
+ activeSession: Session;
+}
+export default function AccountSwitcher({ session, activeSession }: Props) {
+ const router = useRouter();
+ const onSelect = async (sessionId: string) => {
+ console.log(sessionId);
+ const active = await authClient.multiSession.setActive({
+ sessionId: sessionId,
+ });
+
+ console.log(active);
+ router.refresh();
+ };
+ return (
+
+
+
+ );
+}
diff --git a/apps/www/components/custom/signInComponent.tsx b/apps/www/components/custom/signInComponent.tsx
new file mode 100644
index 0000000..ad587ea
--- /dev/null
+++ b/apps/www/components/custom/signInComponent.tsx
@@ -0,0 +1,75 @@
+"use client";
+
+import { zodResolver } from "@hookform/resolvers/zod";
+import { useForm } from "react-hook-form";
+import { z } from "zod";
+
+import { Button } from "@/components/ui/button";
+import {
+ Form,
+ FormControl,
+ FormField,
+ FormItem,
+ FormLabel,
+ FormMessage,
+} from "@/components/ui/form";
+import { Input } from "@/components/ui/input";
+import { authClient } from "@/lib/auth-client";
+
+const formSchema = z.object({
+ email: z.string().email(),
+ password: z.string().min(8),
+});
+
+export default function SignInComponent() {
+ const form = useForm>({
+ resolver: zodResolver(formSchema),
+ defaultValues: {
+ email: "",
+ password: "",
+ },
+ });
+ const onSubmit = async (SignInData: z.infer) => {
+ const { data, error } = await authClient.signIn.email(
+ {
+ email: SignInData.email,
+ password: SignInData.password,
+ callbackURL: "/dashboard",
+ },
+ );
+ };
+
+ return (
+
+
+ );
+}
diff --git a/apps/www/components/custom/signUpComponent.tsx b/apps/www/components/custom/signUpComponent.tsx
new file mode 100644
index 0000000..7d4c90f
--- /dev/null
+++ b/apps/www/components/custom/signUpComponent.tsx
@@ -0,0 +1,90 @@
+"use client";
+
+import { zodResolver } from "@hookform/resolvers/zod";
+import { useForm } from "react-hook-form";
+import { z } from "zod";
+
+import { Button } from "@/components/ui/button";
+import {
+ Form,
+ FormControl,
+ FormDescription,
+ FormField,
+ FormItem,
+ FormLabel,
+ FormMessage,
+} from "@/components/ui/form";
+import { Input } from "@/components/ui/input";
+import { authClient } from "@/lib/auth-client";
+
+const formSchema = z.object({
+ name: z.string(),
+ email: z.string().email(),
+ password: z.string().min(8),
+});
+
+export default function SignUpComponent() {
+ const form = useForm>({
+ resolver: zodResolver(formSchema),
+ defaultValues: {
+ email: "",
+ password: "",
+ },
+ });
+ const onSubmit = async (SignInData: z.infer) => {
+ const { data, error } = await authClient.signUp.email(
+ {
+ name: SignInData.name,
+ email: SignInData.email,
+ password: SignInData.password,
+ }
+ );
+ };
+
+ return (
+
+
+ );
+}
diff --git a/apps/www/components/ui/button.tsx b/apps/www/components/ui/button.tsx
index d09a695..65d4fcd 100644
--- a/apps/www/components/ui/button.tsx
+++ b/apps/www/components/ui/button.tsx
@@ -1,8 +1,8 @@
-import * as React from "react";
-import { Slot } from "@radix-ui/react-slot";
-import { cva, type VariantProps } from "class-variance-authority";
+import * as React from "react"
+import { Slot } from "@radix-ui/react-slot"
+import { cva, type VariantProps } from "class-variance-authority"
-import { cn } from "@/lib/utils";
+import { cn } from "@/lib/utils"
const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
@@ -31,27 +31,27 @@ const buttonVariants = cva(
variant: "default",
size: "default",
},
- },
-);
+ }
+)
export interface ButtonProps
extends React.ButtonHTMLAttributes,
VariantProps {
- asChild?: boolean;
+ asChild?: boolean
}
const Button = React.forwardRef(
({ className, variant, size, asChild = false, ...props }, ref) => {
- const Comp = asChild ? Slot : "button";
+ const Comp = asChild ? Slot : "button"
return (
- );
- },
-);
-Button.displayName = "Button";
+ )
+ }
+)
+Button.displayName = "Button"
-export { Button, buttonVariants };
+export { Button, buttonVariants }
diff --git a/apps/www/components/ui/form.tsx b/apps/www/components/ui/form.tsx
new file mode 100644
index 0000000..b6daa65
--- /dev/null
+++ b/apps/www/components/ui/form.tsx
@@ -0,0 +1,178 @@
+"use client"
+
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { Slot } from "@radix-ui/react-slot"
+import {
+ Controller,
+ ControllerProps,
+ FieldPath,
+ FieldValues,
+ FormProvider,
+ useFormContext,
+} from "react-hook-form"
+
+import { cn } from "@/lib/utils"
+import { Label } from "@/components/ui/label"
+
+const Form = FormProvider
+
+type FormFieldContextValue<
+ TFieldValues extends FieldValues = FieldValues,
+ TName extends FieldPath = FieldPath
+> = {
+ name: TName
+}
+
+const FormFieldContext = React.createContext(
+ {} as FormFieldContextValue
+)
+
+const FormField = <
+ TFieldValues extends FieldValues = FieldValues,
+ TName extends FieldPath = FieldPath
+>({
+ ...props
+}: ControllerProps) => {
+ return (
+
+
+
+ )
+}
+
+const useFormField = () => {
+ const fieldContext = React.useContext(FormFieldContext)
+ const itemContext = React.useContext(FormItemContext)
+ const { getFieldState, formState } = useFormContext()
+
+ const fieldState = getFieldState(fieldContext.name, formState)
+
+ if (!fieldContext) {
+ throw new Error("useFormField should be used within ")
+ }
+
+ const { id } = itemContext
+
+ return {
+ id,
+ name: fieldContext.name,
+ formItemId: `${id}-form-item`,
+ formDescriptionId: `${id}-form-item-description`,
+ formMessageId: `${id}-form-item-message`,
+ ...fieldState,
+ }
+}
+
+type FormItemContextValue = {
+ id: string
+}
+
+const FormItemContext = React.createContext(
+ {} as FormItemContextValue
+)
+
+const FormItem = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => {
+ const id = React.useId()
+
+ return (
+
+
+
+ )
+})
+FormItem.displayName = "FormItem"
+
+const FormLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => {
+ const { error, formItemId } = useFormField()
+
+ return (
+
+ )
+})
+FormLabel.displayName = "FormLabel"
+
+const FormControl = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ ...props }, ref) => {
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField()
+
+ return (
+
+ )
+})
+FormControl.displayName = "FormControl"
+
+const FormDescription = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => {
+ const { formDescriptionId } = useFormField()
+
+ return (
+
+ )
+})
+FormDescription.displayName = "FormDescription"
+
+const FormMessage = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, children, ...props }, ref) => {
+ const { error, formMessageId } = useFormField()
+ const body = error ? String(error?.message) : children
+
+ if (!body) {
+ return null
+ }
+
+ return (
+
+ {body}
+
+ )
+})
+FormMessage.displayName = "FormMessage"
+
+export {
+ useFormField,
+ Form,
+ FormItem,
+ FormLabel,
+ FormControl,
+ FormDescription,
+ FormMessage,
+ FormField,
+}
diff --git a/apps/www/components/ui/label.tsx b/apps/www/components/ui/label.tsx
new file mode 100644
index 0000000..5341821
--- /dev/null
+++ b/apps/www/components/ui/label.tsx
@@ -0,0 +1,26 @@
+"use client"
+
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const labelVariants = cva(
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
+)
+
+const Label = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, ...props }, ref) => (
+
+))
+Label.displayName = LabelPrimitive.Root.displayName
+
+export { Label }
diff --git a/apps/www/lib/auth-client.ts b/apps/www/lib/auth-client.ts
new file mode 100644
index 0000000..c2257d2
--- /dev/null
+++ b/apps/www/lib/auth-client.ts
@@ -0,0 +1,13 @@
+import { createAuthClient } from "better-auth/react";
+import { multiSessionClient } from "better-auth/client/plugins";
+import { Http2ServerRequest } from "http2";
+const BaseDomain =
+ process.env.NODE_ENV === "production"
+ ? "https://api.plura.pro"
+ : "http://localhost:3001";
+export const authClient = createAuthClient({
+ baseURL: BaseDomain,
+ plugins: [multiSessionClient()],
+});
+
+export const { signIn, signUp, useSession, signOut, multiSession } = authClient;
diff --git a/apps/www/lib/server.ts b/apps/www/lib/server.ts
new file mode 100644
index 0000000..7b3a442
--- /dev/null
+++ b/apps/www/lib/server.ts
@@ -0,0 +1,16 @@
+"use server";
+import { headers } from "next/headers";
+
+export const getMultipleSessions = async () => {
+ const res = await fetch("http://localhost:3001/api/multi-sessions", {
+ headers: await headers(),
+ });
+ return res.json();
+};
+
+export const getSession = async () => {
+ const res = await fetch("http://localhost:3001/api/session", {
+ headers: await headers(),
+ });
+ return res.json();
+};
diff --git a/apps/www/package.json b/apps/www/package.json
index ec44cce..ec22ade 100644
--- a/apps/www/package.json
+++ b/apps/www/package.json
@@ -13,9 +13,11 @@
"format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache"
},
"dependencies": {
+ "@hookform/resolvers": "^3.9.1",
"@radix-ui/react-avatar": "^1.1.1",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-icons": "^1.3.1",
+ "@radix-ui/react-label": "^2.1.0",
"@radix-ui/react-scroll-area": "^1.2.0",
"@radix-ui/react-separator": "^1.1.0",
"@radix-ui/react-slot": "^1.1.0",
@@ -30,9 +32,14 @@
"next-themes": "^0.4.3",
"react": "19.0.0-rc-02c0e824-20241028",
"react-dom": "19.0.0-rc-02c0e824-20241028",
+ "react-hook-form": "^7.53.1",
"react-icons": "^5.3.0",
"tailwind-merge": "^2.5.4",
- "tailwindcss-animate": "^1.0.7"
+ "tailwindcss-animate": "^1.0.7",
+ "zod": "^3.23.8",
+ "@repo/auth": "workspace:*",
+ "@repo/db": "workspace:*",
+ "@repo/types": "workspace:*"
},
"devDependencies": {
"@types/node": "^20",
diff --git a/packages/auth/package.json b/packages/auth/package.json
new file mode 100644
index 0000000..a63a932
--- /dev/null
+++ b/packages/auth/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@repo/auth",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "exports": {
+ ".": "./src/auth.ts"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "better-call": "0.2.14-beta.3"
+ }
+}
diff --git a/packages/auth/src/auth.ts b/packages/auth/src/auth.ts
new file mode 100644
index 0000000..a69660f
--- /dev/null
+++ b/packages/auth/src/auth.ts
@@ -0,0 +1,36 @@
+import { betterAuth, BetterAuthOptions } from "better-auth";
+import { prismaAdapter } from "better-auth/adapters/prisma";
+import { prisma } from "@repo/db";
+import { multiSession } from "better-auth/plugins";
+const BaseDomain =
+ process.env.NODE_ENV === "production"
+ ? process.env.API_DOMAIN as string
+ : "http://localhost:3001";
+ const AppDomain =
+ process.env.NODE_ENV === "production"
+ ? process.env.APP_DOMAIN as string
+ : "http://localhost:3003";
+
+export const config = {
+ trustedOrigins: [AppDomain],
+ baseURL: BaseDomain,
+ database: prismaAdapter(prisma, {
+ provider: "postgresql",
+ }),
+ secret: process.env.BETTER_AUTH_SECRET,
+ plugins: [multiSession()],
+ emailAndPassword: {
+ enabled: true,
+ },
+ ...(process.env.NODE_ENV === "production" && {
+ advanced: {
+ crossSubDomainCookies: {
+ enabled: true,
+ },
+ },
+ }),
+} satisfies BetterAuthOptions;
+
+export const auth = betterAuth(config);
+
+export type Session = typeof auth.$Infer.Session;
diff --git a/packages/database/prisma/migrations/20241110144439_auth/migration.sql b/packages/database/prisma/migrations/20241110144439_auth/migration.sql
new file mode 100644
index 0000000..ec029cb
--- /dev/null
+++ b/packages/database/prisma/migrations/20241110144439_auth/migration.sql
@@ -0,0 +1,57 @@
+-- CreateTable
+CREATE TABLE "user" (
+ "id" TEXT NOT NULL,
+ "name" TEXT NOT NULL,
+ "email" TEXT NOT NULL,
+ "emailVerified" BOOLEAN NOT NULL,
+ "image" TEXT,
+ "createdAt" TIMESTAMP(3) NOT NULL,
+ "updatedAt" TIMESTAMP(3) NOT NULL,
+
+ CONSTRAINT "user_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "session" (
+ "id" TEXT NOT NULL,
+ "expiresAt" TIMESTAMP(3) NOT NULL,
+ "ipAddress" TEXT,
+ "userAgent" TEXT,
+ "userId" TEXT NOT NULL,
+
+ CONSTRAINT "session_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "account" (
+ "id" TEXT NOT NULL,
+ "accountId" TEXT NOT NULL,
+ "providerId" TEXT NOT NULL,
+ "userId" TEXT NOT NULL,
+ "accessToken" TEXT,
+ "refreshToken" TEXT,
+ "idToken" TEXT,
+ "expiresAt" TIMESTAMP(3),
+ "password" TEXT,
+
+ CONSTRAINT "account_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "verification" (
+ "id" TEXT NOT NULL,
+ "identifier" TEXT NOT NULL,
+ "value" TEXT NOT NULL,
+ "expiresAt" TIMESTAMP(3) NOT NULL,
+
+ CONSTRAINT "verification_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateIndex
+CREATE UNIQUE INDEX "user_email_key" ON "user"("email");
+
+-- AddForeignKey
+ALTER TABLE "session" ADD CONSTRAINT "session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "account" ADD CONSTRAINT "account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/packages/database/prisma/migrations/migration_lock.toml b/packages/database/prisma/migrations/migration_lock.toml
new file mode 100644
index 0000000..fbffa92
--- /dev/null
+++ b/packages/database/prisma/migrations/migration_lock.toml
@@ -0,0 +1,3 @@
+# Please do not edit this file manually
+# It should be added in your version-control system (i.e. Git)
+provider = "postgresql"
\ No newline at end of file
diff --git a/packages/database/prisma/schema.prisma b/packages/database/prisma/schema.prisma
index dc5a9a3..9486ce1 100644
--- a/packages/database/prisma/schema.prisma
+++ b/packages/database/prisma/schema.prisma
@@ -1,8 +1,3 @@
-// This is your Prisma schema file,
-// learn more about it in the docs: https://pris.ly/d/prisma-schema
-
-// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
-// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
@@ -14,7 +9,51 @@ datasource db {
}
model User {
- id String @id @default(uuid())
- email String @unique
- name String?
+ id String @id
+ name String
+ email String
+ emailVerified Boolean
+ image String?
+ createdAt DateTime
+ updatedAt DateTime
+ accounts Account[]
+ sessions Session[]
+
+ @@unique([email])
+ @@map("user")
+}
+
+model Session {
+ id String @id
+ expiresAt DateTime
+ ipAddress String?
+ userAgent String?
+ userId String
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+
+ @@map("session")
+}
+
+model Account {
+ id String @id
+ accountId String
+ providerId String
+ userId String
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+ accessToken String?
+ refreshToken String?
+ idToken String?
+ expiresAt DateTime?
+ password String?
+
+ @@map("account")
+}
+
+model Verification {
+ id String @id
+ identifier String
+ value String
+ expiresAt DateTime
+
+ @@map("verification")
}
diff --git a/packages/mail/.gitignore b/packages/mail/.gitignore
new file mode 100644
index 0000000..3a254f0
--- /dev/null
+++ b/packages/mail/.gitignore
@@ -0,0 +1,3 @@
+node_modules
+# Keep environment variables out of version control
+.env
\ No newline at end of file
diff --git a/packages/mail/package.json b/packages/mail/package.json
new file mode 100644
index 0000000..0ed098e
--- /dev/null
+++ b/packages/mail/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "@repo/mail",
+ "version": "1.0.0",
+ "description": "",
+ "exports": {
+ ".": "./src/index.ts"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@react-email/components": "0.0.27",
+ "better-auth": "0.8.1-beta.1",
+ "react": "18.3.1",
+ "react-dom": "19.0.0-rc-02c0e824-20241028",
+ "resend": "4.0.1-alpha.0"
+ },
+ "devDependencies": {
+ "react-email": "3.0.2"
+ }
+}
diff --git a/packages/mail/src/constants.ts b/packages/mail/src/constants.ts
new file mode 100644
index 0000000..e69de29
diff --git a/packages/mail/src/index.ts b/packages/mail/src/index.ts
new file mode 100644
index 0000000..9698f94
--- /dev/null
+++ b/packages/mail/src/index.ts
@@ -0,0 +1,39 @@
+import { Resend } from "resend";
+import { PluraResend } from "./template/template";
+const resendEnv = process.env.RESEND_API;
+export const resend = new Resend(resendEnv);
+
+export const sendEmail = async (
+ email: string,
+ subject: string,
+) => {
+ const emailData = {
+ from: "example@mail.plura.pro",
+ to: email,
+ subject: subject,
+ react: PluraResend(),
+ };
+
+ return await resend.emails.send(emailData);
+};
+export const sendBatchEmail = async (
+ emails: string[],
+ subject: string,
+) => {
+ const emailData = {
+ from: "example@mail.plura.pro",
+ to: emails,
+ subject: subject,
+ react: PluraResend(),
+ };
+ return await resend.emails.send(emailData);
+};
+
+export const cancelEmail = (id: string) => {
+ resend.emails.cancel(id);
+};
+
+export const updateEmail = (id:string)=>{
+ const oneMinuteFromNow = new Date(Date.now() + 1000 * 60).toISOString();
+ resend.emails.update({id , scheduledAt: oneMinuteFromNow});
+}
\ No newline at end of file
diff --git a/packages/mail/src/template/template.tsx b/packages/mail/src/template/template.tsx
new file mode 100644
index 0000000..3a1ae7e
--- /dev/null
+++ b/packages/mail/src/template/template.tsx
@@ -0,0 +1,127 @@
+import {
+ Body,
+ Button,
+ Container,
+ Head,
+ Heading,
+ Hr,
+ Html,
+ Img,
+ Link,
+ Preview,
+ Section,
+ Text,
+} from "@react-email/components";
+import * as React from "react";
+
+
+
+const baseUrl = process.env.BASE_URL
+ ? `https://${process.env.BASE_URL}`
+ : "";
+
+export const PluraResend = () => (
+
+
+ Welcome to Plura!
+
+
+
+ Your login code for Plura
+
+
+ This link and code will only be valid for the next 5 minutes. If the
+ link does not work, you can use the login verification code directly:
+
+
+
+
+ Linear
+
+
+
+
+);
+
+export default PluraResend;
+
+const logo = {
+ borderRadius: 21,
+ width: 42,
+ height: 42,
+};
+
+const main = {
+ backgroundColor: "#ffffff",
+ fontFamily:
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+};
+
+const container = {
+ margin: "0 auto",
+ padding: "20px 0 48px",
+ maxWidth: "560px",
+};
+
+const heading = {
+ fontSize: "24px",
+ letterSpacing: "-0.5px",
+ lineHeight: "1.3",
+ fontWeight: "400",
+ color: "#484848",
+ padding: "17px 0 0",
+};
+
+const paragraph = {
+ margin: "0 0 15px",
+ fontSize: "15px",
+ lineHeight: "1.4",
+ color: "#3c4149",
+};
+
+const buttonContainer = {
+ padding: "27px 0 27px",
+};
+
+const button = {
+ backgroundColor: "#5e6ad2",
+ borderRadius: "3px",
+ fontWeight: "600",
+ color: "#fff",
+ fontSize: "15px",
+ textDecoration: "none",
+ textAlign: "center" as const,
+ display: "block",
+ padding: "11px 23px",
+};
+
+const reportLink = {
+ fontSize: "14px",
+ color: "#b4becc",
+};
+
+const hr = {
+ borderColor: "#dfe1e4",
+ margin: "42px 0 26px",
+};
+
+const code = {
+ fontFamily: "monospace",
+ fontWeight: "700",
+ padding: "1px 4px",
+ backgroundColor: "#dfe1e4",
+ letterSpacing: "-0.3px",
+ fontSize: "21px",
+ borderRadius: "4px",
+ color: "#3c4149",
+};
diff --git a/packages/mail/tsconfig.json b/packages/mail/tsconfig.json
new file mode 100644
index 0000000..b3c7ee4
--- /dev/null
+++ b/packages/mail/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@repo/typescript-config/base.json",
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "tsup.config.ts"],
+ "exclude": ["dist", "build", "node_modules"],
+ "compilerOptions": {
+ "strict": true,
+ "jsx": "react"
+ }
+}
diff --git a/packages/types/package.json b/packages/types/package.json
new file mode 100644
index 0000000..edad33e
--- /dev/null
+++ b/packages/types/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@repo/types",
+ "version": "1.0.0",
+ "description": "",
+ "exports":{
+ ".":"./src/mail.ts"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC"
+}
diff --git a/packages/types/src/mail.ts b/packages/types/src/mail.ts
new file mode 100644
index 0000000..dbc20bc
--- /dev/null
+++ b/packages/types/src/mail.ts
@@ -0,0 +1,13 @@
+import { z } from "zod";
+
+export const mailSchema = z.object({
+ email: z.string().email(),
+ subject: z.string(),
+});
+
+export const mailBatchSchema = z.object({
+ emails: z.array(z.string().email()),
+ subject: z.string(),
+});
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1d14df2..f54298d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
lockfileVersion: '9.0'
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
importers:
.:
@@ -62,12 +66,18 @@ importers:
apps/api:
dependencies:
+ '@hono/node-server':
+ specifier: ^1.13.5
+ version: 1.13.5(hono@4.6.9)
+ '@hono/zod-validator':
+ specifier: ^0.4.1
+ version: 0.4.1(hono@4.6.9)(zod@3.23.8)
+ '@repo/auth':
+ specifier: workspace:*
+ version: link:../../packages/auth
'@repo/db':
specifier: workspace:*
version: link:../../packages/database
- contentlayer2:
- specifier: ^0.5.3
- version: 0.5.3(acorn@8.14.0)(esbuild@0.21.5)
hono:
specifier: ^4.6.9
version: 4.6.9
@@ -80,6 +90,9 @@ importers:
react-dom:
specifier: 19.0.0-rc-02c0e824-20241028
version: 19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028)
+ zod:
+ specifier: ^3.23.8
+ version: 3.23.8
devDependencies:
'@types/node':
specifier: 18.11.18
@@ -90,6 +103,9 @@ importers:
'@types/react-dom':
specifier: 18.0.10
version: 18.0.10
+ dotenv:
+ specifier: ^16.4.5
+ version: 16.4.5
typescript:
specifier: ^5
version: 5.5.4
@@ -144,6 +160,15 @@ importers:
'@radix-ui/react-tooltip':
specifier: ^1.1.3
version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
+ '@repo/auth':
+ specifier: workspace:*
+ version: link:../../packages/auth
+ '@repo/db':
+ specifier: workspace:*
+ version: link:../../packages/database
+ '@repo/types':
+ specifier: workspace:*
+ version: link:../../packages/types
'@tabler/icons-react':
specifier: ^3.21.0
version: 3.21.0(react@19.0.0-rc-02c0e824-20241028)
@@ -232,6 +257,9 @@ importers:
apps/www:
dependencies:
+ '@hookform/resolvers':
+ specifier: ^3.9.1
+ version: 3.9.1(react-hook-form@7.53.2(react@19.0.0-rc-02c0e824-20241028))
'@radix-ui/react-avatar':
specifier: ^1.1.1
version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
@@ -241,6 +269,9 @@ importers:
'@radix-ui/react-icons':
specifier: ^1.3.1
version: 1.3.1(react@19.0.0-rc-02c0e824-20241028)
+ '@radix-ui/react-label':
+ specifier: ^2.1.0
+ version: 2.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
'@radix-ui/react-scroll-area':
specifier: ^1.2.0
version: 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
@@ -253,6 +284,15 @@ importers:
'@radix-ui/react-tooltip':
specifier: ^1.1.3
version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
+ '@repo/auth':
+ specifier: workspace:*
+ version: link:../../packages/auth
+ '@repo/db':
+ specifier: workspace:*
+ version: link:../../packages/database
+ '@repo/types':
+ specifier: workspace:*
+ version: link:../../packages/types
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -283,6 +323,9 @@ importers:
react-dom:
specifier: 19.0.0-rc-02c0e824-20241028
version: 19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028)
+ react-hook-form:
+ specifier: ^7.53.1
+ version: 7.53.2(react@19.0.0-rc-02c0e824-20241028)
react-icons:
specifier: ^5.3.0
version: 5.3.0(react@19.0.0-rc-02c0e824-20241028)
@@ -292,6 +335,9 @@ importers:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.5.4)))
+ zod:
+ specifier: ^3.23.8
+ version: 3.23.8
devDependencies:
'@types/node':
specifier: ^20
@@ -321,6 +367,12 @@ importers:
specifier: ^2.1.4
version: 2.1.4(@types/node@20.17.6)
+ packages/auth:
+ dependencies:
+ better-call:
+ specifier: 0.2.14-beta.3
+ version: 0.2.14-beta.3
+
packages/database:
dependencies:
'@prisma/client':
@@ -355,6 +407,30 @@ importers:
specifier: 5.5.4
version: 5.5.4
+ packages/mail:
+ dependencies:
+ '@react-email/components':
+ specifier: 0.0.27
+ version: 0.0.27(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+ better-auth:
+ specifier: 0.8.1-beta.1
+ version: 0.8.1-beta.1
+ react:
+ specifier: 18.3.1
+ version: 18.3.1
+ react-dom:
+ specifier: 19.0.0-rc-02c0e824-20241028
+ version: 19.0.0-rc-02c0e824-20241028(react@18.3.1)
+ resend:
+ specifier: 4.0.1-alpha.0
+ version: 4.0.1-alpha.0(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+ devDependencies:
+ react-email:
+ specifier: 3.0.2
+ version: 3.0.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+
+ packages/types: {}
+
packages/typescript-config: {}
packages/ui:
@@ -417,6 +493,10 @@ packages:
resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==}
engines: {node: '>=6.9.0'}
+ '@babel/core@7.24.5':
+ resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.26.0':
resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
engines: {node: '>=6.9.0'}
@@ -462,6 +542,11 @@ packages:
resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
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.26.2':
resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
engines: {node: '>=6.0.0'}
@@ -487,6 +572,9 @@ packages:
resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
engines: {node: '>=6.9.0'}
+ '@better-fetch/fetch@1.1.12':
+ resolution: {integrity: sha512-B3bfloI/2UBQWIATRN6qmlORrvx3Mp0kkNjmXLv0b+DtbtR+pP4/I5kQA/rDUv+OReLywCCldf6co4LdDmh8JA==}
+
'@contentlayer2/cli@0.5.3':
resolution: {integrity: sha512-8xO+piFSNVq5Ad2P3D30nM0BzQh1qQ0Q4kIx2otlLhYe3tdeuf3TCB3nFZTgfOJESnZABxqy6XTcfpmeAfNd/Q==}
@@ -545,6 +633,12 @@ packages:
'@effect-ts/system@0.57.5':
resolution: {integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==}
+ '@emnapi/core@0.45.0':
+ resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==}
+
+ '@emnapi/runtime@0.45.0':
+ resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
+
'@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
@@ -553,138 +647,276 @@ packages:
peerDependencies:
esbuild: '*'
+ '@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'}
cpu: [ppc64]
os: [aix]
+ '@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'}
cpu: [arm64]
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'}
cpu: [arm]
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'}
cpu: [x64]
os: [android]
+ '@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'}
cpu: [arm64]
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'}
cpu: [x64]
os: [darwin]
+ '@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'}
cpu: [arm64]
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'}
cpu: [x64]
os: [freebsd]
+ '@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'}
cpu: [arm64]
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'}
cpu: [arm]
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'}
cpu: [ia32]
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'}
cpu: [loong64]
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'}
cpu: [mips64el]
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'}
cpu: [ppc64]
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'}
cpu: [riscv64]
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'}
cpu: [s390x]
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'}
cpu: [x64]
os: [linux]
+ '@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'}
cpu: [x64]
os: [netbsd]
+ '@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'}
cpu: [x64]
os: [openbsd]
+ '@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'}
cpu: [x64]
os: [sunos]
+ '@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'}
cpu: [arm64]
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'}
cpu: [ia32]
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'}
@@ -736,6 +968,21 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ '@hexagon/base64@1.1.28':
+ resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==}
+
+ '@hono/node-server@1.13.5':
+ resolution: {integrity: sha512-lSo+CFlLqAFB4fX7ePqI9nauEn64wOfJHAfc9duYFTvAG3o416pC0nTGeNjuLHchLedH+XyWda5v79CVx1PIjg==}
+ engines: {node: '>=18.14.1'}
+ peerDependencies:
+ hono: ^4
+
+ '@hono/zod-validator@0.4.1':
+ resolution: {integrity: sha512-I8LyfeJfvVmC5hPjZ2Iij7RjexlgSBT7QJudZ4JvNPLxn0JQ3sqclz2zydlwISAnw21D2n4LQ0nfZdoiv9fQQA==}
+ peerDependencies:
+ hono: '>=3.9.0'
+ zod: ^3.19.1
+
'@hookform/resolvers@3.9.1':
resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==}
peerDependencies:
@@ -909,6 +1156,9 @@ packages:
peerDependencies:
tslib: '2'
+ '@levischuck/tiny-cbor@0.2.2':
+ resolution: {integrity: sha512-f5CnPw997Y2GQ8FAvtuVVC19FX8mwNNC+1XJcIi16n/LTJifKO6QBgGLgN3YEmqtGMk17SKSuoWES3imJVxAVw==}
+
'@mdx-js/esbuild@3.1.0':
resolution: {integrity: sha512-Jk42xUb1SEJxh6n2GBAtJjQISFIZccjz8XVEsHVhrlvZJAJziIxR9KyaFF6nTeTB/jCAFQGDgO7+oMRH/ApRsg==}
peerDependencies:
@@ -923,54 +1173,111 @@ packages:
'@microsoft/tsdoc@0.14.2':
resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ '@next/env@14.2.10':
+ resolution: {integrity: sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==}
+
'@next/env@15.0.2':
resolution: {integrity: sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==}
'@next/eslint-plugin-next@15.0.2':
resolution: {integrity: sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==}
+ '@next/swc-darwin-arm64@14.2.10':
+ resolution: {integrity: sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
'@next/swc-darwin-arm64@15.0.2':
resolution: {integrity: sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
+ '@next/swc-darwin-x64@14.2.10':
+ resolution: {integrity: sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
'@next/swc-darwin-x64@15.0.2':
resolution: {integrity: sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
+ '@next/swc-linux-arm64-gnu@14.2.10':
+ resolution: {integrity: sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
'@next/swc-linux-arm64-gnu@15.0.2':
resolution: {integrity: sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ '@next/swc-linux-arm64-musl@14.2.10':
+ resolution: {integrity: sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
'@next/swc-linux-arm64-musl@15.0.2':
resolution: {integrity: sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
+ '@next/swc-linux-x64-gnu@14.2.10':
+ resolution: {integrity: sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
'@next/swc-linux-x64-gnu@15.0.2':
resolution: {integrity: sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ '@next/swc-linux-x64-musl@14.2.10':
+ resolution: {integrity: sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
'@next/swc-linux-x64-musl@15.0.2':
resolution: {integrity: sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
+ '@next/swc-win32-arm64-msvc@14.2.10':
+ resolution: {integrity: sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
'@next/swc-win32-arm64-msvc@15.0.2':
resolution: {integrity: sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
+ '@next/swc-win32-ia32-msvc@14.2.10':
+ resolution: {integrity: sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@next/swc-win32-x64-msvc@14.2.10':
+ resolution: {integrity: sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
'@next/swc-win32-x64-msvc@15.0.2':
resolution: {integrity: sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==}
engines: {node: '>= 10'}
@@ -980,6 +1287,187 @@ packages:
'@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+ '@noble/ciphers@0.6.0':
+ resolution: {integrity: sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ==}
+
+ '@noble/hashes@1.5.0':
+ resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@node-rs/argon2-android-arm-eabi@1.7.0':
+ resolution: {integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@node-rs/argon2-android-arm64@1.7.0':
+ resolution: {integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@node-rs/argon2-darwin-arm64@1.7.0':
+ resolution: {integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@node-rs/argon2-darwin-x64@1.7.0':
+ resolution: {integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@node-rs/argon2-freebsd-x64@1.7.0':
+ resolution: {integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@node-rs/argon2-linux-arm-gnueabihf@1.7.0':
+ resolution: {integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@node-rs/argon2-linux-arm64-gnu@1.7.0':
+ resolution: {integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@node-rs/argon2-linux-arm64-musl@1.7.0':
+ resolution: {integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@node-rs/argon2-linux-x64-gnu@1.7.0':
+ resolution: {integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@node-rs/argon2-linux-x64-musl@1.7.0':
+ resolution: {integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@node-rs/argon2-wasm32-wasi@1.7.0':
+ resolution: {integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@node-rs/argon2-win32-arm64-msvc@1.7.0':
+ resolution: {integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@node-rs/argon2-win32-ia32-msvc@1.7.0':
+ resolution: {integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@node-rs/argon2-win32-x64-msvc@1.7.0':
+ resolution: {integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@node-rs/argon2@1.7.0':
+ resolution: {integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==}
+ engines: {node: '>= 10'}
+
+ '@node-rs/bcrypt-android-arm-eabi@1.9.0':
+ resolution: {integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@node-rs/bcrypt-android-arm64@1.9.0':
+ resolution: {integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@node-rs/bcrypt-darwin-arm64@1.9.0':
+ resolution: {integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@node-rs/bcrypt-darwin-x64@1.9.0':
+ resolution: {integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@node-rs/bcrypt-freebsd-x64@1.9.0':
+ resolution: {integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0':
+ resolution: {integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@node-rs/bcrypt-linux-arm64-gnu@1.9.0':
+ resolution: {integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@node-rs/bcrypt-linux-arm64-musl@1.9.0':
+ resolution: {integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@node-rs/bcrypt-linux-x64-gnu@1.9.0':
+ resolution: {integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@node-rs/bcrypt-linux-x64-musl@1.9.0':
+ resolution: {integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@node-rs/bcrypt-wasm32-wasi@1.9.0':
+ resolution: {integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@node-rs/bcrypt-win32-arm64-msvc@1.9.0':
+ resolution: {integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@node-rs/bcrypt-win32-ia32-msvc@1.9.0':
+ resolution: {integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@node-rs/bcrypt-win32-x64-msvc@1.9.0':
+ resolution: {integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@node-rs/bcrypt@1.9.0':
+ resolution: {integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==}
+ engines: {node: '>= 10'}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -996,6 +1484,9 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
+ '@one-ini/wasm@0.1.1':
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+
'@opentelemetry/api-logs@0.51.1':
resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==}
engines: {node: '>=14'}
@@ -1112,6 +1603,21 @@ packages:
'@panva/hkdf@1.2.1':
resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==}
+ '@peculiar/asn1-android@2.3.13':
+ resolution: {integrity: sha512-0VTNazDGKrLS6a3BwTDZanqq6DR/I3SbvmDMuS8Be+OYpvM6x1SRDh9AGDsHVnaCOIztOspCPc6N1m+iUv1Xxw==}
+
+ '@peculiar/asn1-ecc@2.3.14':
+ resolution: {integrity: sha512-zWPyI7QZto6rnLv6zPniTqbGaLh6zBpJyI46r1yS/bVHJXT2amdMHCRRnbV5yst2H8+ppXG6uXu/M6lKakiQ8w==}
+
+ '@peculiar/asn1-rsa@2.3.13':
+ resolution: {integrity: sha512-wBNQqCyRtmqvXkGkL4DR3WxZhHy8fDiYtOjTeCd7SFE5F6GBeafw3EJ94PX/V0OJJrjQ40SkRY2IZu3ZSyBqcg==}
+
+ '@peculiar/asn1-schema@2.3.13':
+ resolution: {integrity: sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==}
+
+ '@peculiar/asn1-x509@2.3.13':
+ resolution: {integrity: sha512-PfeLQl2skXmxX2/AFFCVaWU8U6FKW1Db43mgBhShCOFS1bVxqtvusq1hVjfuEcuSQGedrLdCSvTgabluwN/M9A==}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -1792,6 +2298,138 @@ packages:
'@radix-ui/rect@1.1.0':
resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+ '@react-email/body@0.0.10':
+ resolution: {integrity: sha512-dMJyL9aU25ieatdPtVjCyQ/WHZYHwNc+Hy/XpF8Cc18gu21cUynVEeYQzFSeigDRMeBQ3PGAyjVDPIob7YlGwA==}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/button@0.0.18':
+ resolution: {integrity: sha512-uNUnpeDzz1o9HAky47JSTsUN/Ih0A3Az165AAOgAy8XOVzQJPrltUBRzHkScSVJTwRqKLASkie1yZbtNGIcRdA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/code-block@0.0.9':
+ resolution: {integrity: sha512-Zrhc71VYrSC1fVXJuaViKoB/dBjxLw6nbE53Bm/eUuZPdnnZ1+ZUIh8jfaRKC5MzMjgnLGQTweGXVnfIrhyxtQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/code-inline@0.0.4':
+ resolution: {integrity: sha512-zj3oMQiiUCZbddSNt3k0zNfIBFK0ZNDIzzDyBaJKy6ZASTtWfB+1WFX0cpTX8q0gUiYK+A94rk5Qp68L6YXjXQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/column@0.0.12':
+ resolution: {integrity: sha512-Rsl7iSdDaeHZO938xb+0wR5ud0Z3MVfdtPbNKJNojZi2hApwLAQXmDrnn/AcPDM5Lpl331ZljJS8vHTWxxkvKw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/components@0.0.27':
+ resolution: {integrity: sha512-4oIEL2m6HrL9GMClgj9EHg2o6ffFvoIB5YMaK+lk+AuICvNHh3TwveYi1xLYH1PZZB7fV83Vml8MWjbnOdrl8w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/container@0.0.14':
+ resolution: {integrity: sha512-NgoaJJd9tTtsrveL86Ocr/AYLkGyN3prdXKd/zm5fQpfDhy/NXezyT3iF6VlwAOEUIu64ErHpAJd+P6ygR+vjg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/font@0.0.8':
+ resolution: {integrity: sha512-fSBEqYyVPAyyACBBHcs3wEYzNknpHMuwcSAAKE8fOoDfGqURr/vSxKPdh4tOa9z7G4hlcEfgGrCYEa2iPT22cw==}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/head@0.0.11':
+ resolution: {integrity: sha512-skw5FUgyamIMK+LN+fZQ5WIKQYf0dPiRAvsUAUR2eYoZp9oRsfkIpFHr0GWPkKAYjFEj+uJjaxQ/0VzQH7svVg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/heading@0.0.14':
+ resolution: {integrity: sha512-jZM7IVuZOXa0G110ES8OkxajPTypIKlzlO1K1RIe1auk76ukQRiCg1IRV4HZlWk1GGUbec5hNxsvZa2kU8cb9w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/hr@0.0.10':
+ resolution: {integrity: sha512-3AA4Yjgl3zEid/KVx6uf6TuLJHVZvUc2cG9Wm9ZpWeAX4ODA+8g9HyuC0tfnjbRsVMhMcCGiECuWWXINi+60vA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/html@0.0.10':
+ resolution: {integrity: sha512-06uiuSKJBWQJfhCKv4MPupELei4Lepyz9Sth7Yq7Fq29CAeB1ejLgKkGqn1I+FZ72hQxPLdYF4iq4yloKv3JCg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/img@0.0.10':
+ resolution: {integrity: sha512-pJ8glJjDNaJ53qoM95pvX9SK05yh0bNQY/oyBKmxlBDdUII6ixuMc3SCwYXPMl+tgkQUyDgwEBpSTrLAnjL3hA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/link@0.0.11':
+ resolution: {integrity: sha512-o1/BgPn2Fi+bN4Nh+P64t4tulaOyPhkBNSpNmiYL1Ar+ilw8q0BmUAqM+lvHy8Qr/4K7BjkgFoc4GoYkoEjOig==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/markdown@0.0.12':
+ resolution: {integrity: sha512-wsuvj1XAb6O63aizCLNEeqVgKR3oFjAwt9vjfg2y2oh4G1dZeo8zonZM2x1fmkEkBZhzwSHraNi70jSXhA3A9w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/preview@0.0.11':
+ resolution: {integrity: sha512-7O/CT4b16YlSGrj18htTPx3Vbhu2suCGv/cSe5c+fuSrIM/nMiBSZ3Js16Vj0XJbAmmmlVmYFZw9L20wXJ+LjQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/render@1.0.1':
+ resolution: {integrity: sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/render@1.0.2':
+ resolution: {integrity: sha512-q82eBd39TepzA/xjlm8szqJlrQk/gh7mgtxXMGlJ4dcdx89go1m9YBDpZY98SFy+2r2KAOd5A1mxvUbsPwoATg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/row@0.0.11':
+ resolution: {integrity: sha512-ra09h7BMoGa14ds3vh7KVuj1N3astTstEC1YbMdCiHcx/nxylglNaT7qJXU74ZTzyHiGabyiNuyabTS+HLoMCA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/section@0.0.15':
+ resolution: {integrity: sha512-xfM3Qy5eU7fbkwvktlTeQgad7uo+1Z7YVh1aowSZaRBvKbkEXgoH/XssRYQmQL8ZrZGXbEJMujwtf4fsQL6vrg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/tailwind@1.0.1':
+ resolution: {integrity: sha512-CPCIV1u8Voc6CMoYvd/wcgJek0uOsWNMNMUIJjJItb0+NflIeVg3gn49/zyrCqfturx7QIXTykkL82+5V7kKuA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/text@0.0.10':
+ resolution: {integrity: sha512-wNAnxeEAiFs6N+SxS0y6wTJWfewEzUETuyS2aZmT00xk50VijwyFRuhm4sYSjusMyshevomFwz5jNISCxRsGWw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
'@rollup/rollup-android-arm-eabi@4.25.0':
resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==}
cpu: [arm]
@@ -1888,12 +2526,31 @@ packages:
'@rushstack/eslint-patch@1.10.4':
resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
+
+ '@simplewebauthn/browser@10.0.0':
+ resolution: {integrity: sha512-hG0JMZD+LiLUbpQcAjS4d+t4gbprE/dLYop/CkE01ugU/9sKXflxV5s0DRjdz3uNMFecatRfb4ZLG3XvF8m5zg==}
+
+ '@simplewebauthn/server@10.0.1':
+ resolution: {integrity: sha512-djNWcRn+H+6zvihBFJSpG3fzb0NQS9c/Mw5dYOtZ9H+oDw8qn9Htqxt4cpqRvSOAfwqP7rOvE9rwqVaoGGc3hg==}
+ engines: {node: '>=20.0.0'}
+
+ '@simplewebauthn/types@10.0.0':
+ resolution: {integrity: sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ==}
+
+ '@socket.io/component-emitter@3.1.2':
+ resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+
'@swc/counter@0.1.3':
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
'@swc/helpers@0.5.13':
resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==}
+ '@swc/helpers@0.5.5':
+ resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
+
'@tabler/icons-react@3.21.0':
resolution: {integrity: sha512-Qq0GnZzzccbv/zuMyXAUUPlogNAqx9KsF8cr/ev3bxs+GMObqNEjXv1eZl9GFzxyQTS435siJNU8A1BaIYhX8g==}
peerDependencies:
@@ -1925,15 +2582,24 @@ packages:
resolution: {integrity: sha512-3uYg2b5TWCiupetbDFMbBFMHl33xQTvp5DNg0fZSYal73Z9AlFH9yWabHWMYw6ywmwM1evkYRpTVA2n7GgqT5A==}
hasBin: true
+ '@tybys/wasm-util@0.8.3':
+ resolution: {integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==}
+
'@types/acorn@4.0.6':
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
+ '@types/cookie@0.4.1':
+ resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
+
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
'@types/cookiejar@2.1.5':
resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
+ '@types/cors@2.8.17':
+ resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
+
'@types/d3-array@3.2.1':
resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
@@ -2256,6 +2922,14 @@ packages:
'@vitest/utils@2.1.4':
resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==}
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -2374,6 +3048,10 @@ packages:
asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+ asn1js@3.0.5:
+ resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==}
+ engines: {node: '>=12.0.0'}
+
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
@@ -2413,10 +3091,20 @@ 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-ftp@5.0.5:
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
engines: {node: '>=10.0.0'}
+ better-auth@0.8.1-beta.1:
+ resolution: {integrity: sha512-IFBOPOoRooZoJ883UTA5AjpEiTcFCQNecKj5LJytYTv1E+g/F1AibwGMp7jLq2DJJSfuBdtcCn32Fc0qHroSZQ==}
+
+ better-call@0.2.14-beta.3:
+ resolution: {integrity: sha512-lA54ETanzM0xUZnQt6lm3BdTr4gVDyAe1DNpCQSTYUnwnGGOmQG8ob0FYivVd0XHsHQK68r01GB5c6cUuu4llQ==}
+
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
@@ -2523,6 +3211,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chokidar@4.0.1:
+ resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==}
+ engines: {node: '>= 14.16.0'}
+
ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
@@ -2614,6 +3306,10 @@ packages:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
+ commander@11.1.0:
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
+
commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
@@ -2628,6 +3324,13 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ config-chain@1.1.13:
+ resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
+
+ consola@3.2.3:
+ resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
constant-case@2.0.0:
resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==}
@@ -2643,6 +3346,10 @@ packages:
resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
engines: {node: '>= 0.6'}
+ cookie@0.7.2:
+ resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
+ engines: {node: '>= 0.6'}
+
cookiejar@2.1.4:
resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==}
@@ -2652,9 +3359,16 @@ 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'}
+
create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ cross-fetch@4.0.0:
+ resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
+
cross-spawn@7.0.5:
resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==}
engines: {node: '>= 8'}
@@ -2733,6 +3447,10 @@ packages:
resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
engines: {node: '>= 0.4'}
+ debounce@2.0.0:
+ resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==}
+ engines: {node: '>=18'}
+
debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
@@ -2767,6 +3485,10 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
@@ -2778,6 +3500,9 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
+ defu@6.1.4:
+ resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
degenerator@5.0.1:
resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
engines: {node: '>= 14'}
@@ -2840,6 +3565,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.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+
dot-case@2.1.1:
resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==}
@@ -2847,9 +3585,18 @@ packages:
resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==}
engines: {node: '>=12'}
+ dotenv@16.4.5:
+ resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+ engines: {node: '>=12'}
+
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ editorconfig@1.0.4:
+ resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
+ engines: {node: '>=14'}
+ hasBin: true
+
electron-to-chromium@1.5.55:
resolution: {integrity: sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==}
@@ -2859,10 +3606,22 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ engine.io-parser@5.2.3:
+ resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+ engines: {node: '>=10.0.0'}
+
+ engine.io@6.6.2:
+ resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==}
+ engines: {node: '>=10.2.0'}
+
enhanced-resolve@5.17.1:
resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
engines: {node: '>=10.13.0'}
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -2903,6 +3662,11 @@ packages:
esast-util-from-js@2.0.1:
resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
+ 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'}
@@ -3175,6 +3939,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==}
@@ -3272,6 +4039,9 @@ packages:
resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
engines: {node: '>=14.14'}
+ fs-monkey@1.0.6:
+ resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==}
+
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -3341,6 +4111,11 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ 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
@@ -3464,9 +4239,16 @@ packages:
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ html-to-text@9.0.5:
+ resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==}
+ engines: {node: '>=14'}
+
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+ htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -3559,6 +4341,10 @@ packages:
resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
engines: {node: '>= 12'}
+ ipaddr.js@2.2.0:
+ resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
+ engines: {node: '>= 10'}
+
is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
@@ -3737,6 +4523,10 @@ packages:
resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==}
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==}
@@ -3750,6 +4540,15 @@ packages:
jose@5.9.6:
resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==}
+ js-beautify@1.15.1:
+ resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==}
+ 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==}
@@ -3811,6 +4610,10 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
+ kysely@0.27.4:
+ resolution: {integrity: sha512-dyNKv2KRvYOQPLCAOCjjQuCk4YFd33BvGdf/o5bC7FiW+BB6snA81Zt+2wT9QDFzKqxKa5rrOmvlK/anehCcgA==}
+ engines: {node: '>=14.0.0'}
+
language-subtag-registry@0.3.23:
resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
@@ -3818,6 +4621,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'}
@@ -3908,6 +4714,16 @@ packages:
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
engines: {node: '>=16'}
+ marked@7.0.4:
+ resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==}
+ engines: {node: '>= 16'}
+ hasBin: true
+
+ md-to-react-email@5.0.2:
+ resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==}
+ peerDependencies:
+ react: 18.x
+
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
@@ -3944,6 +4760,13 @@ packages:
peerDependencies:
esbuild: 0.*
+ memfs-browser@3.5.10302:
+ resolution: {integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==}
+
+ memfs@3.5.3:
+ resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
+ engines: {node: '>= 4.0.0'}
+
memfs@4.14.0:
resolution: {integrity: sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==}
engines: {node: '>= 4.0.0'}
@@ -4077,6 +4900,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'}
@@ -4110,9 +4937,22 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ nanoid@5.0.8:
+ resolution: {integrity: sha512-TcJPw+9RV9dibz1hHUzlLVy8N4X9TnwirAjrU08Juo6BNKggzVfP2ZJ/3ZUSq15Xl5i85i+Z89XBO90pB2PghQ==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+
+ nanostores@0.11.3:
+ resolution: {integrity: sha512-TUes3xKIX33re4QzdxwZ6tdbodjmn3tWXCEc1uokiEmo14sI1EaGYNs2k3bU2pyyGNmBqFGAVl6jAGWd06AVIg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
@@ -4142,6 +4982,24 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+ next@14.2.10:
+ resolution: {integrity: sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==}
+ engines: {node: '>=18.17.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ '@playwright/test': ^1.41.2
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ '@playwright/test':
+ optional: true
+ sass:
+ optional: true
+
next@15.0.2:
resolution: {integrity: sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==}
engines: {node: '>=18.18.0'}
@@ -4169,6 +5027,15 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
node-plop@0.26.3:
resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==}
engines: {node: '>=8.9.4'}
@@ -4176,6 +5043,11 @@ packages:
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
+ 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==}
@@ -4253,6 +5125,9 @@ packages:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
+ oslo@1.2.1:
+ resolution: {integrity: sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==}
+
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -4302,6 +5177,9 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parseley@0.12.1:
+ resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
+
pascal-case@2.0.1:
resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==}
@@ -4341,6 +5219,9 @@ packages:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
+ peberminta@0.9.0:
+ resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -4442,12 +5323,19 @@ packages:
engines: {node: '>=16.13'}
hasBin: true
+ prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+ proto-list@1.2.4:
+ resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
+
protobufjs@7.4.0:
resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==}
engines: {node: '>=12.0.0'}
@@ -4463,6 +5351,13 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ pvtsutils@1.3.5:
+ resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==}
+
+ pvutils@1.1.3:
+ resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==}
+ engines: {node: '>=6.0.0'}
+
qs@6.13.0:
resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
engines: {node: '>=0.6'}
@@ -4489,6 +5384,11 @@ packages:
peerDependencies:
react: 19.0.0-rc-02c0e824-20241028
+ react-email@3.0.2:
+ resolution: {integrity: sha512-R7Doynb6NbnDvHx+9dWxkiWN2eaq9hj4MxRdkS94cVD/WDaIzESSLm62GtAAyLJ65xA2ROJydFlcYsDq4hGi4Q==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
react-hook-form@7.53.2:
resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==}
engines: {node: '>=18.0.0'}
@@ -4509,6 +5409,9 @@ packages:
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react-promise-suspense@0.3.4:
+ resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==}
+
react-redux@7.2.9:
resolution: {integrity: sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==}
peerDependencies:
@@ -4600,6 +5503,10 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
+ readdirp@4.0.2:
+ resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==}
+ engines: {node: '>= 14.16.0'}
+
recharts-scale@0.4.5:
resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==}
@@ -4680,6 +5587,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ resend@4.0.1-alpha.0:
+ resolution: {integrity: sha512-qtyGk72ZJ3b3ifmz34l/z/X9EpKuqgjTc76/wihMR8I71IdhDIpIPsx/CgKlkA9oLesc8mryW+zulGr8RtEkJQ==}
+ engines: {node: '>=18'}
+
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -4716,6 +5627,9 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ rou3@0.5.1:
+ resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==}
+
run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -4751,6 +5665,9 @@ packages:
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
engines: {node: '>=4'}
+ selderee@0.11.0:
+ resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
+
semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
@@ -4767,6 +5684,9 @@ packages:
sentence-case@2.1.1:
resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==}
+ set-cookie-parser@2.7.1:
+ resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
+
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
@@ -4819,6 +5739,17 @@ packages:
snake-case@2.1.0:
resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==}
+ socket.io-adapter@2.5.5:
+ resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
+
+ socket.io-parser@4.2.4:
+ resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
+ engines: {node: '>=10.0.0'}
+
+ socket.io@4.8.0:
+ resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==}
+ engines: {node: '>=10.2.0'}
+
socks-proxy-agent@8.0.4:
resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==}
engines: {node: '>= 14'}
@@ -4960,6 +5891,19 @@ packages:
style-to-object@1.0.8:
resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
+ 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
+
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -5082,6 +6026,9 @@ packages:
toml@3.0.0:
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
tree-dump@1.0.2:
resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==}
engines: {node: '>=10.0'}
@@ -5235,6 +6182,9 @@ packages:
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ uncrypto@0.1.3:
+ resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
@@ -5323,6 +6273,10 @@ packages:
resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
@@ -5404,6 +6358,12 @@ packages:
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
which-boxed-primitive@1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
@@ -5451,6 +6411,18 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ 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
+
y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
@@ -5512,6 +6484,26 @@ snapshots:
'@babel/compat-data@7.26.2': {}
+ '@babel/core@7.24.5':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.2
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.5)
+ '@babel/helpers': 7.26.0
+ '@babel/parser': 7.26.2
+ '@babel/template': 7.25.9
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ convert-source-map: 2.0.0
+ debug: 4.3.7
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/core@7.26.0':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -5563,6 +6555,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
dependencies:
'@babel/core': 7.26.0
@@ -5583,6 +6584,10 @@ snapshots:
'@babel/template': 7.25.9
'@babel/types': 7.26.0
+ '@babel/parser@7.24.5':
+ dependencies:
+ '@babel/types': 7.26.0
+
'@babel/parser@7.26.2':
dependencies:
'@babel/types': 7.26.0
@@ -5619,6 +6624,8 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
+ '@better-fetch/fetch@1.1.12': {}
+
'@contentlayer2/cli@0.5.3(acorn@8.14.0)(esbuild@0.21.5)':
dependencies:
'@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5)
@@ -5742,6 +6749,16 @@ snapshots:
'@effect-ts/system@0.57.5': {}
+ '@emnapi/core@0.45.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@0.45.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/runtime@1.3.1':
dependencies:
tslib: 2.8.1
@@ -5757,72 +6774,141 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@esbuild/aix-ppc64@0.19.11':
+ optional: true
+
'@esbuild/aix-ppc64@0.21.5':
optional: true
+ '@esbuild/android-arm64@0.19.11':
+ optional: true
+
'@esbuild/android-arm64@0.21.5':
optional: true
+ '@esbuild/android-arm@0.19.11':
+ optional: true
+
'@esbuild/android-arm@0.21.5':
optional: true
+ '@esbuild/android-x64@0.19.11':
+ optional: true
+
'@esbuild/android-x64@0.21.5':
optional: true
+ '@esbuild/darwin-arm64@0.19.11':
+ optional: true
+
'@esbuild/darwin-arm64@0.21.5':
optional: true
+ '@esbuild/darwin-x64@0.19.11':
+ optional: true
+
'@esbuild/darwin-x64@0.21.5':
optional: true
+ '@esbuild/freebsd-arm64@0.19.11':
+ optional: true
+
'@esbuild/freebsd-arm64@0.21.5':
optional: true
+ '@esbuild/freebsd-x64@0.19.11':
+ optional: true
+
'@esbuild/freebsd-x64@0.21.5':
optional: true
+ '@esbuild/linux-arm64@0.19.11':
+ optional: true
+
'@esbuild/linux-arm64@0.21.5':
optional: true
+ '@esbuild/linux-arm@0.19.11':
+ optional: true
+
'@esbuild/linux-arm@0.21.5':
optional: true
+ '@esbuild/linux-ia32@0.19.11':
+ optional: true
+
'@esbuild/linux-ia32@0.21.5':
optional: true
+ '@esbuild/linux-loong64@0.19.11':
+ optional: true
+
'@esbuild/linux-loong64@0.21.5':
optional: true
+ '@esbuild/linux-mips64el@0.19.11':
+ optional: true
+
'@esbuild/linux-mips64el@0.21.5':
optional: true
+ '@esbuild/linux-ppc64@0.19.11':
+ optional: true
+
'@esbuild/linux-ppc64@0.21.5':
optional: true
+ '@esbuild/linux-riscv64@0.19.11':
+ optional: true
+
'@esbuild/linux-riscv64@0.21.5':
optional: true
+ '@esbuild/linux-s390x@0.19.11':
+ optional: true
+
'@esbuild/linux-s390x@0.21.5':
optional: true
+ '@esbuild/linux-x64@0.19.11':
+ optional: true
+
'@esbuild/linux-x64@0.21.5':
optional: true
+ '@esbuild/netbsd-x64@0.19.11':
+ optional: true
+
'@esbuild/netbsd-x64@0.21.5':
optional: true
+ '@esbuild/openbsd-x64@0.19.11':
+ optional: true
+
'@esbuild/openbsd-x64@0.21.5':
optional: true
+ '@esbuild/sunos-x64@0.19.11':
+ optional: true
+
'@esbuild/sunos-x64@0.21.5':
optional: true
+ '@esbuild/win32-arm64@0.19.11':
+ optional: true
+
'@esbuild/win32-arm64@0.21.5':
optional: true
+ '@esbuild/win32-ia32@0.19.11':
+ optional: true
+
'@esbuild/win32-ia32@0.21.5':
optional: true
+ '@esbuild/win32-x64@0.19.11':
+ optional: true
+
'@esbuild/win32-x64@0.21.5':
optional: true
@@ -5880,6 +6966,17 @@ snapshots:
protobufjs: 7.4.0
yargs: 17.7.2
+ '@hexagon/base64@1.1.28': {}
+
+ '@hono/node-server@1.13.5(hono@4.6.9)':
+ dependencies:
+ hono: 4.6.9
+
+ '@hono/zod-validator@0.4.1(hono@4.6.9)(zod@3.23.8)':
+ dependencies:
+ hono: 4.6.9
+ zod: 3.23.8
+
'@hookform/resolvers@3.9.1(react-hook-form@7.53.2(react@19.0.0-rc-02c0e824-20241028))':
dependencies:
react-hook-form: 7.53.2(react@19.0.0-rc-02c0e824-20241028)
@@ -6025,6 +7122,8 @@ snapshots:
dependencies:
tslib: 2.8.1
+ '@levischuck/tiny-cbor@0.2.2': {}
+
'@mdx-js/esbuild@3.1.0(acorn@8.14.0)(esbuild@0.21.5)':
dependencies:
'@mdx-js/mdx': 3.1.0(acorn@8.14.0)
@@ -6076,33 +7175,62 @@ snapshots:
'@microsoft/tsdoc@0.14.2': {}
+ '@next/env@14.2.10': {}
+
'@next/env@15.0.2': {}
'@next/eslint-plugin-next@15.0.2':
dependencies:
fast-glob: 3.3.1
+ '@next/swc-darwin-arm64@14.2.10':
+ optional: true
+
'@next/swc-darwin-arm64@15.0.2':
optional: true
+ '@next/swc-darwin-x64@14.2.10':
+ optional: true
+
'@next/swc-darwin-x64@15.0.2':
optional: true
+ '@next/swc-linux-arm64-gnu@14.2.10':
+ optional: true
+
'@next/swc-linux-arm64-gnu@15.0.2':
optional: true
+ '@next/swc-linux-arm64-musl@14.2.10':
+ optional: true
+
'@next/swc-linux-arm64-musl@15.0.2':
optional: true
+ '@next/swc-linux-x64-gnu@14.2.10':
+ optional: true
+
'@next/swc-linux-x64-gnu@15.0.2':
optional: true
+ '@next/swc-linux-x64-musl@14.2.10':
+ optional: true
+
'@next/swc-linux-x64-musl@15.0.2':
optional: true
+ '@next/swc-win32-arm64-msvc@14.2.10':
+ optional: true
+
'@next/swc-win32-arm64-msvc@15.0.2':
optional: true
+ '@next/swc-win32-ia32-msvc@14.2.10':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@14.2.10':
+ optional: true
+
'@next/swc-win32-x64-msvc@15.0.2':
optional: true
@@ -6110,6 +7238,138 @@ snapshots:
dependencies:
eslint-scope: 5.1.1
+ '@noble/ciphers@0.6.0': {}
+
+ '@noble/hashes@1.5.0': {}
+
+ '@node-rs/argon2-android-arm-eabi@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-android-arm64@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-darwin-arm64@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-darwin-x64@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-freebsd-x64@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-linux-arm-gnueabihf@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-linux-arm64-gnu@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-linux-arm64-musl@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-linux-x64-gnu@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-linux-x64-musl@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-wasm32-wasi@1.7.0':
+ dependencies:
+ '@emnapi/core': 0.45.0
+ '@emnapi/runtime': 0.45.0
+ '@tybys/wasm-util': 0.8.3
+ memfs-browser: 3.5.10302
+ optional: true
+
+ '@node-rs/argon2-win32-arm64-msvc@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-win32-ia32-msvc@1.7.0':
+ optional: true
+
+ '@node-rs/argon2-win32-x64-msvc@1.7.0':
+ optional: true
+
+ '@node-rs/argon2@1.7.0':
+ optionalDependencies:
+ '@node-rs/argon2-android-arm-eabi': 1.7.0
+ '@node-rs/argon2-android-arm64': 1.7.0
+ '@node-rs/argon2-darwin-arm64': 1.7.0
+ '@node-rs/argon2-darwin-x64': 1.7.0
+ '@node-rs/argon2-freebsd-x64': 1.7.0
+ '@node-rs/argon2-linux-arm-gnueabihf': 1.7.0
+ '@node-rs/argon2-linux-arm64-gnu': 1.7.0
+ '@node-rs/argon2-linux-arm64-musl': 1.7.0
+ '@node-rs/argon2-linux-x64-gnu': 1.7.0
+ '@node-rs/argon2-linux-x64-musl': 1.7.0
+ '@node-rs/argon2-wasm32-wasi': 1.7.0
+ '@node-rs/argon2-win32-arm64-msvc': 1.7.0
+ '@node-rs/argon2-win32-ia32-msvc': 1.7.0
+ '@node-rs/argon2-win32-x64-msvc': 1.7.0
+
+ '@node-rs/bcrypt-android-arm-eabi@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-android-arm64@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-darwin-arm64@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-darwin-x64@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-freebsd-x64@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-linux-arm64-gnu@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-linux-arm64-musl@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-linux-x64-gnu@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-linux-x64-musl@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-wasm32-wasi@1.9.0':
+ dependencies:
+ '@emnapi/core': 0.45.0
+ '@emnapi/runtime': 0.45.0
+ '@tybys/wasm-util': 0.8.3
+ memfs-browser: 3.5.10302
+ optional: true
+
+ '@node-rs/bcrypt-win32-arm64-msvc@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-win32-ia32-msvc@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt-win32-x64-msvc@1.9.0':
+ optional: true
+
+ '@node-rs/bcrypt@1.9.0':
+ optionalDependencies:
+ '@node-rs/bcrypt-android-arm-eabi': 1.9.0
+ '@node-rs/bcrypt-android-arm64': 1.9.0
+ '@node-rs/bcrypt-darwin-arm64': 1.9.0
+ '@node-rs/bcrypt-darwin-x64': 1.9.0
+ '@node-rs/bcrypt-freebsd-x64': 1.9.0
+ '@node-rs/bcrypt-linux-arm-gnueabihf': 1.9.0
+ '@node-rs/bcrypt-linux-arm64-gnu': 1.9.0
+ '@node-rs/bcrypt-linux-arm64-musl': 1.9.0
+ '@node-rs/bcrypt-linux-x64-gnu': 1.9.0
+ '@node-rs/bcrypt-linux-x64-musl': 1.9.0
+ '@node-rs/bcrypt-wasm32-wasi': 1.9.0
+ '@node-rs/bcrypt-win32-arm64-msvc': 1.9.0
+ '@node-rs/bcrypt-win32-ia32-msvc': 1.9.0
+ '@node-rs/bcrypt-win32-x64-msvc': 1.9.0
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -6124,6 +7384,8 @@ snapshots:
'@nolyfill/is-core-module@1.0.39': {}
+ '@one-ini/wasm@0.1.1': {}
+
'@opentelemetry/api-logs@0.51.1':
dependencies:
'@opentelemetry/api': 1.9.0
@@ -6243,6 +7505,40 @@ snapshots:
'@panva/hkdf@1.2.1': {}
+ '@peculiar/asn1-android@2.3.13':
+ dependencies:
+ '@peculiar/asn1-schema': 2.3.13
+ asn1js: 3.0.5
+ tslib: 2.8.1
+
+ '@peculiar/asn1-ecc@2.3.14':
+ dependencies:
+ '@peculiar/asn1-schema': 2.3.13
+ '@peculiar/asn1-x509': 2.3.13
+ asn1js: 3.0.5
+ tslib: 2.8.1
+
+ '@peculiar/asn1-rsa@2.3.13':
+ dependencies:
+ '@peculiar/asn1-schema': 2.3.13
+ '@peculiar/asn1-x509': 2.3.13
+ asn1js: 3.0.5
+ tslib: 2.8.1
+
+ '@peculiar/asn1-schema@2.3.13':
+ dependencies:
+ asn1js: 3.0.5
+ pvtsutils: 1.3.5
+ tslib: 2.8.1
+
+ '@peculiar/asn1-x509@2.3.13':
+ dependencies:
+ '@peculiar/asn1-schema': 2.3.13
+ asn1js: 3.0.5
+ ipaddr.js: 2.2.0
+ pvtsutils: 1.3.5
+ tslib: 2.8.1
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -6895,6 +8191,126 @@ snapshots:
'@radix-ui/rect@1.1.0': {}
+ '@react-email/body@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/button@0.0.18(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/code-block@0.0.9(react@18.3.1)':
+ dependencies:
+ prismjs: 1.29.0
+ react: 18.3.1
+
+ '@react-email/code-inline@0.0.4(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/column@0.0.12(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/components@0.0.27(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-email/body': 0.0.10(react@18.3.1)
+ '@react-email/button': 0.0.18(react@18.3.1)
+ '@react-email/code-block': 0.0.9(react@18.3.1)
+ '@react-email/code-inline': 0.0.4(react@18.3.1)
+ '@react-email/column': 0.0.12(react@18.3.1)
+ '@react-email/container': 0.0.14(react@18.3.1)
+ '@react-email/font': 0.0.8(react@18.3.1)
+ '@react-email/head': 0.0.11(react@18.3.1)
+ '@react-email/heading': 0.0.14(react@18.3.1)
+ '@react-email/hr': 0.0.10(react@18.3.1)
+ '@react-email/html': 0.0.10(react@18.3.1)
+ '@react-email/img': 0.0.10(react@18.3.1)
+ '@react-email/link': 0.0.11(react@18.3.1)
+ '@react-email/markdown': 0.0.12(react@18.3.1)
+ '@react-email/preview': 0.0.11(react@18.3.1)
+ '@react-email/render': 1.0.2(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+ '@react-email/row': 0.0.11(react@18.3.1)
+ '@react-email/section': 0.0.15(react@18.3.1)
+ '@react-email/tailwind': 1.0.1(react@18.3.1)
+ '@react-email/text': 0.0.10(react@18.3.1)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - react-dom
+
+ '@react-email/container@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/font@0.0.8(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/head@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/heading@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/hr@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/html@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/img@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/link@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/markdown@0.0.12(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.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/render@1.0.1(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.1
+ react: 18.3.1
+ react-dom: 19.0.0-rc-02c0e824-20241028(react@18.3.1)
+ react-promise-suspense: 0.3.4
+
+ '@react-email/render@1.0.2(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.1
+ react: 18.3.1
+ react-dom: 19.0.0-rc-02c0e824-20241028(react@18.3.1)
+ react-promise-suspense: 0.3.4
+
+ '@react-email/row@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/section@0.0.15(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/tailwind@1.0.1(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/text@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
'@rollup/rollup-android-arm-eabi@4.25.0':
optional: true
@@ -6953,12 +8369,44 @@ snapshots:
'@rushstack/eslint-patch@1.10.4': {}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ dependencies:
+ domhandler: 5.0.3
+ selderee: 0.11.0
+
+ '@simplewebauthn/browser@10.0.0':
+ dependencies:
+ '@simplewebauthn/types': 10.0.0
+
+ '@simplewebauthn/server@10.0.1':
+ dependencies:
+ '@hexagon/base64': 1.1.28
+ '@levischuck/tiny-cbor': 0.2.2
+ '@peculiar/asn1-android': 2.3.13
+ '@peculiar/asn1-ecc': 2.3.14
+ '@peculiar/asn1-rsa': 2.3.13
+ '@peculiar/asn1-schema': 2.3.13
+ '@peculiar/asn1-x509': 2.3.13
+ '@simplewebauthn/types': 10.0.0
+ cross-fetch: 4.0.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@simplewebauthn/types@10.0.0': {}
+
+ '@socket.io/component-emitter@3.1.2': {}
+
'@swc/counter@0.1.3': {}
'@swc/helpers@0.5.13':
dependencies:
tslib: 2.8.1
+ '@swc/helpers@0.5.5':
+ dependencies:
+ '@swc/counter': 0.1.3
+ tslib: 2.8.1
+
'@tabler/icons-react@3.21.0(react@19.0.0-rc-02c0e824-20241028)':
dependencies:
'@tabler/icons': 3.21.0
@@ -7011,14 +8459,25 @@ snapshots:
semver: 7.6.3
update-check: 1.5.4
+ '@tybys/wasm-util@0.8.3':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@types/acorn@4.0.6':
dependencies:
'@types/estree': 1.0.6
+ '@types/cookie@0.4.1': {}
+
'@types/cookie@0.6.0': {}
'@types/cookiejar@2.1.5': {}
+ '@types/cors@2.8.17':
+ dependencies:
+ '@types/node': 20.17.6
+
'@types/d3-array@3.2.1': {}
'@types/d3-color@3.1.3': {}
@@ -7382,7 +8841,7 @@ snapshots:
eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.31.0)
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.31.0)(eslint@8.57.1)
eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)
@@ -7443,6 +8902,13 @@ snapshots:
loupe: 3.1.2
tinyrainbow: 1.2.0
+ abbrev@2.0.0: {}
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
acorn-jsx@5.3.2(acorn@8.14.0):
dependencies:
acorn: 8.14.0
@@ -7583,6 +9049,12 @@ snapshots:
asap@2.0.6: {}
+ asn1js@3.0.5:
+ dependencies:
+ pvtsutils: 1.3.5
+ pvutils: 1.1.3
+ tslib: 2.8.1
+
assertion-error@2.0.1: {}
ast-types-flow@0.0.8: {}
@@ -7609,8 +9081,38 @@ snapshots:
base64-js@1.5.1: {}
+ base64id@2.0.0: {}
+
basic-ftp@5.0.5: {}
+ better-auth@0.8.1-beta.1:
+ dependencies:
+ '@better-fetch/fetch': 1.1.12
+ '@noble/ciphers': 0.6.0
+ '@noble/hashes': 1.5.0
+ '@simplewebauthn/browser': 10.0.0
+ '@simplewebauthn/server': 10.0.1
+ better-call: 0.2.14-beta.3
+ consola: 3.2.3
+ defu: 6.1.4
+ jose: 5.9.6
+ kysely: 0.27.4
+ nanoid: 5.0.8
+ nanostores: 0.11.3
+ oslo: 1.2.1
+ uncrypto: 0.1.3
+ zod: 3.23.8
+ transitivePeerDependencies:
+ - encoding
+
+ better-call@0.2.14-beta.3:
+ dependencies:
+ '@better-fetch/fetch': 1.1.12
+ rou3: 0.5.1
+ set-cookie-parser: 2.7.1
+ uncrypto: 0.1.3
+ zod: 3.23.8
+
binary-extensions@2.3.0: {}
bl@4.1.0:
@@ -7749,6 +9251,10 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chokidar@4.0.1:
+ dependencies:
+ readdirp: 4.0.2
+
ci-info@3.9.0: {}
class-variance-authority@0.7.0:
@@ -7831,6 +9337,8 @@ snapshots:
commander@10.0.1: {}
+ commander@11.1.0: {}
+
commander@4.1.1: {}
comment-json@4.2.5:
@@ -7845,6 +9353,13 @@ snapshots:
concat-map@0.0.1: {}
+ config-chain@1.1.13:
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+
+ consola@3.2.3: {}
+
constant-case@2.0.0:
dependencies:
snake-case: 2.1.0
@@ -7869,14 +9384,27 @@ snapshots:
cookie@0.7.1: {}
+ cookie@0.7.2: {}
+
cookiejar@2.1.4: {}
core-js-pure@3.39.0: {}
core-util-is@1.0.3: {}
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
create-require@1.1.1: {}
+ cross-fetch@4.0.0:
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
cross-spawn@7.0.5:
dependencies:
path-key: 3.1.1
@@ -7951,6 +9479,8 @@ snapshots:
es-errors: 1.3.0
is-data-view: 1.0.1
+ debounce@2.0.0: {}
+
debug@3.2.7:
dependencies:
ms: 2.1.3
@@ -7971,6 +9501,8 @@ snapshots:
deep-is@0.1.4: {}
+ deepmerge@4.3.1: {}
+
defaults@1.0.4:
dependencies:
clone: 1.0.4
@@ -7987,6 +9519,8 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
+ defu@6.1.4: {}
+
degenerator@5.0.1:
dependencies:
ast-types: 0.13.4
@@ -8049,25 +9583,73 @@ snapshots:
'@babel/runtime': 7.26.0
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.1.0:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
dot-case@2.1.1:
dependencies:
no-case: 2.3.2
dotenv@16.0.3: {}
+ dotenv@16.4.5: {}
+
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.6.3
+
electron-to-chromium@1.5.55: {}
emoji-regex@8.0.0: {}
emoji-regex@9.2.2: {}
+ engine.io-parser@5.2.3: {}
+
+ engine.io@6.6.2:
+ dependencies:
+ '@types/cookie': 0.4.1
+ '@types/cors': 2.8.17
+ '@types/node': 20.17.6
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cookie: 0.7.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.17.1:
dependencies:
graceful-fs: 4.2.11
tapable: 2.2.1
+ entities@4.5.0: {}
+
error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1
@@ -8179,6 +9761,32 @@ snapshots:
esast-util-from-estree: 2.0.0
vfile-message: 4.0.2
+ 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
@@ -8230,7 +9838,7 @@ snapshots:
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.2(eslint@8.57.1)
eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1)
@@ -8252,7 +9860,7 @@ snapshots:
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0):
dependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -8274,7 +9882,7 @@ snapshots:
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
@@ -8287,13 +9895,13 @@ snapshots:
debug: 4.3.7
enhanced-resolve: 5.17.1
eslint: 8.57.1
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
@@ -8311,7 +9919,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
@@ -8328,7 +9936,7 @@ snapshots:
eslint: 8.57.1
ignore: 5.3.2
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -8339,7 +9947,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.15.1
is-glob: 4.0.3
@@ -8605,6 +10213,8 @@ snapshots:
iconv-lite: 0.4.24
tmp: 0.0.33
+ fast-deep-equal@2.0.1: {}
+
fast-deep-equal@3.1.3: {}
fast-equals@5.0.1: {}
@@ -8711,6 +10321,9 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
+ fs-monkey@1.0.6:
+ optional: true
+
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -8778,6 +10391,14 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob@10.3.4:
+ dependencies:
+ foreground-child: 3.3.0
+ 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.0
@@ -8966,8 +10587,23 @@ snapshots:
hosted-git-info@2.8.9: {}
+ 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
+
html-void-elements@3.0.0: {}
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.1
@@ -9076,6 +10712,8 @@ snapshots:
jsbn: 1.1.0
sprintf-js: 1.1.3
+ ipaddr.js@2.2.0: {}
+
is-alphabetical@2.0.1: {}
is-alphanumerical@2.0.1:
@@ -9232,6 +10870,12 @@ snapshots:
reflect.getprototypeof: 1.0.6
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
@@ -9244,6 +10888,16 @@ snapshots:
jose@5.9.6: {}
+ js-beautify@1.15.1:
+ 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:
@@ -9296,12 +10950,16 @@ snapshots:
kind-of@6.0.3: {}
+ kysely@0.27.4: {}
+
language-subtag-registry@0.3.23: {}
language-tags@1.0.9:
dependencies:
language-subtag-registry: 0.3.23
+ leac@0.6.0: {}
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
@@ -9378,6 +11036,13 @@ snapshots:
markdown-extensions@2.0.0: {}
+ marked@7.0.4: {}
+
+ md-to-react-email@5.0.2(react@18.3.1):
+ dependencies:
+ marked: 7.0.4
+ react: 18.3.1
+
mdast-util-from-markdown@2.0.2:
dependencies:
'@types/mdast': 4.0.4
@@ -9504,6 +11169,16 @@ snapshots:
- acorn
- supports-color
+ memfs-browser@3.5.10302:
+ dependencies:
+ memfs: 3.5.3
+ optional: true
+
+ memfs@3.5.3:
+ dependencies:
+ fs-monkey: 1.0.6
+ optional: true
+
memfs@4.14.0:
dependencies:
'@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.1)
@@ -9755,6 +11430,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
@@ -9783,8 +11462,14 @@ snapshots:
nanoid@3.3.7: {}
+ nanoid@5.0.8: {}
+
+ nanostores@0.11.3: {}
+
natural-compare@1.4.0: {}
+ negotiator@0.6.3: {}
+
neo-async@2.6.2: {}
netmask@2.0.2: {}
@@ -9800,6 +11485,32 @@ snapshots:
react: 19.0.0-rc-02c0e824-20241028
react-dom: 19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028)
+ next@14.2.10(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@next/env': 14.2.10
+ '@swc/helpers': 0.5.5
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001679
+ graceful-fs: 4.2.11
+ postcss: 8.4.31
+ react: 18.3.1
+ react-dom: 19.0.0-rc-02c0e824-20241028(react@18.3.1)
+ styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1)
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 14.2.10
+ '@next/swc-darwin-x64': 14.2.10
+ '@next/swc-linux-arm64-gnu': 14.2.10
+ '@next/swc-linux-arm64-musl': 14.2.10
+ '@next/swc-linux-x64-gnu': 14.2.10
+ '@next/swc-linux-x64-musl': 14.2.10
+ '@next/swc-win32-arm64-msvc': 14.2.10
+ '@next/swc-win32-ia32-msvc': 14.2.10
+ '@next/swc-win32-x64-msvc': 14.2.10
+ '@opentelemetry/api': 1.9.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
next@15.0.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028):
dependencies:
'@next/env': 15.0.2
@@ -9835,6 +11546,10 @@ snapshots:
lower-case: 2.0.2
tslib: 2.8.1
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
node-plop@0.26.3:
dependencies:
'@babel/runtime-corejs3': 7.26.0
@@ -9851,6 +11566,10 @@ snapshots:
node-releases@2.0.18: {}
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -9950,6 +11669,11 @@ snapshots:
os-tmpdir@1.0.2: {}
+ oslo@1.2.1:
+ dependencies:
+ '@node-rs/argon2': 1.7.0
+ '@node-rs/bcrypt': 1.9.0
+
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -10018,6 +11742,11 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parseley@0.12.1:
+ dependencies:
+ leac: 0.6.0
+ peberminta: 0.9.0
+
pascal-case@2.0.1:
dependencies:
camel-case: 3.0.0
@@ -10051,6 +11780,8 @@ snapshots:
pathval@2.0.0: {}
+ peberminta@0.9.0: {}
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -10133,6 +11864,8 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ prismjs@1.29.0: {}
+
prop-types@15.8.1:
dependencies:
loose-envify: 1.4.0
@@ -10141,6 +11874,8 @@ snapshots:
property-information@6.5.0: {}
+ proto-list@1.2.4: {}
+
protobufjs@7.4.0:
dependencies:
'@protobufjs/aspromise': 1.1.2
@@ -10173,6 +11908,12 @@ snapshots:
punycode@2.3.1: {}
+ pvtsutils@1.3.5:
+ dependencies:
+ tslib: 2.8.1
+
+ pvutils@1.1.3: {}
+
qs@6.13.0:
dependencies:
side-channel: 1.0.6
@@ -10202,11 +11943,43 @@ snapshots:
transitivePeerDependencies:
- react-native
+ react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ scheduler: 0.25.0-rc-02c0e824-20241028
+
react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028):
dependencies:
react: 19.0.0-rc-02c0e824-20241028
scheduler: 0.25.0-rc-02c0e824-20241028
+ react-email@3.0.2(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/parser': 7.24.5
+ chalk: 4.1.2
+ chokidar: 4.0.1
+ commander: 11.1.0
+ debounce: 2.0.0
+ esbuild: 0.19.11
+ glob: 10.3.4
+ log-symbols: 4.1.0
+ mime-types: 2.1.35
+ next: 14.2.10(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+ normalize-path: 3.0.0
+ ora: 5.4.1
+ socket.io: 4.8.0
+ transitivePeerDependencies:
+ - '@opentelemetry/api'
+ - '@playwright/test'
+ - babel-plugin-macros
+ - bufferutil
+ - react
+ - react-dom
+ - sass
+ - supports-color
+ - utf-8-validate
+
react-hook-form@7.53.2(react@19.0.0-rc-02c0e824-20241028):
dependencies:
react: 19.0.0-rc-02c0e824-20241028
@@ -10221,6 +11994,10 @@ snapshots:
react-is@18.3.1: {}
+ react-promise-suspense@0.3.4:
+ dependencies:
+ fast-deep-equal: 2.0.1
+
react-redux@7.2.9(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028):
dependencies:
'@babel/runtime': 7.26.0
@@ -10322,6 +12099,8 @@ snapshots:
dependencies:
picomatch: 2.3.1
+ readdirp@4.0.2: {}
+
recharts-scale@0.4.5:
dependencies:
decimal.js-light: 2.5.1
@@ -10467,6 +12246,13 @@ snapshots:
require-directory@2.1.1: {}
+ resend@4.0.1-alpha.0(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@react-email/render': 1.0.1(react-dom@19.0.0-rc-02c0e824-20241028(react@18.3.1))(react@18.3.1)
+ transitivePeerDependencies:
+ - react
+ - react-dom
+
resolve-from@4.0.0: {}
resolve-pkg-maps@1.0.0: {}
@@ -10523,6 +12309,8 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.25.0
fsevents: 2.3.3
+ rou3@0.5.1: {}
+
run-async@2.4.1: {}
run-parallel@1.2.0:
@@ -10561,6 +12349,10 @@ snapshots:
extend-shallow: 2.0.1
kind-of: 6.0.3
+ selderee@0.11.0:
+ dependencies:
+ parseley: 0.12.1
+
semver@5.7.2: {}
semver@6.3.1: {}
@@ -10572,6 +12364,8 @@ snapshots:
no-case: 2.3.2
upper-case-first: 1.1.2
+ set-cookie-parser@2.7.1: {}
+
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
@@ -10649,6 +12443,36 @@ snapshots:
dependencies:
no-case: 2.3.2
+ socket.io-adapter@2.5.5:
+ dependencies:
+ debug: 4.3.7
+ ws: 8.17.1
+ 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.8.0:
+ dependencies:
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cors: 2.8.5
+ debug: 4.3.7
+ engine.io: 6.6.2
+ socket.io-adapter: 2.5.5
+ socket.io-parser: 4.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
socks-proxy-agent@8.0.4:
dependencies:
agent-base: 7.1.1
@@ -10813,6 +12637,13 @@ snapshots:
dependencies:
inline-style-parser: 0.2.4
+ 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
+
styled-jsx@5.1.6(react@19.0.0-rc-02c0e824-20241028):
dependencies:
client-only: 0.0.1
@@ -10954,6 +12785,8 @@ snapshots:
toml@3.0.0: {}
+ tr46@0.0.3: {}
+
tree-dump@1.0.2(tslib@2.8.1):
dependencies:
tslib: 2.8.1
@@ -11095,6 +12928,8 @@ snapshots:
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
+ uncrypto@0.1.3: {}
+
undici-types@6.19.8: {}
unified@11.0.5:
@@ -11189,6 +13024,8 @@ snapshots:
validate-npm-package-name@5.0.1: {}
+ vary@1.1.2: {}
+
vfile-message@4.0.2:
dependencies:
'@types/unist': 3.0.3
@@ -11292,6 +13129,13 @@ snapshots:
dependencies:
defaults: 1.0.4
+ webidl-conversions@3.0.1: {}
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
which-boxed-primitive@1.0.2:
dependencies:
is-bigint: 1.0.4
@@ -11363,6 +13207,8 @@ snapshots:
wrappy@1.0.2: {}
+ ws@8.17.1: {}
+
y18n@5.0.8: {}
yallist@3.1.1: {}