docs: imporvements

This commit is contained in:
Bereket Engida
2024-09-25 16:31:55 +03:00
parent 9281fb476b
commit 0f97f1cc4c
13 changed files with 389 additions and 421 deletions

View File

@@ -5,16 +5,16 @@ export function Features() {
return ( return (
<div className="py-2"> <div className="py-2">
<div className="mt-2 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-10 md:gap-2 max-w-7xl mx-auto"> <div className="mt-2 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-10 md:gap-2 max-w-7xl mx-auto">
{grid.map((feature) => ( {grid.map((feature, i) => (
<div <div
key={feature.title} key={feature.title}
className="relative bg-gradient-to-b dark:from-neutral-900 from-neutral-100 dark:to-neutral-950 to-white p-6 overflow-hidden" className="relative bg-gradient-to-b dark:from-neutral-900 from-neutral-100 dark:to-neutral-950 to-white px-6 py-2 overflow-hidden"
> >
<Grid size={20} /> <Grid size={i * 5 + 10} />
<p className="text-base font-bold text-neutral-800 dark:text-white relative z-20"> <p className="text-base font-bold text-neutral-800 dark:text-white relative z-20">
{feature.title} {feature.title}
</p> </p>
<p className="text-neutral-600 dark:text-neutral-400 mt-4 text-base font-normal relative z-20"> <p className="text-neutral-600 dark:text-neutral-400 text-base font-normal relative z-20">
{feature.description} {feature.description}
</p> </p>
</div> </div>
@@ -27,33 +27,40 @@ export function Features() {
const grid = [ const grid = [
{ {
title: "Framework Agnostic", title: "Framework Agnostic",
description: "Support for most popular frameworks",
},
{
title: "Email & Password",
description: description:
"Supports your favorite frontend, backend and meta frameworks, including React, Vue, Svelte, Solid, Next.js, Nuxt.js, Hono, and more.", "Built-in support for secure email and password authentication",
},
{
title: "Account & Session Management",
description: "Manage user accounts and sessions with ease",
},
{
title: "Built In Rate Limiter",
description: "Built in rate limiter with custom rules",
}, },
{ {
title: "Automatic Database Management", title: "Automatic Database Management",
description: description: "Automatic database management and migrations",
"better auth will automatically manage required tables for authentication, just configure the database and better auth will do the rest.",
},
{
title: "Email & Password Authentication",
description:
"Builtin support for email and password authentication, with secure password hashing and account management features.",
}, },
{ {
title: "Social Sign-on", title: "Social Sign-on",
description: description: "multiple social sign-on providers",
"Allow users to sign in with their accounts, including Github, Google, Discord, Twitter, and more.",
}, },
{ {
title: "Organization & Access Control", title: "Organization & Access Control",
description: description: "Manage organizations and access control",
"Manage users and their access to resources within your application.", },
{
title: "Two Factor Authentication",
description: "Secure your users with two factor authentication",
}, },
{ {
title: "Plugin Ecosystem", title: "Plugin Ecosystem",
description: description: "Even more capabilities with plugins",
"Enhance your application with our official plugins and those created by the community.",
}, },
]; ];

View File

@@ -7,13 +7,6 @@ import {
TooltipTrigger, TooltipTrigger,
} from "@/components/ui/tooltip"; } from "@/components/ui/tooltip";
type TechStackIconType = {
[key: string]: {
name: string;
icon: any;
};
};
export const TechStackDisplay = ({ export const TechStackDisplay = ({
skills, skills,
className, className,
@@ -22,10 +15,15 @@ export const TechStackDisplay = ({
className?: string; className?: string;
}) => { }) => {
return ( return (
<div className={cn("flex gap-7 flex-wrap mt-3 justify-center items-center max-w-4xl", className)}> <div
className={cn(
"flex gap-7 flex-wrap mt-3 justify-center items-center max-w-4xl",
className
)}
>
{skills.map((icon) => { {skills.map((icon) => {
return ( return (
<TooltipProvider key={icon} > <TooltipProvider key={icon}>
<Tooltip> <Tooltip>
<TooltipTrigger asChild> <TooltipTrigger asChild>
<span className="transform duration-300 hover:rotate-12 transition-transform"> <span className="transform duration-300 hover:rotate-12 transition-transform">

View File

@@ -41,9 +41,9 @@ export default function Features() {
</div> </div>
<p className="text-left text-sm mt-2 text-muted-foreground"> <p className="text-left text-sm mt-2 text-muted-foreground">
Supports your favorite frontend, backend and meta frameworks, Supports your favorite frontend, backend and meta frameworks,
including React, Vue, Svelte, Solid, Next.js, Nuxt.js, Hono, and including React, Vue, Svelte, Astro, Solid, Next.js, Nuxt.js,
more{" "} Hono, and more{" "}
<a className="text-gray-50" href=".docs" target="_blank"> <a className="text-gray-50" href="/docs" target="_blank">
Learn more Learn more
</a> </a>
</p> </p>
@@ -188,6 +188,7 @@ export default function Features() {
"nextJs", "nextJs",
"nuxt", "nuxt",
"svelteKit", "svelteKit",
"astro",
"solidStart", "solidStart",
"react", "react",
"hono", "hono",

View File

@@ -8,7 +8,7 @@ interface RippleProps {
export const Ripple = React.memo(function Ripple({ export const Ripple = React.memo(function Ripple({
mainCircleSize = 180, mainCircleSize = 180,
mainCircleOpacity = 0.20, mainCircleOpacity = 0.2,
numCircles = 10, numCircles = 10,
}: RippleProps) { }: RippleProps) {
return ( return (

View File

@@ -60,36 +60,54 @@ export default function ArticleLayout() {
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="docs" className="h-12"> <SelectItem value="docs" className="h-12">
<div className="flex items-center gap-2"> <div className="flex items-center gap-1">
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="1.3em" width="1.4em"
height="1.3em" height="1.4em"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
<path <path
fill="currentColor" fill="currentColor"
d="M7 16h2V4H7zm-1 6q-1.25 0-2.125-.875T3 19V5q0-1.25.875-2.125T6 2h11v16H6q-.425 0-.712.288T5 19t.288.713T6 20h13V4h2v18z" d="M4.727 2.733c.306-.308.734-.508 1.544-.618C7.105 2.002 8.209 2 9.793 2h4.414c1.584 0 2.688.002 3.522.115c.81.11 1.238.31 1.544.618c.305.308.504.74.613 1.557c.112.84.114 1.955.114 3.552V18H7.426c-1.084 0-1.462.006-1.753.068c-.513.11-.96.347-1.285.667c-.11.108-.164.161-.291.505A1.3 1.3 0 0 0 4 19.7V7.842c0-1.597.002-2.711.114-3.552c.109-.816.308-1.249.613-1.557"
opacity=".5"
></path>
<path
fill="currentColor"
d="M20 18H7.426c-1.084 0-1.462.006-1.753.068c-.513.11-.96.347-1.285.667c-.11.108-.164.161-.291.505s-.107.489-.066.78l.022.15c.11.653.31.998.616 1.244c.307.246.737.407 1.55.494c.837.09 1.946.092 3.536.092h4.43c1.59 0 2.7-.001 3.536-.092c.813-.087 1.243-.248 1.55-.494c.2-.16.354-.362.467-.664H8a.75.75 0 0 1 0-1.5h11.975c.018-.363.023-.776.025-1.25M7.25 7A.75.75 0 0 1 8 6.25h8a.75.75 0 0 1 0 1.5H8A.75.75 0 0 1 7.25 7M8 9.75a.75.75 0 0 0 0 1.5h5a.75.75 0 0 0 0-1.5z"
></path> ></path>
</svg> </svg>
Docs Docs
</div> </div>
<p className="text-xs">getting started, concepts, and plugins</p> <p className="text-xs text-muted-foreground">
getting started, concepts, and plugins
</p>
</SelectItem> </SelectItem>
<SelectItem value="examples"> <SelectItem value="examples">
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
width="1em" width="1.4em"
height="1em" height="1.4em"
className="mx-1" viewBox="0 0 24 24"
viewBox="0 0 14 14"
> >
<path <path
fill="currentColor" fill="currentColor"
fillRule="evenodd" d="M12 2c4.714 0 7.071 0 8.535 1.464c1.08 1.08 1.364 2.647 1.439 5.286L22 9.5H2.026v-.75c.075-2.64.358-4.205 1.438-5.286C4.93 2 7.286 2 12 2"
d="M1.5 0h3.375v14H1.5A1.5 1.5 0 0 1 0 12.5v-11A1.5 1.5 0 0 1 1.5 0m4.625 7.625V14H12.5a1.5 1.5 0 0 0 1.5-1.5V7.625zM14 6.375H6.125V0H12.5A1.5 1.5 0 0 1 14 1.5z" opacity=".5"
clipRule="evenodd" ></path>
<path
fill="currentColor"
d="M13 6a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-3 0a1 1 0 1 1-2 0a1 1 0 0 1 2 0M7 6a1 1 0 1 1-2 0a1 1 0 0 1 2 0"
></path>
<path
fill="currentColor"
d="M2 12c0 4.714 0 7.071 1.464 8.535c1.01 1.01 2.446 1.324 4.786 1.421L9 22V9.5H2.026l-.023.75Q2 11.066 2 12"
opacity=".7"
></path>
<path
fill="currentColor"
d="M22 12c0 4.714 0 7.071-1.465 8.535C19.072 22 16.714 22 12 22c-.819 0-2.316 0-3-.008V9.5h13l-.003.75Q22 11.066 22 12"
></path> ></path>
</svg> </svg>
Examples Examples

View File

@@ -1,11 +1,10 @@
import { Icons } from "./icons";
import {Icons} from './icons'
type TechStackIconType = { type TechStackIconType = {
[key: string]: { [key: string]: {
name: string; name: string;
icon: any; icon: any;
}; };
}; };
export const techStackIcons: TechStackIconType = { export const techStackIcons: TechStackIconType = {
nextJs: { nextJs: {
name: "Nextjs", name: "Nextjs",
@@ -31,6 +30,8 @@ export const techStackIcons: TechStackIconType = {
name: "Hono", name: "Hono",
icon: <Icons.hono className="w-10 h-10" />, icon: <Icons.hono className="w-10 h-10" />,
}, },
astro: {
name: "Astro",
}; icon: <Icons.astro className="w-10 h-10" />,
},
};

View File

@@ -150,7 +150,7 @@ Create a new file or route in your framework's designated catch-all route handle
Better auth supports any backend framework with standard Request and Response objects and offers helper functions for popular frameworks. Better auth supports any backend framework with standard Request and Response objects and offers helper functions for popular frameworks.
</Callout> </Callout>
<Tabs items={["next-js", "nuxt", "svelte-kit", "astro", "solid-start", "hono", "express"]} defaultValue="react"> <Tabs items={["next-js", "nuxt", "svelte-kit", "solid-start", "hono", "express"]} defaultValue="react">
<Tab value="next-js"> <Tab value="next-js">
```ts title="/app/api/[...auth]/route.ts" ```ts title="/app/api/[...auth]/route.ts"
import { auth } from "@/lib/auth"; // path to your auth file import { auth } from "@/lib/auth"; // path to your auth file
@@ -222,17 +222,16 @@ Better auth supports any backend framework with standard Request and Response ob
<Tab value="astro"> <Tab value="astro">
```ts title="/pages/api/auth/[...all].ts" ```ts title="/pages/api/auth/[...all].ts"
import type { APIRoute } from "astro"; import type { APIRoute } from "astro";
import { auth } from "../../../auth"; import { auth } from "@/auth"; // path to your auth file
export const GET: APIRoute = async (ctx) => { export const GET: APIRoute = async (ctx) => {
return auth.handler(ctx.request); return auth.handler(ctx.request);
}; };
export const ALL: APIRoute = async (ctx) => { export const POST: APIRoute = async (ctx) => {
return auth.handler(ctx.request); return auth.handler(ctx.request);
}; };
``` ```
This also works for any other node server framework like express, fastify, hapi, etc.
</Tab> </Tab>
</Tabs> </Tabs>
</Step> </Step>

View File

@@ -4,7 +4,8 @@
"private": true, "private": true,
"version": "0.0.1", "version": "0.0.1",
"scripts": { "scripts": {
"dev": "astro dev --port 3000", "dev": "pnpm migrate:auth && astro dev --port 3000",
"migrate:auth": "pnpm better-auth migrate",
"start": "astro dev", "start": "astro dev",
"build": "astro check && astro build", "build": "astro check && astro build",
"preview": "astro preview", "preview": "astro preview",

View File

@@ -29,12 +29,13 @@ export const auth = betterAuth({
twoFactor({ twoFactor({
otpOptions: { otpOptions: {
async sendOTP(user, otp) { async sendOTP(user, otp) {
await resend.emails.send({ console.log(`Sending OTP to ${user.email}: ${otp}`);
from: "Acme <no-reply@demo.better-auth.com>", // await resend.emails.send({
to: user.email, // from: "Acme <no-reply@demo.better-auth.com>",
subject: "Your OTP", // to: user.email,
html: `Your OTP is ${otp}`, // subject: "Your OTP",
}); // html: `Your OTP is ${otp}`,
// });
}, },
}, },
}), }),

View File

@@ -95,13 +95,15 @@ export function TwoFactorEmail() {
createEffect(() => { createEffect(() => {
if (otp().length === 6) { if (otp().length === 6) {
twoFactorActions.verifyTotp({ twoFactorActions.verifyOtp({
code: otp(), code: otp(),
callbackURL: "/dashboard",
fetchOptions: { fetchOptions: {
onError(context) { onError(context) {
alert(context.error.message); alert(context.error.message);
}, },
onSuccess(context) {
window.location.href = "/dashboard";
},
}, },
}); });
} }

View File

@@ -135,6 +135,7 @@ export function UserCard(props: {
class="gap-2" class="gap-2"
onClick={async () => { onClick={async () => {
await signOut(); await signOut();
window.location.reload();
}} }}
> >
<svg <svg

View File

@@ -1,15 +1,17 @@
import { APIError } from "better-call"; import { APIError } from "better-call";
import { generateRandomInteger } from "oslo/crypto"; import { generateRandomInteger } from "oslo/crypto";
import { generateHOTP } from "oslo/otp"; import { generateHOTP, TOTPController } from "oslo/otp";
import { z } from "zod"; import { z } from "zod";
import { createAuthEndpoint } from "../../../api/call"; import { createAuthEndpoint } from "../../../api/call";
import { OTP_RANDOM_NUMBER_COOKIE_NAME } from "../constant"; import { OTP_RANDOM_NUMBER_COOKIE_NAME } from "../constant";
import { verifyTwoFactorMiddleware } from "../verify-middleware"; import { verifyTwoFactorMiddleware } from "../verify-middleware";
import type { TwoFactorProvider, UserWithTwoFactor } from "../types"; import type { TwoFactorProvider, UserWithTwoFactor } from "../types";
import { TimeSpan } from "oslo";
export interface OTPOptions { export interface OTPOptions {
/** /**
* How long the opt will be valid for * How long the opt will be valid for in
* minutes
* *
* @default "5 mins" * @default "5 mins"
*/ */
@@ -28,6 +30,13 @@ export interface OTPOptions {
* The otp adapter is created from the totp adapter. * The otp adapter is created from the totp adapter.
*/ */
export const otp2fa = (options?: OTPOptions) => { export const otp2fa = (options?: OTPOptions) => {
const opts = {
period: new TimeSpan(options?.period || 5, "m"),
};
const totp = new TOTPController({
digits: 6,
period: opts.period,
});
/** /**
* Generate OTP and send it to the user. * Generate OTP and send it to the user.
*/ */
@@ -46,24 +55,9 @@ export const otp2fa = (options?: OTPOptions) => {
message: "otp isn't configured", message: "otp isn't configured",
}); });
} }
const randomNumber = generateRandomInteger(100000); const user = ctx.context.session.user as UserWithTwoFactor;
const otp = await generateHOTP( const code = await totp.generate(Buffer.from(user.twoFactorSecret));
Buffer.from(ctx.context.secret), await options.sendOTP(user, code);
randomNumber,
);
await options.sendOTP(ctx.context.session.user as UserWithTwoFactor, otp);
const cookie = ctx.context.createAuthCookie(
OTP_RANDOM_NUMBER_COOKIE_NAME,
{
maxAge: options.period,
},
);
await ctx.setSignedCookie(
cookie.name,
randomNumber.toString(),
ctx.context.secret,
cookie.options,
);
return ctx.json({ status: true, OTP: undefined }); return ctx.json({ status: true, OTP: undefined });
}, },
); );
@@ -84,30 +78,8 @@ export const otp2fa = (options?: OTPOptions) => {
message: "two factor isn't enabled", message: "two factor isn't enabled",
}); });
} }
const cookie = ctx.context.createAuthCookie( const toCheckOtp = await totp.generate(Buffer.from(user.twoFactorSecret));
OTP_RANDOM_NUMBER_COOKIE_NAME,
);
const randomNumber = await ctx.getSignedCookie(
cookie.name,
ctx.context.secret,
);
if (!randomNumber) {
throw new APIError("UNAUTHORIZED", {
message: "OTP is expired",
});
}
const toCheckOtp = await generateHOTP(
Buffer.from(ctx.context.secret),
parseInt(randomNumber),
);
if (toCheckOtp === ctx.body.code) { if (toCheckOtp === ctx.body.code) {
ctx.setCookie(cookie.name, "", {
path: "/",
sameSite: "lax",
httpOnly: true,
secure: false,
maxAge: 0,
});
return ctx.context.valid(); return ctx.context.valid();
} else { } else {
return ctx.context.invalid(); return ctx.context.invalid();

353
pnpm-lock.yaml generated
View File

@@ -397,7 +397,7 @@ importers:
version: link:../../packages/better-auth version: link:../../packages/better-auth
nuxt: nuxt:
specifier: ^3.13.0 specifier: ^3.13.0
version: 3.13.2(@biomejs/biome@1.7.3)(@types/node@20.16.5)(typescript@5.6.1-rc)(vite@5.4.7) version: 3.13.2(@biomejs/biome@1.7.3)(@types/node@20.16.5)(typescript@5.6.1-rc)(vite@5.4.8)
vue: vue:
specifier: latest specifier: latest
version: 3.5.7(typescript@5.6.1-rc) version: 3.5.7(typescript@5.6.1-rc)
@@ -783,6 +783,39 @@ importers:
specifier: ^0.7.39 specifier: ^0.7.39
version: 0.7.39 version: 0.7.39
examples/svelte-example:
devDependencies:
'@sveltejs/adapter-auto':
specifier: ^3.0.0
version: 3.2.5(@sveltejs/kit@2.5.28)
'@sveltejs/kit':
specifier: ^2.0.0
version: 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.8)
'@sveltejs/vite-plugin-svelte':
specifier: ^3.0.0
version: 3.1.2(svelte@4.2.19)(vite@5.4.8)
'@tailwindcss/typography':
specifier: ^0.5.14
version: 0.5.15(tailwindcss@3.4.13)
autoprefixer:
specifier: ^10.4.20
version: 10.4.20(postcss@8.4.47)
svelte:
specifier: ^4.2.7
version: 4.2.19
svelte-check:
specifier: ^4.0.0
version: 4.0.2(svelte@4.2.19)(typescript@5.6.2)
tailwindcss:
specifier: ^3.4.9
version: 3.4.13
typescript:
specifier: ^5.0.0
version: 5.6.2
vite:
specifier: ^5.0.3
version: 5.4.8(@types/node@20.16.5)
packages/better-auth: packages/better-auth:
dependencies: dependencies:
'@babel/preset-react': '@babel/preset-react':
@@ -4036,7 +4069,7 @@ packages:
resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
dev: false dev: false
/@nuxt/devtools-kit@1.5.0(magicast@0.3.5)(vite@5.4.7): /@nuxt/devtools-kit@1.5.0(magicast@0.3.5)(vite@5.4.8):
resolution: {integrity: sha512-Q8sOquz9CoUMTABo6Bq+nkbNMZi+WVN4xpz1USZPZazcJhSj9imSmQRSycY2fBYqkfB1AKBRhm2UV2ujCQfw0Q==} resolution: {integrity: sha512-Q8sOquz9CoUMTABo6Bq+nkbNMZi+WVN4xpz1USZPZazcJhSj9imSmQRSycY2fBYqkfB1AKBRhm2UV2ujCQfw0Q==}
peerDependencies: peerDependencies:
vite: '*' vite: '*'
@@ -4044,7 +4077,7 @@ packages:
'@nuxt/kit': 3.13.2(magicast@0.3.5) '@nuxt/kit': 3.13.2(magicast@0.3.5)
'@nuxt/schema': 3.13.2 '@nuxt/schema': 3.13.2
execa: 7.2.0 execa: 7.2.0
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies: transitivePeerDependencies:
- magicast - magicast
- rollup - rollup
@@ -4068,17 +4101,17 @@ packages:
semver: 7.6.3 semver: 7.6.3
dev: false dev: false
/@nuxt/devtools@1.5.0(vite@5.4.7)(vue@3.5.7): /@nuxt/devtools@1.5.0(vite@5.4.8)(vue@3.5.7):
resolution: {integrity: sha512-82LEPZUVU0osPRypSTq/bPXfl1Oo/+R2UaXx/pq9WkE8Vj1V/n0v7a40EVHJsusZ+e/JGjed8+8oYDwF8nNIQw==} resolution: {integrity: sha512-82LEPZUVU0osPRypSTq/bPXfl1Oo/+R2UaXx/pq9WkE8Vj1V/n0v7a40EVHJsusZ+e/JGjed8+8oYDwF8nNIQw==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
vite: '*' vite: '*'
dependencies: dependencies:
'@antfu/utils': 0.7.10 '@antfu/utils': 0.7.10
'@nuxt/devtools-kit': 1.5.0(magicast@0.3.5)(vite@5.4.7) '@nuxt/devtools-kit': 1.5.0(magicast@0.3.5)(vite@5.4.8)
'@nuxt/devtools-wizard': 1.5.0 '@nuxt/devtools-wizard': 1.5.0
'@nuxt/kit': 3.13.2(magicast@0.3.5) '@nuxt/kit': 3.13.2(magicast@0.3.5)
'@vue/devtools-core': 7.4.4(vite@5.4.7)(vue@3.5.7) '@vue/devtools-core': 7.4.4(vite@5.4.8)(vue@3.5.7)
'@vue/devtools-kit': 7.4.4 '@vue/devtools-kit': 7.4.4
birpc: 0.2.17 birpc: 0.2.17
consola: 3.2.3 consola: 3.2.3
@@ -4107,9 +4140,9 @@ packages:
sirv: 2.0.4 sirv: 2.0.4
tinyglobby: 0.2.6 tinyglobby: 0.2.6
unimport: 3.12.0(rollup@4.22.2) unimport: 3.12.0(rollup@4.22.2)
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2)(vite@5.4.7) vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2)(vite@5.4.8)
vite-plugin-vue-inspector: 5.2.0(vite@5.4.7) vite-plugin-vue-inspector: 5.2.0(vite@5.4.8)
which: 3.0.1 which: 3.0.1
ws: 8.18.0 ws: 8.18.0
transitivePeerDependencies: transitivePeerDependencies:
@@ -4211,8 +4244,8 @@ packages:
dependencies: dependencies:
'@nuxt/kit': 3.13.2(magicast@0.3.5) '@nuxt/kit': 3.13.2(magicast@0.3.5)
'@rollup/plugin-replace': 5.0.7(rollup@4.22.2) '@rollup/plugin-replace': 5.0.7(rollup@4.22.2)
'@vitejs/plugin-vue': 5.1.4(vite@5.4.7)(vue@3.5.7) '@vitejs/plugin-vue': 5.1.4(vite@5.4.8)(vue@3.5.7)
'@vitejs/plugin-vue-jsx': 4.0.1(vite@5.4.7)(vue@3.5.7) '@vitejs/plugin-vue-jsx': 4.0.1(vite@5.4.8)(vue@3.5.7)
autoprefixer: 10.4.20(postcss@8.4.47) autoprefixer: 10.4.20(postcss@8.4.47)
clear: 0.1.0 clear: 0.1.0
consola: 3.2.3 consola: 3.2.3
@@ -4238,9 +4271,9 @@ packages:
ufo: 1.5.4 ufo: 1.5.4
unenv: 1.10.0 unenv: 1.10.0
unplugin: 1.14.1 unplugin: 1.14.1
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
vite-node: 2.1.1(@types/node@20.16.5) vite-node: 2.1.1(@types/node@20.16.5)
vite-plugin-checker: 0.8.0(@biomejs/biome@1.7.3)(typescript@5.6.1-rc)(vite@5.4.7) vite-plugin-checker: 0.8.0(@biomejs/biome@1.7.3)(typescript@5.6.1-rc)(vite@5.4.8)
vue: 3.5.7(typescript@5.6.1-rc) vue: 3.5.7(typescript@5.6.1-rc)
vue-bundle-renderer: 2.1.0 vue-bundle-renderer: 2.1.0
transitivePeerDependencies: transitivePeerDependencies:
@@ -7896,14 +7929,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-android-arm-eabi@4.22.4:
resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-android-arm64@4.22.2: /@rollup/rollup-android-arm64@4.22.2:
resolution: {integrity: sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==} resolution: {integrity: sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==}
cpu: [arm64] cpu: [arm64]
@@ -7911,14 +7936,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-android-arm64@4.22.4:
resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-darwin-arm64@4.22.2: /@rollup/rollup-darwin-arm64@4.22.2:
resolution: {integrity: sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==} resolution: {integrity: sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==}
cpu: [arm64] cpu: [arm64]
@@ -7926,14 +7943,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-darwin-arm64@4.22.4:
resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-darwin-x64@4.22.2: /@rollup/rollup-darwin-x64@4.22.2:
resolution: {integrity: sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==} resolution: {integrity: sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==}
cpu: [x64] cpu: [x64]
@@ -7941,14 +7950,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-darwin-x64@4.22.4:
resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.22.2: /@rollup/rollup-linux-arm-gnueabihf@4.22.2:
resolution: {integrity: sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==} resolution: {integrity: sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==}
cpu: [arm] cpu: [arm]
@@ -7956,14 +7957,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.22.4:
resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-arm-musleabihf@4.22.2: /@rollup/rollup-linux-arm-musleabihf@4.22.2:
resolution: {integrity: sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==} resolution: {integrity: sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==}
cpu: [arm] cpu: [arm]
@@ -7971,14 +7964,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-arm-musleabihf@4.22.4:
resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-arm64-gnu@4.22.2: /@rollup/rollup-linux-arm64-gnu@4.22.2:
resolution: {integrity: sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==} resolution: {integrity: sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==}
cpu: [arm64] cpu: [arm64]
@@ -7986,14 +7971,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-arm64-gnu@4.22.4:
resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-arm64-musl@4.22.2: /@rollup/rollup-linux-arm64-musl@4.22.2:
resolution: {integrity: sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==} resolution: {integrity: sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==}
cpu: [arm64] cpu: [arm64]
@@ -8001,14 +7978,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-arm64-musl@4.22.4:
resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-powerpc64le-gnu@4.22.2: /@rollup/rollup-linux-powerpc64le-gnu@4.22.2:
resolution: {integrity: sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==} resolution: {integrity: sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==}
cpu: [ppc64] cpu: [ppc64]
@@ -8016,14 +7985,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-powerpc64le-gnu@4.22.4:
resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.22.2: /@rollup/rollup-linux-riscv64-gnu@4.22.2:
resolution: {integrity: sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==} resolution: {integrity: sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==}
cpu: [riscv64] cpu: [riscv64]
@@ -8031,14 +7992,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-riscv64-gnu@4.22.4:
resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-s390x-gnu@4.22.2: /@rollup/rollup-linux-s390x-gnu@4.22.2:
resolution: {integrity: sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==} resolution: {integrity: sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==}
cpu: [s390x] cpu: [s390x]
@@ -8046,14 +7999,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-s390x-gnu@4.22.4:
resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-x64-gnu@4.22.2: /@rollup/rollup-linux-x64-gnu@4.22.2:
resolution: {integrity: sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==} resolution: {integrity: sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==}
cpu: [x64] cpu: [x64]
@@ -8061,14 +8006,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-x64-gnu@4.22.4:
resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-linux-x64-musl@4.22.2: /@rollup/rollup-linux-x64-musl@4.22.2:
resolution: {integrity: sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==} resolution: {integrity: sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==}
cpu: [x64] cpu: [x64]
@@ -8076,14 +8013,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-linux-x64-musl@4.22.4:
resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-win32-arm64-msvc@4.22.2: /@rollup/rollup-win32-arm64-msvc@4.22.2:
resolution: {integrity: sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==} resolution: {integrity: sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==}
cpu: [arm64] cpu: [arm64]
@@ -8091,14 +8020,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-win32-arm64-msvc@4.22.4:
resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-win32-ia32-msvc@4.22.2: /@rollup/rollup-win32-ia32-msvc@4.22.2:
resolution: {integrity: sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==} resolution: {integrity: sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==}
cpu: [ia32] cpu: [ia32]
@@ -8106,14 +8027,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-win32-ia32-msvc@4.22.4:
resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@rollup/rollup-win32-x64-msvc@4.22.2: /@rollup/rollup-win32-x64-msvc@4.22.2:
resolution: {integrity: sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==} resolution: {integrity: sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==}
cpu: [x64] cpu: [x64]
@@ -8121,14 +8034,6 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@rollup/rollup-win32-x64-msvc@4.22.4:
resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@rtsao/scc@1.1.0: /@rtsao/scc@1.1.0:
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
dev: true dev: true
@@ -8428,7 +8333,7 @@ packages:
peerDependencies: peerDependencies:
'@sveltejs/kit': ^2.0.0 '@sveltejs/kit': ^2.0.0
dependencies: dependencies:
'@sveltejs/kit': 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.7) '@sveltejs/kit': 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.8)
import-meta-resolve: 4.1.0 import-meta-resolve: 4.1.0
dev: true dev: true
@@ -8459,6 +8364,33 @@ packages:
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.7(@types/node@20.16.5)
dev: true dev: true
/@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.8):
resolution: {integrity: sha512-/O7pvFGBsQPcFa9UrW8eUC5uHTOXLsUp3SN0dY6YmRAL9nfPSrJsSJk//j5vMpinSshzUjteAFcfQTU+04Ka1w==}
engines: {node: '>=18.13'}
hasBin: true
requiresBuild: true
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.3
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8)
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.0.0
esm-env: 1.0.0
import-meta-resolve: 4.1.0
kleur: 4.1.5
magic-string: 0.30.11
mrmime: 2.0.0
sade: 1.8.1
set-cookie-parser: 2.7.0
sirv: 2.0.4
svelte: 4.2.19
tiny-glob: 0.2.9
vite: 5.4.8(@types/node@20.16.5)
dev: true
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.7): /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.7):
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
engines: {node: ^18.0.0 || >=20} engines: {node: ^18.0.0 || >=20}
@@ -8475,6 +8407,22 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.8):
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^3.0.0
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8)
debug: 4.3.7
svelte: 4.2.19
vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies:
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7): /@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.7):
resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==} resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==}
engines: {node: ^18.0.0 || >=20} engines: {node: ^18.0.0 || >=20}
@@ -8495,6 +8443,26 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8):
resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2)(svelte@4.2.19)(vite@5.4.8)
debug: 4.3.7
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.11
svelte: 4.2.19
svelte-hmr: 0.16.0(svelte@4.2.19)
vite: 5.4.8(@types/node@20.16.5)
vitefu: 0.2.5(vite@5.4.8)
transitivePeerDependencies:
- supports-color
dev: true
/@swc/counter@0.1.3: /@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
@@ -8535,6 +8503,18 @@ packages:
tailwindcss: 3.4.12 tailwindcss: 3.4.12
dev: false dev: false
/@tailwindcss/typography@0.5.15(tailwindcss@3.4.13):
resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20'
dependencies:
lodash.castarray: 4.4.0
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.13
dev: true
/@tanstack/query-core@5.56.2: /@tanstack/query-core@5.56.2:
resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==} resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==}
dev: false dev: false
@@ -9542,7 +9522,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.7)(vue@3.5.7): /@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.8)(vue@3.5.7):
resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==} resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies: peerDependencies:
@@ -9552,20 +9532,20 @@ packages:
'@babel/core': 7.25.2 '@babel/core': 7.25.2
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
'@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.2) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.2)
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
vue: 3.5.7(typescript@5.6.1-rc) vue: 3.5.7(typescript@5.6.1-rc)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
/@vitejs/plugin-vue@5.1.4(vite@5.4.7)(vue@3.5.7): /@vitejs/plugin-vue@5.1.4(vite@5.4.8)(vue@3.5.7):
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==} resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies: peerDependencies:
vite: ^5.0.0 vite: ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
vue: 3.5.7(typescript@5.6.1-rc) vue: 3.5.7(typescript@5.6.1-rc)
dev: false dev: false
@@ -9814,7 +9794,7 @@ packages:
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
dev: false dev: false
/@vue/devtools-core@7.4.4(vite@5.4.7)(vue@3.5.7): /@vue/devtools-core@7.4.4(vite@5.4.8)(vue@3.5.7):
resolution: {integrity: sha512-DLxgA3DfeADkRzhAfm3G2Rw/cWxub64SdP5b+s5dwL30+whOGj+QNhmyFpwZ8ZTrHDFRIPj0RqNzJ8IRR1pz7w==} resolution: {integrity: sha512-DLxgA3DfeADkRzhAfm3G2Rw/cWxub64SdP5b+s5dwL30+whOGj+QNhmyFpwZ8ZTrHDFRIPj0RqNzJ8IRR1pz7w==}
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
@@ -9824,7 +9804,7 @@ packages:
mitt: 3.0.1 mitt: 3.0.1
nanoid: 3.3.7 nanoid: 3.3.7
pathe: 1.1.2 pathe: 1.1.2
vite-hot-client: 0.2.3(vite@5.4.7) vite-hot-client: 0.2.3(vite@5.4.8)
vue: 3.5.7(typescript@5.6.1-rc) vue: 3.5.7(typescript@5.6.1-rc)
transitivePeerDependencies: transitivePeerDependencies:
- vite - vite
@@ -16445,7 +16425,6 @@ packages:
/lodash.castarray@4.4.0: /lodash.castarray@4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: false
/lodash.defaults@4.2.0: /lodash.defaults@4.2.0:
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
@@ -16461,7 +16440,6 @@ packages:
/lodash.isplainobject@4.0.6: /lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: false
/lodash.memoize@4.1.2: /lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
@@ -18220,7 +18198,7 @@ packages:
fsevents: 2.3.3 fsevents: 2.3.3
dev: false dev: false
/nuxt@3.13.2(@biomejs/biome@1.7.3)(@types/node@20.16.5)(typescript@5.6.1-rc)(vite@5.4.7): /nuxt@3.13.2(@biomejs/biome@1.7.3)(@types/node@20.16.5)(typescript@5.6.1-rc)(vite@5.4.8):
resolution: {integrity: sha512-Bjc2qRsipfBhjXsBEJCN+EUAukhdgFv/KoIR5HFB2hZOYRSqXBod3oWQs78k3ja1nlIhAEdBG533898KJxUtJw==} resolution: {integrity: sha512-Bjc2qRsipfBhjXsBEJCN+EUAukhdgFv/KoIR5HFB2hZOYRSqXBod3oWQs78k3ja1nlIhAEdBG533898KJxUtJw==}
engines: {node: ^14.18.0 || >=16.10.0} engines: {node: ^14.18.0 || >=16.10.0}
hasBin: true hasBin: true
@@ -18234,7 +18212,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@nuxt/devalue': 2.0.2 '@nuxt/devalue': 2.0.2
'@nuxt/devtools': 1.5.0(vite@5.4.7)(vue@3.5.7) '@nuxt/devtools': 1.5.0(vite@5.4.8)(vue@3.5.7)
'@nuxt/kit': 3.13.2(magicast@0.3.5) '@nuxt/kit': 3.13.2(magicast@0.3.5)
'@nuxt/schema': 3.13.2 '@nuxt/schema': 3.13.2
'@nuxt/telemetry': 2.6.0 '@nuxt/telemetry': 2.6.0
@@ -19363,7 +19341,6 @@ packages:
dependencies: dependencies:
cssesc: 3.0.0 cssesc: 3.0.0
util-deprecate: 1.0.2 util-deprecate: 1.0.2
dev: false
/postcss-selector-parser@6.1.2: /postcss-selector-parser@6.1.2:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
@@ -20653,32 +20630,6 @@ packages:
'@rollup/rollup-win32-x64-msvc': 4.22.2 '@rollup/rollup-win32-x64-msvc': 4.22.2
fsevents: 2.3.3 fsevents: 2.3.3
/rollup@4.22.4:
resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.22.4
'@rollup/rollup-android-arm64': 4.22.4
'@rollup/rollup-darwin-arm64': 4.22.4
'@rollup/rollup-darwin-x64': 4.22.4
'@rollup/rollup-linux-arm-gnueabihf': 4.22.4
'@rollup/rollup-linux-arm-musleabihf': 4.22.4
'@rollup/rollup-linux-arm64-gnu': 4.22.4
'@rollup/rollup-linux-arm64-musl': 4.22.4
'@rollup/rollup-linux-powerpc64le-gnu': 4.22.4
'@rollup/rollup-linux-riscv64-gnu': 4.22.4
'@rollup/rollup-linux-s390x-gnu': 4.22.4
'@rollup/rollup-linux-x64-gnu': 4.22.4
'@rollup/rollup-linux-x64-musl': 4.22.4
'@rollup/rollup-win32-arm64-msvc': 4.22.4
'@rollup/rollup-win32-ia32-msvc': 4.22.4
'@rollup/rollup-win32-x64-msvc': 4.22.4
fsevents: 2.3.3
dev: false
/rou3@0.5.1: /rou3@0.5.1:
resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==} resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==}
dev: false dev: false
@@ -21736,6 +21687,25 @@ packages:
- sugarss - sugarss
dev: true dev: true
/svelte-check@4.0.2(svelte@4.2.19)(typescript@5.6.2):
resolution: {integrity: sha512-w2yqcG9ELJe2RJCnAvB7v0OgkHhL3czzz/tVoxGFfO6y4mOrF6QHCDhXijeXzsU7LVKEwWS3Qd9tza4JBuDxqA==}
engines: {node: '>= 18.0.0'}
hasBin: true
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0'
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 3.6.0
fdir: 6.3.0(picomatch@4.0.2)
picocolors: 1.1.0
sade: 1.8.1
svelte: 4.2.19
typescript: 5.6.2
transitivePeerDependencies:
- picomatch
dev: true
/svelte-hmr@0.16.0(svelte@4.2.19): /svelte-hmr@0.16.0(svelte@4.2.19):
resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==}
engines: {node: ^12.20 || ^14.13.1 || >= 16} engines: {node: ^12.20 || ^14.13.1 || >= 16}
@@ -21926,7 +21896,6 @@ packages:
sucrase: 3.35.0 sucrase: 3.35.0
transitivePeerDependencies: transitivePeerDependencies:
- ts-node - ts-node
dev: false
/tapable@2.2.1: /tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@@ -23207,12 +23176,12 @@ packages:
- xml2js - xml2js
dev: false dev: false
/vite-hot-client@0.2.3(vite@5.4.7): /vite-hot-client@0.2.3(vite@5.4.8):
resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==}
peerDependencies: peerDependencies:
vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0
dependencies: dependencies:
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
dev: false dev: false
/vite-node@1.6.0(@types/node@20.16.5): /vite-node@1.6.0(@types/node@20.16.5):
@@ -23224,7 +23193,7 @@ packages:
debug: 4.3.7 debug: 4.3.7
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.1.0 picocolors: 1.1.0
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@@ -23245,7 +23214,7 @@ packages:
cac: 6.7.14 cac: 6.7.14
debug: 4.3.7 debug: 4.3.7
pathe: 1.1.2 pathe: 1.1.2
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@@ -23258,7 +23227,7 @@ packages:
- terser - terser
dev: false dev: false
/vite-plugin-checker@0.8.0(@biomejs/biome@1.7.3)(typescript@5.6.1-rc)(vite@5.4.7): /vite-plugin-checker@0.8.0(@biomejs/biome@1.7.3)(typescript@5.6.1-rc)(vite@5.4.8):
resolution: {integrity: sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==} resolution: {integrity: sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
peerDependencies: peerDependencies:
@@ -23304,7 +23273,7 @@ packages:
strip-ansi: 6.0.1 strip-ansi: 6.0.1
tiny-invariant: 1.3.3 tiny-invariant: 1.3.3
typescript: 5.6.1-rc typescript: 5.6.1-rc
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
vscode-languageclient: 7.0.0 vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0 vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-textdocument: 1.0.12
@@ -23335,7 +23304,7 @@ packages:
- supports-color - supports-color
dev: false dev: false
/vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.2)(vite@5.4.7): /vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.2)(vite@5.4.8):
resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==} resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@@ -23355,7 +23324,7 @@ packages:
perfect-debounce: 1.0.0 perfect-debounce: 1.0.0
picocolors: 1.1.0 picocolors: 1.1.0
sirv: 2.0.4 sirv: 2.0.4
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- supports-color - supports-color
@@ -23405,7 +23374,7 @@ packages:
- supports-color - supports-color
dev: false dev: false
/vite-plugin-vue-inspector@5.2.0(vite@5.4.7): /vite-plugin-vue-inspector@5.2.0(vite@5.4.8):
resolution: {integrity: sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==} resolution: {integrity: sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==}
peerDependencies: peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0
@@ -23419,7 +23388,7 @@ packages:
'@vue/compiler-dom': 3.5.7 '@vue/compiler-dom': 3.5.7
kolorist: 1.8.0 kolorist: 1.8.0
magic-string: 0.30.11 magic-string: 0.30.11
vite: 5.4.7(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@@ -23496,10 +23465,9 @@ packages:
'@types/node': 20.16.5 '@types/node': 20.16.5
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.47 postcss: 8.4.47
rollup: 4.22.4 rollup: 4.22.2
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
dev: false
/vitefu@0.2.5(vite@5.4.7): /vitefu@0.2.5(vite@5.4.7):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
@@ -23521,7 +23489,6 @@ packages:
optional: true optional: true
dependencies: dependencies:
vite: 5.4.8(@types/node@20.16.5) vite: 5.4.8(@types/node@20.16.5)
dev: false
/vitefu@1.0.2(vite@5.4.7): /vitefu@1.0.2(vite@5.4.7):
resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==} resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==}