use turbo in dev mode (#321)

This commit is contained in:
KM Koushik
2025-12-14 20:29:53 +11:00
committed by GitHub
parent 11b5ac1bf7
commit bef580ff92
7 changed files with 89 additions and 238 deletions
+1 -1
View File
@@ -17,7 +17,7 @@
"@usesend/email-editor": "workspace:*",
"@usesend/ui": "workspace:*",
"iconoir-react": "^7.11.0",
"next": "15.3.7",
"next": "15.5.8",
"react": "19.1.0",
"react-dom": "19.1.0"
},
+2 -5
View File
@@ -7,11 +7,8 @@ await import("./src/env.js");
/** @type {import("next").NextConfig} */
const config = {
output: process.env.DOCKER_OUTPUT ? "standalone" : undefined,
experimental: {
instrumentationHook: true,
serverComponentsExternalPackages: ["bullmq"],
esmExternals: "loose",
},
serverExternalPackages: ["bullmq"],
transpilePackages: ["@usesend/ui", "@usesend/email-editor"],
images: {
remotePatterns: [
{
+4 -3
View File
@@ -4,7 +4,7 @@
"private": true,
"type": "module",
"scripts": {
"dev": "next dev -p 3000",
"dev": "next dev -p 3000 --turbopack",
"build": "next build",
"start": "next start",
"lint": "eslint . --max-warnings 0",
@@ -52,7 +52,7 @@
"lucide-react": "^0.503.0",
"mime-types": "^3.0.1",
"nanoid": "^5.1.5",
"next": "15.3.7",
"next": "15.5.8",
"next-auth": "^4.24.11",
"nodemailer": "^7.0.3",
"pino": "^9.7.0",
@@ -65,12 +65,13 @@
"react-hook-form": "^7.56.1",
"recharts": "^2.15.3",
"server-only": "^0.0.1",
"shiki": "^3.3.0",
"stripe": "^18.0.0",
"superjson": "^2.2.2",
"tldts": "^7.0.4",
"ua-parser-js": "^2.0.3",
"usesend-js": "workspace:*",
"use-debounce": "^10.0.4",
"usesend-js": "workspace:*",
"zod": "^3.24.3",
"zustand": "^5.0.8"
},
+5 -2
View File
@@ -1,12 +1,15 @@
import { type Config } from "tailwindcss";
import sharedConfig from "@usesend/tailwind-config/tailwind.config";
import path from "path";
import { fileURLToPath } from "url";
const here = path.dirname(fileURLToPath(import.meta.url));
export default {
...sharedConfig,
content: [
"./src/**/*.tsx",
`${path.join(require.resolve("@usesend/ui"), "..")}/**/*.{ts,tsx}`,
`${path.join(require.resolve("@usesend/email-editor"), "..")}/**/*.{ts,tsx}`,
path.join(here, "../../packages/ui/src/**/*.{ts,tsx}"),
path.join(here, "../../packages/email-editor/src/**/*.{ts,tsx}"),
],
} satisfies Config;
+5
View File
@@ -40,5 +40,10 @@
},
"dependencies": {
"turbo": "^2.5.2"
},
"pnpm": {
"overrides": {
"shiki": "3.3.0"
}
}
}
+20 -20
View File
@@ -29,10 +29,10 @@ function Calendar({
<DayPicker
showOutsideDays={showOutsideDays}
className={cn(
"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
"bg-background group/calendar p-3 [--cell-size:theme(spacing.8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
className
className,
)}
captionLayout={captionLayout}
formatters={{
@@ -44,82 +44,82 @@ function Calendar({
root: cn("w-fit", defaultClassNames.root),
months: cn(
"flex gap-4 flex-col md:flex-row relative",
defaultClassNames.months
defaultClassNames.months,
),
month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
nav: cn(
"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
defaultClassNames.nav
defaultClassNames.nav,
),
button_previous: cn(
buttonVariants({ variant: buttonVariant }),
"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
defaultClassNames.button_previous
defaultClassNames.button_previous,
),
button_next: cn(
buttonVariants({ variant: buttonVariant }),
"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
defaultClassNames.button_next
defaultClassNames.button_next,
),
month_caption: cn(
"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
defaultClassNames.month_caption
defaultClassNames.month_caption,
),
dropdowns: cn(
"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
defaultClassNames.dropdowns
defaultClassNames.dropdowns,
),
dropdown_root: cn(
"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
defaultClassNames.dropdown_root
defaultClassNames.dropdown_root,
),
dropdown: cn(
"absolute bg-popover inset-0 opacity-0",
defaultClassNames.dropdown
defaultClassNames.dropdown,
),
caption_label: cn(
"select-none font-medium",
captionLayout === "label"
? "text-sm"
: "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
defaultClassNames.caption_label
defaultClassNames.caption_label,
),
table: "w-full border-collapse",
weekdays: cn("flex", defaultClassNames.weekdays),
weekday: cn(
"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
defaultClassNames.weekday
defaultClassNames.weekday,
),
week: cn("flex w-full mt-2", defaultClassNames.week),
week_number_header: cn(
"select-none w-(--cell-size)",
defaultClassNames.week_number_header
defaultClassNames.week_number_header,
),
week_number: cn(
"text-[0.8rem] select-none text-muted-foreground",
defaultClassNames.week_number
defaultClassNames.week_number,
),
day: cn(
"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
defaultClassNames.day
defaultClassNames.day,
),
range_start: cn(
"rounded-l-md bg-accent",
defaultClassNames.range_start
defaultClassNames.range_start,
),
range_middle: cn("rounded-none", defaultClassNames.range_middle),
range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
today: cn(
"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
defaultClassNames.today
defaultClassNames.today,
),
outside: cn(
"text-muted-foreground aria-selected:text-muted-foreground",
defaultClassNames.outside
defaultClassNames.outside,
),
disabled: cn(
"text-muted-foreground opacity-50",
defaultClassNames.disabled
defaultClassNames.disabled,
),
hidden: cn("invisible", defaultClassNames.hidden),
...classNames,
@@ -203,7 +203,7 @@ function CalendarDayButton({
className={cn(
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
defaultClassNames.day,
className
className,
)}
{...props}
/>
+52 -207
View File
@@ -4,6 +4,9 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
overrides:
shiki: 3.3.0
importers:
.:
@@ -52,8 +55,8 @@ importers:
specifier: ^7.11.0
version: 7.11.0(react@19.1.0)
next:
specifier: 15.3.7
version: 15.3.7(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
specifier: 15.5.8
version: 15.5.8(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
react:
specifier: 19.1.0
version: 19.1.0
@@ -193,7 +196,7 @@ importers:
version: 11.1.1(@trpc/server@11.1.1)(typescript@5.8.3)
'@trpc/next':
specifier: ^11.1.1
version: 11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/react-query@11.1.1)(@trpc/server@11.1.1)(next@15.3.7)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3)
version: 11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/react-query@11.1.1)(@trpc/server@11.1.1)(next@15.5.8)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3)
'@trpc/react-query':
specifier: ^11.1.1
version: 11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/server@11.1.1)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3)
@@ -243,11 +246,11 @@ importers:
specifier: ^5.1.5
version: 5.1.5
next:
specifier: 15.3.7
version: 15.3.7(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
specifier: 15.5.8
version: 15.5.8(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
next-auth:
specifier: ^4.24.11
version: 4.24.11(next@15.3.7)(nodemailer@7.0.3)(react-dom@19.1.0)(react@19.1.0)
version: 4.24.11(next@15.5.8)(nodemailer@7.0.3)(react-dom@19.1.0)(react@19.1.0)
nodemailer:
specifier: ^7.0.3
version: 7.0.3
@@ -281,6 +284,9 @@ importers:
server-only:
specifier: ^0.0.1
version: 0.0.1
shiki:
specifier: 3.3.0
version: 3.3.0
stripe:
specifier: ^18.0.0
version: 18.0.0
@@ -436,7 +442,7 @@ importers:
specifier: ^5.6.1
version: 5.6.1(react-dom@19.1.0)(react@19.1.0)
shiki:
specifier: ^3.3.0
specifier: 3.3.0
version: 3.3.0
tippy.js:
specifier: ^6.3.7
@@ -651,7 +657,7 @@ importers:
specifier: ^2.15.3
version: 2.15.3(react-dom@19.1.0)(react@19.1.0)
shiki:
specifier: ^3.3.0
specifier: 3.3.0
version: 3.3.0
sonner:
specifier: ^2.0.3
@@ -3973,7 +3979,7 @@ packages:
remark-gfm: 4.0.1
remark-math: 6.0.0
remark-smartypants: 3.0.2
shiki: 3.13.0
shiki: 3.3.0
unified: 11.0.5
unist-util-visit: 5.0.0
transitivePeerDependencies:
@@ -4198,8 +4204,8 @@ packages:
dev: true
optional: true
/@next/env@15.3.7:
resolution: {integrity: sha512-1fzTVgpRoCwd0zo0/Xs5dt0vM4Ir7/uoeC3FjmuluNALQlllIPQ1zCOL6GMV8QTwK92e9htZTwqaRedzudD7Bg==}
/@next/env@15.5.8:
resolution: {integrity: sha512-ejZHa3ogTxcy851dFoNtfB5B2h7AbSAtHbR5CymUlnz4yW1QjHNufVpvTu8PTnWBKFKjrd4k6Gbi2SsCiJKvxw==}
dev: false
/@next/eslint-plugin-next@15.3.1:
@@ -4224,8 +4230,8 @@ packages:
source-map: 0.7.4
dev: false
/@next/swc-darwin-arm64@15.3.5:
resolution: {integrity: sha512-lM/8tilIsqBq+2nq9kbTW19vfwFve0NR7MxfkuSUbRSgXlMQoJYg+31+++XwKVSXk4uT23G2eF/7BRIKdn8t8w==}
/@next/swc-darwin-arm64@15.5.7:
resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@@ -4233,8 +4239,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64@15.3.5:
resolution: {integrity: sha512-WhwegPQJ5IfoUNZUVsI9TRAlKpjGVK0tpJTL6KeiC4cux9774NYE9Wu/iCfIkL/5J8rPAkqZpG7n+EfiAfidXA==}
/@next/swc-darwin-x64@15.5.7:
resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -4242,8 +4248,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-gnu@15.3.5:
resolution: {integrity: sha512-LVD6uMOZ7XePg3KWYdGuzuvVboxujGjbcuP2jsPAN3MnLdLoZUXKRc6ixxfs03RH7qBdEHCZjyLP/jBdCJVRJQ==}
/@next/swc-linux-arm64-gnu@15.5.7:
resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -4251,8 +4257,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl@15.3.5:
resolution: {integrity: sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==}
/@next/swc-linux-arm64-musl@15.5.7:
resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -4260,8 +4266,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu@15.3.5:
resolution: {integrity: sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==}
/@next/swc-linux-x64-gnu@15.5.7:
resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -4269,8 +4275,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl@15.3.5:
resolution: {integrity: sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==}
/@next/swc-linux-x64-musl@15.5.7:
resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -4278,8 +4284,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc@15.3.5:
resolution: {integrity: sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==}
/@next/swc-win32-arm64-msvc@15.5.7:
resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -4287,8 +4293,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc@15.3.5:
resolution: {integrity: sha512-5fhH6fccXxnX2KhllnGhkYMndhOiLOLEiVGYjP2nizqeGWkN10sA9taATlXwake2E2XMvYZjjz0Uj7T0y+z1yw==}
/@next/swc-win32-x64-msvc@15.5.7:
resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -6509,17 +6515,6 @@ packages:
selderee: 0.11.0
dev: false
/@shikijs/core@1.29.2:
resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==}
dependencies:
'@shikijs/engine-javascript': 1.29.2
'@shikijs/engine-oniguruma': 1.29.2
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
dev: false
/@shikijs/core@3.13.0:
resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==}
dependencies:
@@ -6536,88 +6531,29 @@ packages:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
dev: false
/@shikijs/engine-javascript@1.29.2:
resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==}
dependencies:
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 2.3.0
dev: false
/@shikijs/engine-javascript@3.13.0:
resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==}
dependencies:
'@shikijs/types': 3.13.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.3
dev: true
/@shikijs/engine-javascript@3.3.0:
resolution: {integrity: sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q==}
dependencies:
'@shikijs/types': 3.3.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.1
dev: false
/@shikijs/engine-oniguruma@1.29.2:
resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==}
dependencies:
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
dev: false
/@shikijs/engine-oniguruma@3.13.0:
resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==}
dependencies:
'@shikijs/types': 3.13.0
'@shikijs/vscode-textmate': 10.0.2
dev: true
oniguruma-to-es: 4.3.3
/@shikijs/engine-oniguruma@3.3.0:
resolution: {integrity: sha512-l0vIw+GxeNU7uGnsu6B+Crpeqf+WTQ2Va71cHb5ZYWEVEPdfYwY5kXwYqRJwHrxz9WH+pjSpXQz+TJgAsrkA5A==}
dependencies:
'@shikijs/types': 3.3.0
'@shikijs/vscode-textmate': 10.0.2
dev: false
/@shikijs/langs@1.29.2:
resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==}
dependencies:
'@shikijs/types': 1.29.2
dev: false
/@shikijs/langs@3.13.0:
resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==}
dependencies:
'@shikijs/types': 3.13.0
dev: true
/@shikijs/langs@3.3.0:
resolution: {integrity: sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g==}
dependencies:
'@shikijs/types': 3.3.0
dev: false
/@shikijs/themes@1.29.2:
resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==}
dependencies:
'@shikijs/types': 1.29.2
dev: false
/@shikijs/themes@3.13.0:
resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==}
dependencies:
'@shikijs/types': 3.13.0
dev: true
/@shikijs/themes@3.3.0:
resolution: {integrity: sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg==}
dependencies:
'@shikijs/types': 3.3.0
dev: false
/@shikijs/transformers@3.13.0:
resolution: {integrity: sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA==}
@@ -6639,13 +6575,6 @@ packages:
- supports-color
dev: true
/@shikijs/types@1.29.2:
resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==}
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
dev: false
/@shikijs/types@3.13.0:
resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==}
dependencies:
@@ -6658,7 +6587,6 @@ packages:
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
dev: false
/@shikijs/vscode-textmate@10.0.2:
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -7689,10 +7617,6 @@ packages:
tslib: 2.8.1
dev: true
/@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
dev: false
/@swc/helpers@0.5.15:
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
dependencies:
@@ -8117,7 +8041,7 @@ packages:
typescript: 5.8.3
dev: false
/@trpc/next@11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/react-query@11.1.1)(@trpc/server@11.1.1)(next@15.3.7)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3):
/@trpc/next@11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/react-query@11.1.1)(@trpc/server@11.1.1)(next@15.5.8)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3):
resolution: {integrity: sha512-4uz4S+QtpVGPENm4Kp7HSvMW+nXocBvI+A+dkwVvM3R9MIU3lIQ35H1fQ1aN/O+PlR4LOs5FceCwC1LjWkScZQ==}
peerDependencies:
'@tanstack/react-query': ^5.59.15
@@ -8138,7 +8062,7 @@ packages:
'@trpc/client': 11.1.1(@trpc/server@11.1.1)(typescript@5.8.3)
'@trpc/react-query': 11.1.1(@tanstack/react-query@5.74.4)(@trpc/client@11.1.1)(@trpc/server@11.1.1)(react-dom@19.1.0)(react@19.1.0)(typescript@5.8.3)
'@trpc/server': 11.1.1(typescript@5.8.3)
next: 15.3.7(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
next: 15.5.8(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
typescript: 5.8.3
@@ -9674,13 +9598,6 @@ packages:
load-tsconfig: 0.2.5
dev: true
/busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
dependencies:
streamsearch: 1.1.0
dev: false
/bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
@@ -10641,10 +10558,6 @@ packages:
react: 19.1.0
dev: false
/emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
dev: false
/emoji-regex@10.5.0:
resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==}
dev: true
@@ -13340,7 +13253,7 @@ packages:
react-router-dom: 7.0.1(react-dom@19.1.0)(react@19.1.0)
rehype: 13.0.2
rehype-stringify: 10.0.1
shiki: 1.29.2
shiki: 3.3.0
source-map-support: 0.5.21
std-env: 3.9.0
tailwindcss: 3.4.15
@@ -14470,7 +14383,7 @@ packages:
engines: {node: '>= 0.4.0'}
dev: true
/next-auth@4.24.11(next@15.3.7)(nodemailer@7.0.3)(react-dom@19.1.0)(react@19.1.0):
/next-auth@4.24.11(next@15.5.8)(nodemailer@7.0.3)(react-dom@19.1.0)(react@19.1.0):
resolution: {integrity: sha512-pCFXzIDQX7xmHFs4KVH4luCjaCbuPRtZ9oBUjUhOk84mZ9WVPf94n87TxYI4rSRf9HmfHEF8Yep3JrYDVOo3Cw==}
peerDependencies:
'@auth/core': 0.34.2
@@ -14488,7 +14401,7 @@ packages:
'@panva/hkdf': 1.2.1
cookie: 0.7.2
jose: 4.15.9
next: 15.3.7(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
next: 15.5.8(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0)
nodemailer: 7.0.3
oauth: 0.9.15
openid-client: 5.7.1
@@ -14531,13 +14444,14 @@ packages:
react-dom: 19.1.0(react@19.1.0)
dev: false
/next@15.3.7(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0):
resolution: {integrity: sha512-7dzkjUftt7PAtspscMY+n7dx6Gg+/si89AwwwEMiupSd5bozpQNEbkYczzcIVaYloohZUTsGImq96FGrh0rFUw==}
/next@15.5.8(@babel/core@7.26.10)(react-dom@19.1.0)(react@19.1.0):
resolution: {integrity: sha512-Tma2R50eiM7Fx6fbDeHiThq7sPgl06mBr76j6Ga0lMFGrmaLitFsy31kykgb8Z++DR2uIEKi2RZ0iyjIwFd15Q==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details.
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
'@playwright/test': ^1.41.2
'@playwright/test': ^1.51.1
babel-plugin-react-compiler: '*'
react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
@@ -14552,24 +14466,22 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 15.3.7
'@swc/counter': 0.1.3
'@next/env': 15.5.8
'@swc/helpers': 0.5.15
busboy: 1.6.0
caniuse-lite: 1.0.30001715
postcss: 8.4.31
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
styled-jsx: 5.1.6(@babel/core@7.26.10)(react@19.1.0)
optionalDependencies:
'@next/swc-darwin-arm64': 15.3.5
'@next/swc-darwin-x64': 15.3.5
'@next/swc-linux-arm64-gnu': 15.3.5
'@next/swc-linux-arm64-musl': 15.3.5
'@next/swc-linux-x64-gnu': 15.3.5
'@next/swc-linux-x64-musl': 15.3.5
'@next/swc-win32-arm64-msvc': 15.3.5
'@next/swc-win32-x64-msvc': 15.3.5
'@next/swc-darwin-arm64': 15.5.7
'@next/swc-darwin-x64': 15.5.7
'@next/swc-linux-arm64-gnu': 15.5.7
'@next/swc-linux-arm64-musl': 15.5.7
'@next/swc-linux-x64-gnu': 15.5.7
'@next/swc-linux-x64-musl': 15.5.7
'@next/swc-win32-arm64-msvc': 15.5.7
'@next/swc-win32-x64-msvc': 15.5.7
sharp: 0.34.4
transitivePeerDependencies:
- '@babel/core'
@@ -14804,29 +14716,8 @@ packages:
mimic-fn: 2.1.0
dev: true
/oniguruma-parser@0.12.0:
resolution: {integrity: sha512-fD9o5ebCmEAA9dLysajdQvuKzLL7cj+w7DQjuO3Cb6IwafENfx6iL+RGkmyW82pVRsvgzixsWinHvgxTMJvdIA==}
dev: false
/oniguruma-parser@0.12.1:
resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
dev: true
/oniguruma-to-es@2.3.0:
resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==}
dependencies:
emoji-regex-xs: 1.0.0
regex: 5.1.1
regex-recursion: 5.1.1
dev: false
/oniguruma-to-es@4.3.1:
resolution: {integrity: sha512-VtX1kepWO+7HG7IWV5v72JhiqofK7XsiHmtgnvurnNOTdIvE5mrdWYtsOrQyrXCv1L2Ckm08hywp+MFO7rC4Ug==}
dependencies:
oniguruma-parser: 0.12.0
regex: 6.0.1
regex-recursion: 6.0.2
dev: false
/oniguruma-to-es@4.3.3:
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
@@ -14834,7 +14725,6 @@ packages:
oniguruma-parser: 0.12.1
regex: 6.0.1
regex-recursion: 6.0.2
dev: true
/open@8.4.2:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
@@ -16255,13 +16145,6 @@ packages:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
dev: false
/regex-recursion@5.1.1:
resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==}
dependencies:
regex: 5.1.1
regex-utilities: 2.3.0
dev: false
/regex-recursion@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
dependencies:
@@ -16270,12 +16153,6 @@ packages:
/regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
/regex@5.1.1:
resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==}
dependencies:
regex-utilities: 2.3.0
dev: false
/regex@6.0.1:
resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==}
dependencies:
@@ -17025,32 +16902,6 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
/shiki@1.29.2:
resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==}
dependencies:
'@shikijs/core': 1.29.2
'@shikijs/engine-javascript': 1.29.2
'@shikijs/engine-oniguruma': 1.29.2
'@shikijs/langs': 1.29.2
'@shikijs/themes': 1.29.2
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
dev: false
/shiki@3.13.0:
resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==}
dependencies:
'@shikijs/core': 3.13.0
'@shikijs/engine-javascript': 3.13.0
'@shikijs/engine-oniguruma': 3.13.0
'@shikijs/langs': 3.13.0
'@shikijs/themes': 3.13.0
'@shikijs/types': 3.13.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
dev: true
/shiki@3.3.0:
resolution: {integrity: sha512-j0Z1tG5vlOFGW8JVj0Cpuatzvshes7VJy5ncDmmMaYcmnGW0Js1N81TOW98ivTFNZfKRn9uwEg/aIm638o368g==}
dependencies:
@@ -17062,7 +16913,6 @@ packages:
'@shikijs/types': 3.3.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
dev: false
/side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -17347,11 +17197,6 @@ packages:
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
dev: false
/streamsearch@1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
dev: false
/streamx@2.22.0:
resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==}
dependencies: