diff --git a/docs/components/blocks/features.tsx b/docs/components/blocks/features.tsx index 20b36e25..465859b2 100644 --- a/docs/components/blocks/features.tsx +++ b/docs/components/blocks/features.tsx @@ -2,128 +2,135 @@ import React from "react"; import { useId } from "react"; export function Features() { - return ( -
-
- {grid.map((feature) => ( -
- -

- {feature.title} -

-

- {feature.description} -

-
- ))} -
-
- ); + return ( +
+
+ {grid.map((feature, i) => ( +
+ +

+ {feature.title} +

+

+ {feature.description} +

+
+ ))} +
+
+ ); } const grid = [ - { - title: "Framework Agnostic", - description: - "Supports your favorite frontend, backend and meta frameworks, including React, Vue, Svelte, Solid, Next.js, Nuxt.js, Hono, and more.", - }, - { - title: "Automatic Database Management", - description: - "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", - description: - "Allow users to sign in with their accounts, including Github, Google, Discord, Twitter, and more.", - }, - { - title: "Organization & Access Control", - description: - "Manage users and their access to resources within your application.", - }, - { - title: "Plugin Ecosystem", - description: - "Enhance your application with our official plugins and those created by the community.", - }, + { + title: "Framework Agnostic", + description: "Support for most popular frameworks", + }, + { + title: "Email & Password", + description: + "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", + description: "Automatic database management and migrations", + }, + { + title: "Social Sign-on", + description: "multiple social sign-on providers", + }, + { + title: "Organization & Access Control", + description: "Manage organizations and access control", + }, + { + title: "Two Factor Authentication", + description: "Secure your users with two factor authentication", + }, + { + title: "Plugin Ecosystem", + description: "Even more capabilities with plugins", + }, ]; export const Grid = ({ - pattern, - size, + pattern, + size, }: { - pattern?: number[][]; - size?: number; + pattern?: number[][]; + size?: number; }) => { - const p = pattern ?? [ - [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], - [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], - [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], - [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], - [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], - ]; - return ( -
-
- -
-
- ); + const p = pattern ?? [ + [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], + [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], + [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], + [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], + [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1], + ]; + return ( +
+
+ +
+
+ ); }; export function GridPattern({ width, height, x, y, squares, ...props }: any) { - const patternId = useId(); + const patternId = useId(); - return ( - - ); + return ( + + ); } diff --git a/docs/components/display-techstack.tsx b/docs/components/display-techstack.tsx index 0bcb7921..59da8574 100644 --- a/docs/components/display-techstack.tsx +++ b/docs/components/display-techstack.tsx @@ -7,13 +7,6 @@ import { TooltipTrigger, } from "@/components/ui/tooltip"; - -type TechStackIconType = { - [key: string]: { - name: string; - icon: any; - }; -}; export const TechStackDisplay = ({ skills, className, @@ -22,10 +15,15 @@ export const TechStackDisplay = ({ className?: string; }) => { return ( -
+
{skills.map((icon) => { return ( - + @@ -41,4 +39,4 @@ export const TechStackDisplay = ({ })}
); -}; \ No newline at end of file +}; diff --git a/docs/components/features.tsx b/docs/components/features.tsx index a12a7c49..ad9d4ea3 100644 --- a/docs/components/features.tsx +++ b/docs/components/features.tsx @@ -41,9 +41,9 @@ export default function Features() {

Supports your favorite frontend, backend and meta frameworks, - including React, Vue, Svelte, Solid, Next.js, Nuxt.js, Hono, and - more{" "} - + including React, Vue, Svelte, Astro, Solid, Next.js, Nuxt.js, + Hono, and more{" "} + Learn more

@@ -188,6 +188,7 @@ export default function Features() { "nextJs", "nuxt", "svelteKit", + "astro", "solidStart", "react", "hono", diff --git a/docs/components/ripple.tsx b/docs/components/ripple.tsx index d693d797..af1f5c38 100644 --- a/docs/components/ripple.tsx +++ b/docs/components/ripple.tsx @@ -8,7 +8,7 @@ interface RippleProps { export const Ripple = React.memo(function Ripple({ mainCircleSize = 180, - mainCircleOpacity = 0.20, + mainCircleOpacity = 0.2, numCircles = 10, }: RippleProps) { return ( @@ -43,4 +43,4 @@ export const Ripple = React.memo(function Ripple({ })} ); -}); \ No newline at end of file +}); diff --git a/docs/components/side-bar.tsx b/docs/components/side-bar.tsx index d636142c..439fb866 100644 --- a/docs/components/side-bar.tsx +++ b/docs/components/side-bar.tsx @@ -60,36 +60,54 @@ export default function ArticleLayout() { -
+
+ Docs
-

getting started, concepts, and plugins

+

+ getting started, concepts, and plugins +

+ + + Examples diff --git a/docs/components/techstack-icons.tsx b/docs/components/techstack-icons.tsx index c91ad5b4..0876f065 100644 --- a/docs/components/techstack-icons.tsx +++ b/docs/components/techstack-icons.tsx @@ -1,36 +1,37 @@ - -import {Icons} from './icons' +import { Icons } from "./icons"; type TechStackIconType = { - [key: string]: { - name: string; - icon: any; - }; + [key: string]: { + name: string; + icon: any; }; +}; export const techStackIcons: TechStackIconType = { - nextJs: { - name: "Nextjs", - icon: , - }, - nuxt: { - name: "Nuxt", - icon: , - }, - svelteKit: { - name: "Svelte Kit", - icon: , - }, - solidStart: { - name: "Solid Start", - icon: , - }, - react: { - name: "Reaact", - icon: , - }, - hono: { - name: "Hono", - icon: , - }, - - - }; \ No newline at end of file + nextJs: { + name: "Nextjs", + icon: , + }, + nuxt: { + name: "Nuxt", + icon: , + }, + svelteKit: { + name: "Svelte Kit", + icon: , + }, + solidStart: { + name: "Solid Start", + icon: , + }, + react: { + name: "Reaact", + icon: , + }, + hono: { + name: "Hono", + icon: , + }, + astro: { + name: "Astro", + icon: , + }, +}; diff --git a/docs/content/docs/installation.mdx b/docs/content/docs/installation.mdx index 495ef54c..54e1512f 100644 --- a/docs/content/docs/installation.mdx +++ b/docs/content/docs/installation.mdx @@ -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. - + ```ts title="/app/api/[...auth]/route.ts" 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 ```ts title="/pages/api/auth/[...all].ts" import type { APIRoute } from "astro"; - import { auth } from "../../../auth"; + import { auth } from "@/auth"; // path to your auth file export const GET: APIRoute = async (ctx) => { return auth.handler(ctx.request); }; - export const ALL: APIRoute = async (ctx) => { + export const POST: APIRoute = async (ctx) => { return auth.handler(ctx.request); }; ``` - This also works for any other node server framework like express, fastify, hapi, etc. diff --git a/examples/astro-example/package.json b/examples/astro-example/package.json index d67f5289..c6057eaa 100644 --- a/examples/astro-example/package.json +++ b/examples/astro-example/package.json @@ -4,7 +4,8 @@ "private": true, "version": "0.0.1", "scripts": { - "dev": "astro dev --port 3000", + "dev": "pnpm migrate:auth && astro dev --port 3000", + "migrate:auth": "pnpm better-auth migrate", "start": "astro dev", "build": "astro check && astro build", "preview": "astro preview", diff --git a/examples/astro-example/src/auth.ts b/examples/astro-example/src/auth.ts index 0537e000..1609f9ce 100644 --- a/examples/astro-example/src/auth.ts +++ b/examples/astro-example/src/auth.ts @@ -29,12 +29,13 @@ export const auth = betterAuth({ twoFactor({ otpOptions: { async sendOTP(user, otp) { - await resend.emails.send({ - from: "Acme ", - to: user.email, - subject: "Your OTP", - html: `Your OTP is ${otp}`, - }); + console.log(`Sending OTP to ${user.email}: ${otp}`); + // await resend.emails.send({ + // from: "Acme ", + // to: user.email, + // subject: "Your OTP", + // html: `Your OTP is ${otp}`, + // }); }, }, }), diff --git a/examples/astro-example/src/components/two-factor.tsx b/examples/astro-example/src/components/two-factor.tsx index 5eec4daa..c8b594c2 100644 --- a/examples/astro-example/src/components/two-factor.tsx +++ b/examples/astro-example/src/components/two-factor.tsx @@ -95,13 +95,15 @@ export function TwoFactorEmail() { createEffect(() => { if (otp().length === 6) { - twoFactorActions.verifyTotp({ + twoFactorActions.verifyOtp({ code: otp(), - callbackURL: "/dashboard", fetchOptions: { onError(context) { alert(context.error.message); }, + onSuccess(context) { + window.location.href = "/dashboard"; + }, }, }); } diff --git a/examples/astro-example/src/components/user-card.tsx b/examples/astro-example/src/components/user-card.tsx index ce120751..da33ae04 100644 --- a/examples/astro-example/src/components/user-card.tsx +++ b/examples/astro-example/src/components/user-card.tsx @@ -135,6 +135,7 @@ export function UserCard(props: { class="gap-2" onClick={async () => { await signOut(); + window.location.reload(); }} > { + 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. */ @@ -46,24 +55,9 @@ export const otp2fa = (options?: OTPOptions) => { message: "otp isn't configured", }); } - const randomNumber = generateRandomInteger(100000); - const otp = await generateHOTP( - Buffer.from(ctx.context.secret), - 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, - ); + const user = ctx.context.session.user as UserWithTwoFactor; + const code = await totp.generate(Buffer.from(user.twoFactorSecret)); + await options.sendOTP(user, code); return ctx.json({ status: true, OTP: undefined }); }, ); @@ -84,30 +78,8 @@ export const otp2fa = (options?: OTPOptions) => { message: "two factor isn't enabled", }); } - const cookie = ctx.context.createAuthCookie( - 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), - ); + const toCheckOtp = await totp.generate(Buffer.from(user.twoFactorSecret)); if (toCheckOtp === ctx.body.code) { - ctx.setCookie(cookie.name, "", { - path: "/", - sameSite: "lax", - httpOnly: true, - secure: false, - maxAge: 0, - }); return ctx.context.valid(); } else { return ctx.context.invalid(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0ba1148..5286da7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -397,7 +397,7 @@ importers: version: link:../../packages/better-auth nuxt: 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: specifier: latest version: 3.5.7(typescript@5.6.1-rc) @@ -783,6 +783,39 @@ importers: specifier: ^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: dependencies: '@babel/preset-react': @@ -4036,7 +4069,7 @@ packages: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} 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==} peerDependencies: vite: '*' @@ -4044,7 +4077,7 @@ packages: '@nuxt/kit': 3.13.2(magicast@0.3.5) '@nuxt/schema': 3.13.2 execa: 7.2.0 - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) transitivePeerDependencies: - magicast - rollup @@ -4068,17 +4101,17 @@ packages: semver: 7.6.3 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==} hasBin: true peerDependencies: vite: '*' dependencies: '@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/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 birpc: 0.2.17 consola: 3.2.3 @@ -4107,9 +4140,9 @@ packages: sirv: 2.0.4 tinyglobby: 0.2.6 unimport: 3.12.0(rollup@4.22.2) - vite: 5.4.7(@types/node@20.16.5) - vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2)(vite@5.4.7) - vite-plugin-vue-inspector: 5.2.0(vite@5.4.7) + vite: 5.4.8(@types/node@20.16.5) + 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.8) which: 3.0.1 ws: 8.18.0 transitivePeerDependencies: @@ -4211,8 +4244,8 @@ packages: dependencies: '@nuxt/kit': 3.13.2(magicast@0.3.5) '@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-jsx': 4.0.1(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.8)(vue@3.5.7) autoprefixer: 10.4.20(postcss@8.4.47) clear: 0.1.0 consola: 3.2.3 @@ -4238,9 +4271,9 @@ packages: ufo: 1.5.4 unenv: 1.10.0 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-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-bundle-renderer: 2.1.0 transitivePeerDependencies: @@ -7896,14 +7929,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==} cpu: [arm64] @@ -7911,14 +7936,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==} cpu: [arm64] @@ -7926,14 +7943,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==} cpu: [x64] @@ -7941,14 +7950,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==} cpu: [arm] @@ -7956,14 +7957,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==} cpu: [arm] @@ -7971,14 +7964,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==} cpu: [arm64] @@ -7986,14 +7971,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==} cpu: [arm64] @@ -8001,14 +7978,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==} cpu: [ppc64] @@ -8016,14 +7985,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==} cpu: [riscv64] @@ -8031,14 +7992,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==} cpu: [s390x] @@ -8046,14 +7999,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==} cpu: [x64] @@ -8061,14 +8006,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==} cpu: [x64] @@ -8076,14 +8013,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==} cpu: [arm64] @@ -8091,14 +8020,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==} cpu: [ia32] @@ -8106,14 +8027,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==} cpu: [x64] @@ -8121,14 +8034,6 @@ packages: requiresBuild: 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: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true @@ -8428,7 +8333,7 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 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 dev: true @@ -8459,6 +8364,33 @@ packages: vite: 5.4.7(@types/node@20.16.5) 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): resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} engines: {node: ^18.0.0 || >=20} @@ -8475,6 +8407,22 @@ packages: - supports-color 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): resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==} engines: {node: ^18.0.0 || >=20} @@ -8495,6 +8443,26 @@ packages: - supports-color 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: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -8535,6 +8503,18 @@ packages: tailwindcss: 3.4.12 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: resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==} dev: false @@ -9542,7 +9522,7 @@ packages: - supports-color 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==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -9552,20 +9532,20 @@ packages: '@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) - 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) transitivePeerDependencies: - supports-color 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==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 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) dev: false @@ -9814,7 +9794,7 @@ packages: resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} 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==} peerDependencies: vue: ^3.0.0 @@ -9824,7 +9804,7 @@ packages: mitt: 3.0.1 nanoid: 3.3.7 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) transitivePeerDependencies: - vite @@ -16445,7 +16425,6 @@ packages: /lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - dev: false /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -16461,7 +16440,6 @@ packages: /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -18220,7 +18198,7 @@ packages: fsevents: 2.3.3 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==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -18234,7 +18212,7 @@ packages: optional: true dependencies: '@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/schema': 3.13.2 '@nuxt/telemetry': 2.6.0 @@ -19363,7 +19341,6 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: false /postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} @@ -20653,32 +20630,6 @@ packages: '@rollup/rollup-win32-x64-msvc': 4.22.2 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: resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==} dev: false @@ -21736,6 +21687,25 @@ packages: - sugarss 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): resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} @@ -21926,7 +21896,6 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: false /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -23207,12 +23176,12 @@ packages: - xml2js 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==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 dependencies: - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) dev: false /vite-node@1.6.0(@types/node@20.16.5): @@ -23224,7 +23193,7 @@ packages: debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.0 - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) transitivePeerDependencies: - '@types/node' - less @@ -23245,7 +23214,7 @@ packages: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) transitivePeerDependencies: - '@types/node' - less @@ -23258,7 +23227,7 @@ packages: - terser 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==} engines: {node: '>=14.16'} peerDependencies: @@ -23304,7 +23273,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.3 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-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.12 @@ -23335,7 +23304,7 @@ packages: - supports-color 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==} engines: {node: '>=14'} peerDependencies: @@ -23355,7 +23324,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) transitivePeerDependencies: - rollup - supports-color @@ -23405,7 +23374,7 @@ packages: - supports-color 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==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 @@ -23419,7 +23388,7 @@ packages: '@vue/compiler-dom': 3.5.7 kolorist: 1.8.0 magic-string: 0.30.11 - vite: 5.4.7(@types/node@20.16.5) + vite: 5.4.8(@types/node@20.16.5) transitivePeerDependencies: - supports-color dev: false @@ -23496,10 +23465,9 @@ packages: '@types/node': 20.16.5 esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.22.4 + rollup: 4.22.2 optionalDependencies: fsevents: 2.3.3 - dev: false /vitefu@0.2.5(vite@5.4.7): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} @@ -23521,7 +23489,6 @@ packages: optional: true dependencies: vite: 5.4.8(@types/node@20.16.5) - dev: false /vitefu@1.0.2(vite@5.4.7): resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==}