chore(deps): migrate to tailwind v4 and patch nextjs

This commit is contained in:
2026-05-15 17:58:47 +02:00
parent ed3ebc9e3a
commit a2dfe81265
16 changed files with 374 additions and 389 deletions

View File

@@ -12,7 +12,7 @@
"dependencies": {
"@astrojs/starlight": "^0.38.4",
"@catppuccin/starlight": "^2.0.1",
"astro": "^6.2.1",
"astro": "^6.3.3",
"astro-mermaid": "^2.0.1",
"mermaid": "^11.14.0",
"sharp": "^0.34.5",

View File

@@ -1,5 +1,8 @@
{
"extends": "astro/tsconfigs/strict",
"compilerOptions": {
"ignoreDeprecations": "6.0"
},
"include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist"]
}

View File

@@ -4,7 +4,7 @@
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"config": "tailwind.config.mts",
"css": "src/app/globals.css",
"baseColor": "slate",
"cssVariables": true,
@@ -14,4 +14,4 @@
"components": "@/components",
"utils": "@/lib/utils"
}
}
}

View File

@@ -54,7 +54,7 @@
"lucia": "^3.2.2",
"lucide-react": "^1.14.0",
"media-chrome": "^4.19.0",
"next": "^16.2.4",
"next": "^16.2.6",
"next-themes": "^0.4.6",
"node-cron": "^4.2.1",
"nuqs": "^2.8.9",

View File

@@ -1,7 +1,7 @@
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
tailwindcss: {},
'@tailwindcss/postcss': {},
},
};

View File

@@ -1,5 +1,4 @@
import type { Metadata } from 'next';
import { Inter } from 'next/font/google';
import { cookies } from 'next/headers';
import '../globals.css';
import Navbar from '@/components/app/NavBar/NavBar';
@@ -9,7 +8,6 @@ import { Toaster } from '@/components/ui/sonner';
import { ThemeProvider } from '@/lib/providers/ThemeProvider';
import { SidebarProvider } from '@/components/ui/sidebar';
import Sidebar from '@/components/app/Sidebar/Sidebar';
import { cn } from '@/lib/utils';
import EditLivestream from '@/components/app/EditLivestream/EditLivestream';
import { StreamInfoProvider } from '@/lib/providers/StreamInfoProvider';
import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin";
@@ -19,8 +17,6 @@ import { NuqsAdapter } from 'nuqs/adapters/next/app'
import SonnerNewVersion from '@/components/app/SonnerNewVersion/SonnerNewVersion';
import ConfirmDialogProvider from '@/lib/providers/ConfirmProvider';
const inter = Inter({ subsets: ['latin'] });
export const metadata: Metadata = {
title: 'hackclub.tv',
description: "Hack Club's livestreaming platform",
@@ -37,7 +33,7 @@ export default async function RootLayout({
return (
<html lang="en">
<body className={cn('flex flex-col h-screen', inter.className)}>
<body className="flex h-screen flex-col">
<SessionProvider value={sessionData}>
<ThemeProvider
attribute="class"

View File

@@ -1,128 +1,163 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import "tailwindcss";
@import "tw-animate-css";
@layer base {
:root {
/* Light theme - based on your color scheme */
@config "../../tailwind.config.mts";
@custom-variant dark (&:is(.dark *));
/* Main background and foreground */
--background: 350 59% 98%; /* FDF7F8 - main background */
--foreground: 351 34% 30%; /* 5D3A3F - main text */
@font-face {
font-family: 'Phantom Sans';
src:
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Regular.woff2') format('woff2'),
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Regular.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}
/* Muted elements */
--muted: 350 40% 93%; /* F8E8EA - muted background */
--muted-foreground: 350 30% 45%; /* Lighter version of main text */
@font-face {
font-family: 'Phantom Sans';
src:
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Italic.woff2') format('woff2'),
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Italic.woff') format('woff');
font-weight: normal;
font-style: italic;
font-display: swap;
}
/* Popover and card */
--popover: 0 0% 100%; /* FFFFFF - popover background */
--popover-foreground: 351 34% 30%; /* 5D3A3F - popover text */
--card: 0 0% 100%; /* FFFFFF - card background */
--card-foreground: 351 34% 30%; /* 5D3A3F - card text */
@font-face {
font-family: 'Phantom Sans';
src:
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Bold.woff2') format('woff2'),
url('https://assets.hackclub.com/fonts/Phantom_Sans_0.7/Bold.woff') format('woff');
font-weight: bold;
font-style: normal;
font-display: swap;
}
/* Border and input */
--border: 350 30% 85%; /* Derived border color */
--input: 350 30% 85%; /* Input background */
:root {
--background: hsl(350 59% 98%);
--foreground: hsl(351 34% 30%);
--muted: hsl(350 40% 93%);
--muted-foreground: hsl(350 30% 45%);
--popover: hsl(0 0% 100%);
--popover-foreground: hsl(351 34% 30%);
--card: hsl(0 0% 100%);
--card-foreground: hsl(351 34% 30%);
--border: hsl(350 30% 85%);
--input: hsl(350 30% 85%);
--primary: hsl(350 70% 50%);
--primary-foreground: hsl(0 0% 100%);
--secondary: hsl(350 40% 93%);
--secondary-foreground: hsl(351 34% 30%);
--accent: hsl(350 70% 40%);
--accent-foreground: hsl(0 0% 100%);
--destructive: hsl(350 70% 55%);
--destructive-foreground: hsl(0 0% 100%);
--ring: hsl(350 70% 50%);
--surface-1: hsl(350 40% 93%);
--surface-2: hsl(350 35% 88%);
--mantle: hsl(350 59% 98%);
--mantle-foreground: hsl(351 34% 30%);
--radius: 0.5rem;
--sidebar-background: hsl(350 59% 98%);
--sidebar-foreground: hsl(351 34% 30%);
--sidebar-primary: hsl(350 70% 50%);
--sidebar-primary-foreground: hsl(0 0% 100%);
--sidebar-accent: hsl(350 40% 93%);
--sidebar-accent-foreground: hsl(351 34% 30%);
--sidebar-border: hsl(350 30% 85%);
--sidebar-ring: hsl(350 70% 50%);
}
/* Primary actions */
--primary: 350 70% 50%; /* C8394F - primary button */
--primary-foreground: 0 0% 100%; /* FFFFFF - text on primary */
.dark {
--background: hsl(350 20% 15%);
--foreground: hsl(350 30% 92%);
--muted: hsl(350 20% 25%);
--muted-foreground: hsl(350 30% 75%);
--popover: hsl(350 20% 15%);
--popover-foreground: hsl(350 30% 92%);
--card: hsl(350 20% 15%);
--card-foreground: hsl(350 30% 92%);
--border: hsl(350 20% 35%);
--input: hsl(350 20% 35%);
--primary: hsl(350 100% 75%);
--primary-foreground: hsl(350 20% 15%);
--secondary: hsl(350 20% 25%);
--secondary-foreground: hsl(350 30% 92%);
--accent: hsl(350 100% 80%);
--accent-foreground: hsl(350 20% 15%);
--destructive: hsl(350 100% 70%);
--destructive-foreground: hsl(350 20% 15%);
--ring: hsl(350 100% 75%);
--surface-1: hsl(350 20% 25%);
--surface-2: hsl(350 20% 35%);
--mantle: hsl(350 20% 12%);
--mantle-foreground: hsl(350 30% 92%);
--sidebar-background: hsl(350 20% 12%);
--sidebar-foreground: hsl(350 30% 92%);
--sidebar-primary: hsl(350 100% 75%);
--sidebar-primary-foreground: hsl(350 20% 15%);
--sidebar-accent: hsl(350 20% 25%);
--sidebar-accent-foreground: hsl(350 30% 92%);
--sidebar-border: hsl(350 20% 35%);
--sidebar-ring: hsl(350 100% 75%);
}
/* Secondary elements */
--secondary: 350 40% 93%; /* F8E8EA - secondary background */
--secondary-foreground: 351 34% 30%; /* 5D3A3F - text on secondary */
@theme inline {
--font-sans: 'Phantom Sans', ui-sans-serif, system-ui, sans-serif;
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-ring: var(--ring);
--color-surface1: var(--surface-1);
--color-surface2: var(--surface-2);
--color-mantle: var(--mantle);
--color-mantle-foreground: var(--mantle-foreground);
--color-sidebar: var(--sidebar-background);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--animate-accordion-down: accordion-down 0.2s ease-out;
--animate-accordion-up: accordion-up 0.2s ease-out;
}
/* Accent elements */
--accent: 350 70% 40%; /* A12D3E - accent color */
--accent-foreground: 0 0% 100%; /* FFFFFF - text on accent */
/* Destructive actions */
--destructive: 350 70% 55%; /* D63C56 - error/destroy */
--destructive-foreground: 0 0% 100%; /* FFFFFF - text on destructive */
/* Focus ring */
--ring: 350 70% 50%; /* C8394F - focus ring */
/* Surface colors */
--surface-1: 350 40% 93%; /* F8E8EA - surface 1 */
--surface-2: 350 35% 88%; /* Derived surface 2 */
/* Mantle */
--mantle: 350 59% 98%; /* FDF7F8 - mantle */
/* Radius */
--radius: 0.5rem;
/* Sidebar specific */
--sidebar-background: 350 59% 98%; /* FDF7F8 - sidebar bg */
--sidebar-foreground: 351 34% 30%; /* 5D3A3F - sidebar text */
--sidebar-primary: 350 70% 50%; /* C8394F - sidebar primary */
--sidebar-primary-foreground: 0 0% 100%; /* FFFFFF - text on sidebar primary */
--sidebar-accent: 350 40% 93%; /* F8E8EA - sidebar accent */
--sidebar-accent-foreground: 351 34% 30%; /* 5D3A3F - text on sidebar accent */
--sidebar-border: 350 30% 85%; /* Derived border */
--sidebar-ring: 350 70% 50%; /* C8394F - sidebar focus ring */
@keyframes accordion-down {
from {
height: 0;
}
to {
height: var(--radix-accordion-content-height);
}
}
.dark {
/* Dark theme - based on your color scheme */
/* Main background and foreground */
--background: 350 20% 15%; /* 2A1F21 - main background */
--foreground: 350 30% 92%; /* F5E6E8 - main text */
/* Muted elements */
--muted: 350 20% 25%; /* 4A2D31 - muted background */
--muted-foreground: 350 30% 75%; /* Lighter version of main text */
/* Popover and card */
--popover: 350 20% 15%; /* 2A1F21 - popover background */
--popover-foreground: 350 30% 92%; /* F5E6E8 - popover text */
--card: 350 20% 15%; /* 2A1F21 - card background */
--card-foreground: 350 30% 92%; /* F5E6E8 - card text */
/* Border and input */
--border: 350 20% 35%; /* Derived border color */
--input: 350 20% 35%; /* Input background */
/* Primary actions */
--primary: 350 100% 75%; /* FF7A8A - primary button */
--primary-foreground: 350 20% 15%; /* 2A1F21 - text on primary */
/* Secondary elements */
--secondary: 350 20% 25%; /* 4A2D31 - secondary background */
--secondary-foreground: 350 30% 92%; /* F5E6E8 - text on secondary */
/* Accent elements */
--accent: 350 100% 80%; /* FF9AAA - accent color */
--accent-foreground: 350 20% 15%; /* 2A1F21 - text on accent */
/* Destructive actions */
--destructive: 350 100% 70%; /* FF6B7D - error/destroy */
--destructive-foreground: 350 20% 15%; /* 2A1F21 - text on destructive */
/* Focus ring */
--ring: 350 100% 75%; /* FF7A8A - focus ring */
/* Surface colors */
--surface-1: 350 20% 25%; /* 4A2D31 - surface 1 */
--surface-2: 350 20% 35%; /* Derived surface 2 */
/* Mantle */
--mantle: 350 20% 12%; /* 1F1617 - mantle */
/* Radius */
--radius: 0.5rem;
/* Sidebar specific */
--sidebar-background: 350 20% 12%; /* 1F1617 - sidebar bg */
--sidebar-foreground: 350 30% 92%; /* F5E6E8 - sidebar text */
--sidebar-primary: 350 100% 75%; /* FF7A8A - sidebar primary */
--sidebar-primary-foreground: 350 20% 15%; /* 2A1F21 - text on sidebar primary */
--sidebar-accent: 350 20% 25%; /* 4A2D31 - sidebar accent */
--sidebar-accent-foreground: 350 30% 92%; /* F5E6E8 - text on sidebar accent */
--sidebar-border: 350 20% 35%; /* Derived border */
--sidebar-ring: 350 100% 75%; /* FF7A8A - sidebar focus ring */
@keyframes accordion-up {
from {
height: var(--radix-accordion-content-height);
}
to {
height: 0;
}
}
@@ -131,31 +166,30 @@
@apply border-border;
}
body {
font-family: 'Phantom Sans', ui-sans-serif, system-ui, sans-serif;
@apply bg-background text-foreground;
}
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
}
h1 {
@apply scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl;
}
.scrollbar-hide::-webkit-scrollbar {
display: none;
}
h2 {
@apply scroll-m-20 pb-2 text-3xl font-semibold tracking-tight first:mt-0;
.scrollbar-hide {
-ms-overflow-style: none;
scrollbar-width: none;
}
}
media-controller {
--media-primary-color: #ffffff;
--media-secondary-color: transparent;
--media-control-background: transparent;
--media-control-hover-background: hsla(var(--primary), 0.4);
--media-control-hover-background: color-mix(in oklab, var(--primary) 40%, transparent);
/* Range colors */
--media-range-track-background: hsla(0, 0%, 100%, 0.3);
--media-range-bar-color: hsl(var(--primary));
--media-range-thumb-background: hsl(var(--primary));
--media-range-bar-color: var(--primary);
--media-range-thumb-background: var(--primary);
--media-range-thumb-border-radius: 50%;
--media-range-thumb-height: 12px;
--media-range-thumb-width: 12px;
@@ -164,7 +198,7 @@ media-controller {
/* Layout & structure */
border-radius: calc(var(--radius) * 1.5);
overflow: hidden;
border: 1px solid hsla(var(--border), 0.2);
border: 1px solid color-mix(in oklab, var(--border) 20%, transparent);
background-color: #000;
box-shadow: 0 10px 30px -10px rgba(0,0,0,0.3);
}
@@ -182,9 +216,9 @@ media-control-bar {
}
media-time-range {
--media-preview-background: hsla(var(--card), 0.95);
--media-preview-background: color-mix(in oklab, var(--card) 95%, transparent);
--media-preview-border-radius: var(--radius);
--media-time-display-color: hsl(var(--foreground));
--media-time-display-color: var(--foreground);
}
media-time-display {
@@ -207,8 +241,8 @@ media-controller:not([mediapaused])[userinactive]::part(centered-layer) {
media-loading-indicator {
--media-loading-icon-width: 56px;
--media-loading-icon-height: 56px;
--media-loading-icon-color: hsl(var(--primary));
filter: drop-shadow(0 0 8px hsla(var(--primary), 0.4));
--media-loading-icon-color: var(--primary);
filter: drop-shadow(0 0 8px color-mix(in oklab, var(--primary) 40%, transparent));
}
media-play-button,
@@ -225,7 +259,7 @@ media-mute-button:hover,
media-fullscreen-button:hover,
media-chrome-button:hover {
transform: scale(1.1);
--media-control-background: hsla(var(--primary), 0.85);
--media-control-background: color-mix(in oklab, var(--primary) 85%, transparent);
--media-button-icon-color: #ffffff;
}
@@ -241,4 +275,4 @@ media-chrome-button:hover {
media-volume-range {
width: 90px;
height: 40px; /* Aligns with standard media button heights */
}
}

View File

@@ -23,7 +23,6 @@ import {
PenSquare,
LogOut,
Code,
Github,
Heart,
Radio,
} from 'lucide-react';
@@ -31,6 +30,7 @@ import { SidebarTrigger } from '@/components/ui/sidebar';
import Image from 'next/image';
import Logo from '@/lib/assets/logo.webp';
import { usePersonalChannels } from '@/lib/hooks/useUserList';
import { JSX } from 'react';
export default function Navbar(props: Props) {
const { user } = useSession();
@@ -140,8 +140,13 @@ export default function Navbar(props: Props) {
</Link>
<div className="grid grid-cols-2 gap-1">
<Link href={'https://github.com/SrIzan10/hctv'} target="_blank" rel="noreferrer">
<DropdownMenuItem className={`${menuItemClass} justify-center text-xs`}>
<Github className="w-3.5 h-3.5 mr-1.5" />
<DropdownMenuItem className={`${menuItemClass} justify-center text-xs gap-2`}>
<Image
src="https://thesvg.org/icons/github/dark.svg"
alt="GitHub"
width={14}
height={14}
/>
Github
</DropdownMenuItem>
</Link>

View File

@@ -141,7 +141,7 @@ const SidebarProvider = React.forwardRef<
} as React.CSSProperties
}
className={cn(
"group/sidebar-wrapper flex min-h-svh has-[[data-variant=inset]]:bg-sidebar",
"group/sidebar-wrapper flex min-h-svh flex-col has-[[data-variant=inset]]:bg-sidebar",
className
)}
ref={ref}
@@ -181,7 +181,7 @@ const Sidebar = React.forwardRef<
return (
<div
className={cn(
"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",
"flex h-full w-[var(--sidebar-width)] flex-col bg-sidebar text-sidebar-foreground",
className
)}
ref={ref}
@@ -198,7 +198,7 @@ const Sidebar = React.forwardRef<
<SheetContent
data-sidebar="sidebar"
data-mobile="true"
className="w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden"
className="w-[var(--sidebar-width)] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden"
style={
{
"--sidebar-width": SIDEBAR_WIDTH_MOBILE,
@@ -224,24 +224,24 @@ const Sidebar = React.forwardRef<
{/* This is what handles the sidebar gap on desktop */}
<div
className={cn(
"duration-200 relative h-[calc(100vh-4rem)] w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex",
"duration-200 relative h-[calc(100vh-4rem)] w-[var(--sidebar-width)] transition-[left,right,width] ease-linear md:flex",
"group-data-[collapsible=offcanvas]:w-0",
"group-data-[side=right]:rotate-180",
variant === "floating" || variant === "inset"
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]"
: "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+var(--spacing)*4)]"
: "group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]"
)}
/>
<div
className={cn(
"duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex",
"duration-200 fixed inset-y-0 z-10 hidden h-svh w-[var(--sidebar-width)] transition-[left,right,width] ease-linear md:flex",
side === "left"
? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
: "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
// Adjust the padding for floating and inset variants.
variant === "floating" || variant === "inset"
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]"
: "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+var(--spacing)*4+2px)]"
: "group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)] group-data-[side=left]:border-r group-data-[side=right]:border-l",
className
)}
{...props}
@@ -323,7 +323,7 @@ const SidebarInset = React.forwardRef<
ref={ref}
className={cn(
"relative flex min-h-svh flex-1 flex-col bg-background",
"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
"peer-data-[variant=inset]:min-h-[calc(100svh-var(--spacing)*4)] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
className
)}
{...props}
@@ -518,7 +518,7 @@ const sidebarMenuButtonVariants = cva(
variant: {
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
outline:
"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]",
},
size: {
default: "h-8 text-sm",
@@ -669,7 +669,7 @@ const SidebarMenuSkeleton = React.forwardRef<
/>
)}
<Skeleton
className="h-4 flex-1 max-w-[--skeleton-width]"
className="h-4 flex-1 max-w-[var(--skeleton-width)]"
data-sidebar="menu-skeleton-text"
style={
{

View File

@@ -1,109 +1,20 @@
import type { Config } from "tailwindcss"
import { uploadthingPlugin } from 'uploadthing/tw'
import * as tan from 'tailwindcss-animate'
import { uploadthingPlugin } from 'uploadthing/tw';
import type { Config } from 'tailwindcss';
const config = {
darkMode: ["class"],
content: [
'./pages/**/*.{ts,tsx}',
'./components/**/*.{ts,tsx}',
'./app/**/*.{ts,tsx}',
'./src/**/*.{ts,tsx}',
],
prefix: "",
darkMode: ['class'],
content: ['./src/**/*.{ts,tsx}'],
prefix: '',
theme: {
container: {
center: true,
padding: '2rem',
screens: {
'2xl': '1400px'
}
},
extend: {
colors: {
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
primary: {
DEFAULT: 'hsl(var(--primary))',
foreground: 'hsl(var(--primary-foreground))'
},
secondary: {
DEFAULT: 'hsl(var(--secondary))',
foreground: 'hsl(var(--secondary-foreground))'
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))'
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))'
},
accent: {
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))'
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))'
},
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))'
},
surface1: {
DEFAULT: 'hsl(var(--surface-1))'
},
surface2: {
DEFAULT: 'hsl(var(--surface-2))'
},
mantle: {
DEFAULT: 'hsl(var(--mantle))'
},
sidebar: {
DEFAULT: 'hsl(var(--sidebar-background))',
foreground: 'hsl(var(--sidebar-foreground))',
primary: 'hsl(var(--sidebar-primary))',
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
accent: 'hsl(var(--sidebar-accent))',
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
border: 'hsl(var(--sidebar-border))',
ring: 'hsl(var(--sidebar-ring))'
}
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)'
},
keyframes: {
'accordion-down': {
from: {
height: '0'
},
to: {
height: 'var(--radix-accordion-content-height)'
}
},
'accordion-up': {
from: {
height: 'var(--radix-accordion-content-height)'
},
to: {
height: '0'
}
}
},
animation: {
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out'
}
}
container: {
center: true,
padding: '2rem',
screens: {
'2xl': '1400px',
},
},
},
plugins: [tan, uploadthingPlugin],
} satisfies Config
plugins: [uploadthingPlugin],
} satisfies Config;
export default config
export default config;

View File

@@ -3,6 +3,7 @@
"target": "ESNext",
"module": "NodeNext",
"moduleResolution": "nodenext",
"ignoreDeprecations": "6.0",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
@@ -15,4 +16,4 @@
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
}

View File

@@ -26,6 +26,6 @@
"devDependencies": {
"@types/node": "^24.0.1",
"tsx": "^4.7.1",
"typescript": "^5.8.2"
"typescript": "^6.0.3"
}
}

View File

@@ -3,6 +3,7 @@
"target": "ESNext",
"module": "NodeNext",
"moduleResolution": "nodenext",
"ignoreDeprecations": "6.0",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
@@ -15,4 +16,4 @@
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
}

View File

@@ -6,6 +6,7 @@
"module": "NodeNext",
"declaration": true,
"moduleResolution": "nodenext",
"ignoreDeprecations": "6.0",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,

View File

@@ -28,6 +28,7 @@
"module": "commonjs", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "Node", /* Specify how TypeScript looks up a file from a given module specifier. */
"ignoreDeprecations": "6.0",
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
@@ -112,4 +113,4 @@
"node_modules",
"dist"
]
}
}

276
pnpm-lock.yaml generated
View File

@@ -59,16 +59,16 @@ importers:
dependencies:
'@astrojs/starlight':
specifier: ^0.38.4
version: 0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
version: 0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
'@catppuccin/starlight':
specifier: ^2.0.1
version: 2.0.1(@astrojs/starlight@0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
version: 2.0.1(@astrojs/starlight@0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
astro:
specifier: ^6.2.1
version: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
specifier: ^6.3.3
version: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro-mermaid:
specifier: ^2.0.1
version: 2.0.1(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))(mermaid@11.14.0)
version: 2.0.1(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))(mermaid@11.14.0)
mermaid:
specifier: ^11.14.0
version: 11.14.0
@@ -77,7 +77,7 @@ importers:
version: 0.34.5
starlight-typedoc:
specifier: ^0.21.5
version: 0.21.5(@astrojs/starlight@0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@6.0.3)))(typedoc@0.28.19(typescript@6.0.3))
version: 0.21.5(@astrojs/starlight@0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@6.0.3)))(typedoc@0.28.19(typescript@6.0.3))
typedoc:
specifier: ^0.28.19
version: 0.28.19(typescript@6.0.3)
@@ -152,7 +152,7 @@ importers:
version: 0.9.32(@vue/compiler-sfc@3.5.33)(axios@1.15.2)(react@19.2.5)(tailwindcss@4.2.4)(typescript@6.0.3)
'@sentry/nextjs':
specifier: ^10.51.0
version: 10.51.0(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(webpack@5.104.1)
version: 10.51.0(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(webpack@5.104.1)
'@slack/web-api':
specifier: ^7.15.1
version: 7.15.1
@@ -161,7 +161,7 @@ importers:
version: 2.4.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@uploadthing/react':
specifier: ^7.3.3
version: 7.3.3(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4))
version: 7.3.3(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4))
ajv:
specifier: ^8.20.0
version: 8.20.0
@@ -205,8 +205,8 @@ importers:
specifier: ^4.19.0
version: 4.19.0(react@19.2.5)
next:
specifier: ^16.2.4
version: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
specifier: ^16.2.6
version: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -215,7 +215,7 @@ importers:
version: 4.2.1
nuqs:
specifier: ^2.8.9
version: 2.8.9(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
version: 2.8.9(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)
pg:
specifier: ^8.20.0
version: 8.20.0
@@ -269,7 +269,7 @@ importers:
version: 11.0.5
uploadthing:
specifier: ^7.7.4
version: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
version: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
util-utils:
specifier: ^1.0.3
version: 1.0.3
@@ -346,13 +346,13 @@ importers:
dependencies:
'@prisma/client':
specifier: 6.5.0
version: 6.5.0(prisma@6.5.0(typescript@5.9.3))(typescript@5.9.3)
version: 6.5.0(prisma@6.5.0(typescript@6.0.3))(typescript@6.0.3)
ioredis:
specifier: 5.7.0
version: 5.7.0
prisma:
specifier: 6.5.0
version: 6.5.0(typescript@5.9.3)
version: 6.5.0(typescript@6.0.3)
devDependencies:
'@types/node':
specifier: ^24.0.1
@@ -361,8 +361,8 @@ importers:
specifier: ^4.7.1
version: 4.21.0
typescript:
specifier: ^5.8.2
version: 5.9.3
specifier: ^6.0.3
version: 6.0.3
packages/hono-ws:
dependencies:
@@ -454,9 +454,15 @@ packages:
'@astrojs/internal-helpers@0.9.0':
resolution: {integrity: sha512-GdYkzR26re8izmyYlBqf4z2s7zNngmWLFuxw0UKiPNqHraZGS6GKWIwSHgS22RDlu2ePFJ8bzmpBcUszut/SDg==}
'@astrojs/internal-helpers@0.9.1':
resolution: {integrity: sha512-1pWuARqYom/TzuU3+0ZugsTrKlUydWKuULmDqSMTuonY+9IRDUEGKX/8PXQ1nBxRq3w85uGtd9q9SXfqEldMIQ==}
'@astrojs/markdown-remark@7.1.1':
resolution: {integrity: sha512-C6e9BnLGlbdv6bV8MYGeHpHxsUHrCrB4OuRLqi5LI7oiBVcBcqfUN06zpwFQdHgV48QCCrMmLpyqBr7VqC+swA==}
'@astrojs/markdown-remark@7.1.2':
resolution: {integrity: sha512-caXZ4Dc2St2dW8luEg22GlP0gupLdztCTQE4EzZOxW1pqWXz9mbeJEuHUkgDYcKWW8tjIHkydYDhWLVoxJ327Q==}
'@astrojs/mdx@5.0.4':
resolution: {integrity: sha512-tSbuuYueNODiFAFaME7pjHY5lOLoxBYJi1cKd6scw9+a4ZO7C7UGdafEoVAQvOV2eO8a6RaHSAJYGVPL1w8BPA==}
engines: {node: '>=22.12.0'}
@@ -467,6 +473,10 @@ packages:
resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==}
engines: {node: '>=22.12.0'}
'@astrojs/prism@4.0.2':
resolution: {integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==}
engines: {node: '>=22.12.0'}
'@astrojs/sitemap@3.7.2':
resolution: {integrity: sha512-PqkzkcZTb5ICiyIR8VoKbIAP/laNRXi5tw616N1Ckk+40oNB8Can1AzVV56lrbC5GKSZFCyJYUVYqVivMisvpA==}
@@ -475,8 +485,8 @@ packages:
peerDependencies:
astro: ^6.0.0
'@astrojs/telemetry@3.3.1':
resolution: {integrity: sha512-7fcIxXS9J4ls5tr8b3ww9rbAIz2+HrhNJYZdkAhhB4za/I5IZ/60g+Bs8q7zwG0tOIZfNB4JWhVJ1Qkl/OrNCw==}
'@astrojs/telemetry@3.3.2':
resolution: {integrity: sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
'@babel/code-frame@7.29.0':
@@ -1507,56 +1517,56 @@ packages:
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
'@next/env@16.2.4':
resolution: {integrity: sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==}
'@next/env@16.2.6':
resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==}
'@next/eslint-plugin-next@16.2.4':
resolution: {integrity: sha512-tOX826JJ96gYK/go18sPUgMq9FK1tqxBFfUCEufJb5XIkWFFmpgU7mahJANKGkHs7F41ir3tReJ3Lv5La0RvhA==}
'@next/swc-darwin-arm64@16.2.4':
resolution: {integrity: sha512-OXTFFox5EKN1Ym08vfrz+OXxmCcEjT4SFMbNRsWZE99dMqt2Kcusl5MqPXcW232RYkMLQTy0hqgAMEsfEd/l2A==}
'@next/swc-darwin-arm64@16.2.6':
resolution: {integrity: sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@next/swc-darwin-x64@16.2.4':
resolution: {integrity: sha512-XhpVnUfmYWvD3YrXu55XdcAkQtOnvaI6wtQa8fuF5fGoKoxIUZ0kWPtcOfqJEWngFF/lOS9l3+O9CcownhiQxQ==}
'@next/swc-darwin-x64@16.2.6':
resolution: {integrity: sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@next/swc-linux-arm64-gnu@16.2.4':
resolution: {integrity: sha512-Mx/tjlNA3G8kg14QvuGAJ4xBwPk1tUHq56JxZ8CXnZwz1Etz714soCEzGQQzVMz4bEnGPowzkV6Xrp6wAkEWOQ==}
'@next/swc-linux-arm64-gnu@16.2.6':
resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@next/swc-linux-arm64-musl@16.2.4':
resolution: {integrity: sha512-iVMMp14514u7Nup2umQS03nT/bN9HurK8ufylC3FZNykrwjtx7V1A7+4kvhbDSCeonTVqV3Txnv0Lu+m2oDXNg==}
'@next/swc-linux-arm64-musl@16.2.6':
resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@next/swc-linux-x64-gnu@16.2.4':
resolution: {integrity: sha512-EZOvm1aQWgnI/N/xcWOlnS3RQBk0VtVav5Zo7n4p0A7UKyTDx047k8opDbXgBpHl4CulRqRfbw3QrX2w5UOXMQ==}
'@next/swc-linux-x64-gnu@16.2.6':
resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@next/swc-linux-x64-musl@16.2.4':
resolution: {integrity: sha512-h9FxsngCm9cTBf71AR4fGznDEDx1hS7+kSEiIRjq5kO1oXWm07DxVGZjCvk0SGx7TSjlUqhI8oOyz7NfwAdPoA==}
'@next/swc-linux-x64-musl@16.2.6':
resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@next/swc-win32-arm64-msvc@16.2.4':
resolution: {integrity: sha512-3NdJV5OXMSOeJYijX+bjaLge3mJBlh4ybydbT4GFoB/2hAojWHtMhl3CYlYoMrjPuodp0nzFVi4Tj2+WaMg+Ow==}
'@next/swc-win32-arm64-msvc@16.2.6':
resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@next/swc-win32-x64-msvc@16.2.4':
resolution: {integrity: sha512-kMVGgsqhO5YTYODD9IPGGhA6iprWidQckK3LmPeW08PIFENRmgfb4MjXHO+p//d+ts2rpjvK5gXWzXSMrPl9cw==}
'@next/swc-win32-x64-msvc@16.2.6':
resolution: {integrity: sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -4069,8 +4079,8 @@ packages:
'@mermaid-js/layout-elk':
optional: true
astro@6.2.1:
resolution: {integrity: sha512-3g1sYNly+QAkuO5ErNEQBYvsxorNDSCUNIeStBs+kcXGchvKQl1Q9EuDNOvSg010XLlHJFLVFZs9LV18Jjp4Hg==}
astro@6.3.3:
resolution: {integrity: sha512-wvLIZQYbBZt6U8gyflBW4SLBypaqdwLZUH93rT3oT53cmQ0bTGubvMAGjqBRoheOYzYcTJZtW6czztzbu4kQ5g==}
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
@@ -4776,9 +4786,6 @@ packages:
resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==}
hasBin: true
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -5411,6 +5418,10 @@ packages:
get-tsconfig@4.14.0:
resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
get-tsconfig@5.0.0-beta.4:
resolution: {integrity: sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==}
engines: {node: '>=20.20.0'}
giget@2.0.0:
resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
hasBin: true
@@ -6570,8 +6581,8 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
next@16.2.4:
resolution: {integrity: sha512-kPvz56wF5frc+FxlHI5qnklCzbq53HTwORaWBGdT0vNoKh1Aya9XC8aPauH4NJxqtzbWsS5mAbctm4cr+EkQ2Q==}
next@16.2.6:
resolution: {integrity: sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==}
engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
@@ -7877,16 +7888,6 @@ packages:
ts-morph@26.0.0:
resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==}
tsconfck@3.1.6:
resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
engines: {node: ^18 || >=20}
hasBin: true
peerDependencies:
typescript: ^5.0.0
peerDependenciesMeta:
typescript:
optional: true
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
@@ -8666,6 +8667,10 @@ snapshots:
dependencies:
picomatch: 4.0.4
'@astrojs/internal-helpers@0.9.1':
dependencies:
picomatch: 4.0.4
'@astrojs/markdown-remark@7.1.1':
dependencies:
'@astrojs/internal-helpers': 0.9.0
@@ -8692,12 +8697,38 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@astrojs/mdx@5.0.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
'@astrojs/markdown-remark@7.1.2':
dependencies:
'@astrojs/internal-helpers': 0.9.1
'@astrojs/prism': 4.0.2
github-slugger: 2.0.0
hast-util-from-html: 2.0.3
hast-util-to-text: 4.0.2
js-yaml: 4.1.1
mdast-util-definitions: 6.0.0
rehype-raw: 7.0.0
rehype-stringify: 10.0.1
remark-gfm: 4.0.1
remark-parse: 11.0.0
remark-rehype: 11.1.2
remark-smartypants: 3.0.2
retext-smartypants: 6.2.0
shiki: 4.0.2
smol-toml: 1.6.0
unified: 11.0.5
unist-util-remove-position: 5.0.0
unist-util-visit: 5.1.0
unist-util-visit-parents: 6.0.2
vfile: 6.0.3
transitivePeerDependencies:
- supports-color
'@astrojs/mdx@5.0.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
dependencies:
'@astrojs/markdown-remark': 7.1.1
'@mdx-js/mdx': 3.1.1
acorn: 8.16.0
astro: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
es-module-lexer: 2.0.0
estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5
@@ -8715,23 +8746,27 @@ snapshots:
dependencies:
prismjs: 1.30.0
'@astrojs/prism@4.0.2':
dependencies:
prismjs: 1.30.0
'@astrojs/sitemap@3.7.2':
dependencies:
sitemap: 9.0.1
stream-replace-string: 2.0.0
zod: 4.4.2
'@astrojs/starlight@0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
'@astrojs/starlight@0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
dependencies:
'@astrojs/markdown-remark': 7.1.1
'@astrojs/mdx': 5.0.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
'@astrojs/mdx': 5.0.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
'@astrojs/sitemap': 3.7.2
'@pagefind/default-ui': 1.4.0
'@types/hast': 3.0.4
'@types/js-yaml': 4.0.9
'@types/mdast': 4.0.4
astro: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro-expressive-code: 0.41.7(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
astro: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro-expressive-code: 0.41.7(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
bcp-47: 2.1.0
hast-util-from-html: 2.0.3
hast-util-select: 6.0.4
@@ -8755,10 +8790,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@astrojs/telemetry@3.3.1':
'@astrojs/telemetry@3.3.2':
dependencies:
ci-info: 4.4.0
dlv: 1.1.3
dset: 3.1.4
is-docker: 4.0.0
is-wsl: 3.1.1
@@ -8958,10 +8992,10 @@ snapshots:
dependencies:
fontkitten: 1.0.3
'@catppuccin/starlight@2.0.1(@astrojs/starlight@0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
'@catppuccin/starlight@2.0.1(@astrojs/starlight@0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))':
dependencies:
'@astrojs/starlight': 0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
astro: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
'@astrojs/starlight': 0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
astro: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
'@chevrotain/cst-dts-gen@12.0.0':
dependencies:
@@ -9845,34 +9879,34 @@ snapshots:
'@tybys/wasm-util': 0.10.1
optional: true
'@next/env@16.2.4': {}
'@next/env@16.2.6': {}
'@next/eslint-plugin-next@16.2.4':
dependencies:
fast-glob: 3.3.1
'@next/swc-darwin-arm64@16.2.4':
'@next/swc-darwin-arm64@16.2.6':
optional: true
'@next/swc-darwin-x64@16.2.4':
'@next/swc-darwin-x64@16.2.6':
optional: true
'@next/swc-linux-arm64-gnu@16.2.4':
'@next/swc-linux-arm64-gnu@16.2.6':
optional: true
'@next/swc-linux-arm64-musl@16.2.4':
'@next/swc-linux-arm64-musl@16.2.6':
optional: true
'@next/swc-linux-x64-gnu@16.2.4':
'@next/swc-linux-x64-gnu@16.2.6':
optional: true
'@next/swc-linux-x64-musl@16.2.4':
'@next/swc-linux-x64-musl@16.2.6':
optional: true
'@next/swc-win32-arm64-msvc@16.2.4':
'@next/swc-win32-arm64-msvc@16.2.6':
optional: true
'@next/swc-win32-x64-msvc@16.2.4':
'@next/swc-win32-x64-msvc@16.2.6':
optional: true
'@noble/ciphers@1.3.0': {}
@@ -10281,10 +10315,10 @@ snapshots:
prisma: 6.19.1(typescript@6.0.3)
typescript: 6.0.3
'@prisma/client@6.5.0(prisma@6.5.0(typescript@5.9.3))(typescript@5.9.3)':
'@prisma/client@6.5.0(prisma@6.5.0(typescript@6.0.3))(typescript@6.0.3)':
optionalDependencies:
prisma: 6.5.0(typescript@5.9.3)
typescript: 5.9.3
prisma: 6.5.0(typescript@6.0.3)
typescript: 6.0.3
'@prisma/config@6.19.1':
dependencies:
@@ -11439,7 +11473,7 @@ snapshots:
'@sentry/core@10.51.0': {}
'@sentry/nextjs@10.51.0(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(webpack@5.104.1)':
'@sentry/nextjs@10.51.0(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(webpack@5.104.1)':
dependencies:
'@opentelemetry/api': 1.9.1
'@opentelemetry/semantic-conventions': 1.40.0
@@ -11452,7 +11486,7 @@ snapshots:
'@sentry/react': 10.51.0(react@19.2.5)
'@sentry/vercel-edge': 10.51.0
'@sentry/webpack-plugin': 5.2.1(webpack@5.104.1)
next: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
next: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
rollup: 4.60.2
stacktrace-parser: 0.1.11
transitivePeerDependencies:
@@ -12283,14 +12317,14 @@ snapshots:
'@uploadthing/mime-types@0.3.6': {}
'@uploadthing/react@7.3.3(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4))':
'@uploadthing/react@7.3.3(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4))':
dependencies:
'@uploadthing/shared': 7.1.10
file-selector: 0.6.0
react: 19.2.5
uploadthing: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
uploadthing: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
optionalDependencies:
next: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
next: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@uploadthing/shared@7.1.10':
dependencies:
@@ -12732,25 +12766,25 @@ snapshots:
astring@1.9.0: {}
astro-expressive-code@0.41.7(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)):
astro-expressive-code@0.41.7(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)):
dependencies:
astro: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
rehype-expressive-code: 0.41.7
astro-mermaid@2.0.1(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))(mermaid@11.14.0):
astro-mermaid@2.0.1(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))(mermaid@11.14.0):
dependencies:
astro: 6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
astro: 6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)
import-meta-resolve: 4.2.0
mdast-util-to-string: 4.0.0
mermaid: 11.14.0
unist-util-visit: 5.0.0
astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3):
astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3):
dependencies:
'@astrojs/compiler': 4.0.0
'@astrojs/internal-helpers': 0.9.0
'@astrojs/markdown-remark': 7.1.1
'@astrojs/telemetry': 3.3.1
'@astrojs/internal-helpers': 0.9.1
'@astrojs/markdown-remark': 7.1.2
'@astrojs/telemetry': 3.3.2
'@capsizecss/unpack': 4.0.0
'@clack/prompts': 1.3.0
'@oslojs/encoding': 1.1.0
@@ -12764,14 +12798,16 @@ snapshots:
devalue: 5.8.0
diff: 8.0.4
dset: 3.1.4
es-module-lexer: 2.0.0
es-module-lexer: 2.1.0
esbuild: 0.27.7
flattie: 1.1.1
fontace: 0.4.1
get-tsconfig: 5.0.0-beta.4
github-slugger: 2.0.0
html-escaper: 3.0.3
http-cache-semantics: 4.2.0
js-yaml: 4.1.1
jsonc-parser: 3.3.1
magic-string: 0.30.21
magicast: 0.5.2
mrmime: 2.0.1
@@ -12789,8 +12825,7 @@ snapshots:
svgo: 4.0.1
tinyclip: 0.1.12
tinyexec: 1.1.2
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@6.0.3)
tinyglobby: 0.2.16
ultrahtml: 1.6.0
unifont: 0.7.4
unist-util-visit: 5.1.0
@@ -12834,7 +12869,6 @@ snapshots:
- supports-color
- terser
- tsx
- typescript
- uploadthing
- yaml
@@ -13528,8 +13562,6 @@ snapshots:
direction@2.0.1: {}
dlv@1.1.3: {}
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
@@ -13839,7 +13871,7 @@ snapshots:
eslint: 10.3.0(jiti@2.6.1)
eslint-import-resolver-node: 0.3.10
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-jsx-a11y: 6.10.2(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-react: 7.37.5(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-react-hooks: 7.1.1(eslint@10.3.0(jiti@2.6.1))
@@ -13872,7 +13904,7 @@ snapshots:
tinyglobby: 0.2.16
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.3.0(jiti@2.6.1))
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
@@ -13887,7 +13919,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.3.0(jiti@2.6.1)):
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1)))(eslint@10.3.0(jiti@2.6.1)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -14447,6 +14479,10 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
get-tsconfig@5.0.0-beta.4:
dependencies:
resolve-pkg-maps: 1.0.0
giget@2.0.0:
dependencies:
citty: 0.1.6
@@ -16049,9 +16085,9 @@ snapshots:
react: 19.2.5
react-dom: 19.2.5(react@19.2.5)
next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
dependencies:
'@next/env': 16.2.4
'@next/env': 16.2.6
'@swc/helpers': 0.5.15
baseline-browser-mapping: 2.10.25
caniuse-lite: 1.0.30001791
@@ -16060,14 +16096,14 @@ snapshots:
react-dom: 19.2.5(react@19.2.5)
styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.5)
optionalDependencies:
'@next/swc-darwin-arm64': 16.2.4
'@next/swc-darwin-x64': 16.2.4
'@next/swc-linux-arm64-gnu': 16.2.4
'@next/swc-linux-arm64-musl': 16.2.4
'@next/swc-linux-x64-gnu': 16.2.4
'@next/swc-linux-x64-musl': 16.2.4
'@next/swc-win32-arm64-msvc': 16.2.4
'@next/swc-win32-x64-msvc': 16.2.4
'@next/swc-darwin-arm64': 16.2.6
'@next/swc-darwin-x64': 16.2.6
'@next/swc-linux-arm64-gnu': 16.2.6
'@next/swc-linux-arm64-musl': 16.2.6
'@next/swc-linux-x64-gnu': 16.2.6
'@next/swc-linux-x64-musl': 16.2.6
'@next/swc-win32-arm64-msvc': 16.2.6
'@next/swc-win32-x64-msvc': 16.2.6
'@opentelemetry/api': 1.9.1
sharp: 0.34.5
transitivePeerDependencies:
@@ -16129,12 +16165,12 @@ snapshots:
dependencies:
boolbase: 1.0.0
nuqs@2.8.9(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5):
nuqs@2.8.9(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5):
dependencies:
'@standard-schema/spec': 1.0.0
react: 19.2.5
optionalDependencies:
next: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
next: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
nypm@0.6.6:
dependencies:
@@ -16540,13 +16576,13 @@ snapshots:
- magicast
optional: true
prisma@6.5.0(typescript@5.9.3):
prisma@6.5.0(typescript@6.0.3):
dependencies:
'@prisma/config': 6.5.0
'@prisma/engines': 6.5.0
optionalDependencies:
fsevents: 2.3.3
typescript: 5.9.3
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -17304,9 +17340,9 @@ snapshots:
standard-as-callback@2.1.0: {}
starlight-typedoc@0.21.5(@astrojs/starlight@0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@6.0.3)))(typedoc@0.28.19(typescript@6.0.3)):
starlight-typedoc@0.21.5(@astrojs/starlight@0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3)))(typedoc-plugin-markdown@4.11.0(typedoc@0.28.19(typescript@6.0.3)))(typedoc@0.28.19(typescript@6.0.3)):
dependencies:
'@astrojs/starlight': 0.38.4(astro@6.2.1(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(typescript@6.0.3)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
'@astrojs/starlight': 0.38.4(astro@6.3.3(@types/node@25.6.0)(ioredis@5.10.1)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.2)(terser@5.46.2)(tsx@4.21.0)(uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(tailwindcss@4.2.4))(yaml@2.8.3))
github-slugger: 2.0.0
typedoc: 0.28.19(typescript@6.0.3)
typedoc-plugin-markdown: 4.11.0(typedoc@0.28.19(typescript@6.0.3))
@@ -17607,10 +17643,6 @@ snapshots:
'@ts-morph/common': 0.27.0
code-block-writer: 13.0.3
tsconfck@3.1.6(typescript@6.0.3):
optionalDependencies:
typescript: 6.0.3
tsconfig-paths@3.15.0:
dependencies:
'@types/json5': 0.0.29
@@ -17927,7 +17959,7 @@ snapshots:
ufo: 1.6.4
optionalDependencies:
ioredis: 5.10.1
uploadthing: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
uploadthing: 7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4)
until-async@3.0.2: {}
@@ -17937,7 +17969,7 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4):
uploadthing@7.7.4(express@5.2.1)(h3@1.15.11)(next@16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(tailwindcss@4.2.4):
dependencies:
'@effect/platform': 0.90.3(effect@3.17.7)
'@standard-schema/spec': 1.0.0-beta.4
@@ -17947,7 +17979,7 @@ snapshots:
optionalDependencies:
express: 5.2.1
h3: 1.15.11
next: 16.2.4(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
next: 16.2.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
tailwindcss: 4.2.4
uri-js@4.4.1:
@@ -18033,7 +18065,7 @@ snapshots:
picomatch: 4.0.4
postcss: 8.5.13
rollup: 4.60.2
tinyglobby: 0.2.15
tinyglobby: 0.2.16
optionalDependencies:
'@types/node': 25.6.0
fsevents: 2.3.3